For flips of higher arities, you would choose a different `f`, like (f ~ (->) d . (->) c): \f a -> fmap ($a) f :: (c -> d -> a -> b) -> (a -> c -> d -> b)