Тип функции Prelude flip:
flip :: (a -> b -> c) -> b -> a -> c
I.e., он принимает одну двоичную функцию и два аргумента.
Тип функции Prelude id:
id :: a -> a
Но тип flip id:
flip id :: a -> (a -> b) -> b
Как можно применить flip к id, когда id является унарной функцией, а flip требуется двоичная функция для первого arg?
кстати. flip id похож на \ x f -> f x