I\'m trying to understand why the type of:
(flip .) is: (a -> a1 -> b -> c) -> a -> b -> a1 -> c
First of all, the type of:
(flip .) is (.) flip, so:
(.) :: (bx -> cx) -> (ax -> bx) -> ax -> cxflip :: (ay -> by -> cy) -> by -> ay -> cy(.) flip,
bx is ay -> by -> cycx is by -> ay -> cy(ax -> (ay -> by -> cy)) -> ax -> (by -> ay -> cy),(ax -> ay -> by -> cy) -> ax -> by -> ay -> cy,(flip .) :: (a -> a1 -> b -> c) -> a -> b -> a1 -> c.