module Data.Function.Flip where (<->) :: (a -> b -> c) -> b -> a -> c <-> :: forall a b c. (a -> b -> c) -> b -> a -> c (<->) = forall a b c. (a -> b -> c) -> b -> a -> c flip infixl 8 <-> flip3 :: (a -> b -> c -> d) -> c -> b -> a -> d flip3 :: forall a b c d. (a -> b -> c -> d) -> c -> b -> a -> d flip3 a -> b -> c -> d f c c b b a a = a -> b -> c -> d f a a b b c c <--> :: (a -> b -> c -> d) -> c -> b -> a -> d (<-->) = forall a b c d. (a -> b -> c -> d) -> c -> b -> a -> d flip3 infixl 8 <--> flip4 :: (a -> b -> c -> d -> e) -> d -> b -> c -> a -> e flip4 :: forall a b c d e. (a -> b -> c -> d -> e) -> d -> b -> c -> a -> e flip4 a -> b -> c -> d -> e f d d b b c c a a = a -> b -> c -> d -> e f a a b b c c d d <---> :: (a -> b -> c -> d -> e) -> d -> b -> c -> a -> e (<--->) = forall a b c d e. (a -> b -> c -> d -> e) -> d -> b -> c -> a -> e flip4 infixl 8 <---> flip5 :: (a -> b -> c -> d -> e -> f) -> e -> b -> c -> d -> a -> f flip5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> e -> b -> c -> d -> a -> f flip5 a -> b -> c -> d -> e -> f f e e b b c c d d a a = a -> b -> c -> d -> e -> f f a a b b c c d d e e <----> :: (a -> b -> c -> d -> e -> f) -> e -> b -> c -> d -> a -> f (<---->) = forall a b c d e f. (a -> b -> c -> d -> e -> f) -> e -> b -> c -> d -> a -> f flip5 infixl 8 <---->