:t foldl :print foldl :t fmap :print fmap :t return :print return :t pure :print pure :m + Data.Monoid :p mempty :p mappend :m + Data.List :p foldl' :set -XRankNTypes f :: (forall a. a -> a) -> b -> b; f g x = g x :p f