module Data.Function.Flip where


(<->) :: (a -> b -> c) -> b -> a -> c
(<->) = flip

infixl 8 <->


flip3 :: (a -> b -> c -> d) -> c -> b -> a -> d
flip3 f c b a = f a b c

(<-->) = flip3

infixl 8 <-->


flip4  :: (a -> b -> c -> d -> e) -> d -> b -> c -> a -> e
flip4 f d b c a = f a b c d

(<--->) = flip4

infixl 8 <--->


flip5   :: (a -> b -> c -> d -> e -> f) -> e -> b -> c -> d -> a -> f
flip5 f e b c d a = f a b c d e

(<---->) = flip5

infixl 8 <---->