Flip - troca a ordem dos argumentos de uma função binária
flip :: (a -> b -> c) -> b -> a -> c
flip f x y = f y x
> (^) 3 2 = 3^2 = 9
> flip (^) 3 2 = 2^3 = 8
Exemplo :
mytake :: [a] -> Int -> [a]
mytake = flip take
mytake [1..10] 3 = flip take [1..10] 3 = take 3 [1..10] = [1,2,3]