{-# htermination fmap :: Functor f => (a -> b) -> (f a -> f b) #-}