module Opaleye.Internal.Helpers where

infixr 8 .:

(.:) :: (r -> z) -> (a -> b -> r) -> a -> b -> z
.: :: forall r z a b. (r -> z) -> (a -> b -> r) -> a -> b -> z
(.:) r -> z
f a -> b -> r
g a
x b
y = r -> z
f (a -> b -> r
g a
x b
y)

infixr 8 .:.

(.:.) :: (r -> z) -> (a -> b -> c -> r) -> a -> b -> c -> z
.:. :: forall r z a b c.
(r -> z) -> (a -> b -> c -> r) -> a -> b -> c -> z
(.:.) r -> z
f a -> b -> c -> r
g a
a b
b c
c = r -> z
f (a -> b -> c -> r
g a
a b
b c
c)

infixr 8 .::

(.::) :: (r -> z) -> (a -> b -> c -> d -> r) -> a -> b -> c -> d -> z
.:: :: forall r z a b c d.
(r -> z) -> (a -> b -> c -> d -> r) -> a -> b -> c -> d -> z
(.::) r -> z
f a -> b -> c -> d -> r
g a
a b
b c
c d
d = r -> z
f (a -> b -> c -> d -> r
g a
a b
b c
c d
d)

infixr 8 .::.

(.::.) :: (r -> z) -> (a -> b -> c -> d -> e -> r) -> a -> b -> c -> d -> e -> z
.::. :: forall r z a b c d e.
(r -> z)
-> (a -> b -> c -> d -> e -> r) -> a -> b -> c -> d -> e -> z
(.::.) r -> z
f a -> b -> c -> d -> e -> r
g a
a b
b c
c d
d e
e = r -> z
f (a -> b -> c -> d -> e -> r
g a
a b
b c
c d
d e
e)

atSameType :: p a a -> p a a
atSameType :: forall (p :: * -> * -> *) a. p a a -> p a a
atSameType = forall a. a -> a
id