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]