{-# htermination flip :: (a -> b -> c) -> b -> a -> c #-}