1 2 3 4 5 6 7 8 9 10
{-# LANGUAGE RankNTypes #-} module T13311 where f :: forall a. (Monoid a) => forall b. (Monoid b) => Maybe a -> Maybe b f _ = mempty g :: IO () g = do f putChar 'a'