module Data.ListTrie.Util ((.:), (.:.), both) where
infixr 9 .:, .:.
(.:) :: (c -> d) -> (a -> b -> c) -> (a -> b -> d)
(c -> d
f .: :: forall c d a b. (c -> d) -> (a -> b -> c) -> a -> b -> d
.: a -> b -> c
g) a
x b
y = c -> d
f (a -> b -> c
g a
x b
y)
(.:.) :: (a -> b -> c) -> (d -> b) -> (a -> d -> c)
(a -> b -> c
f .:. :: forall a b c d. (a -> b -> c) -> (d -> b) -> a -> d -> c
.:. d -> b
g) a
x d
y = a -> b -> c
f a
x (d -> b
g d
y)
both :: (a -> b) -> (a,a) -> (b,b)
both :: forall a b. (a -> b) -> (a, a) -> (b, b)
both a -> b
f (a
a,a
b) = (a -> b
f a
a, a -> b
f a
b)