module M where class C m foo :: forall a b. forall m. C m => a -> m b foo _ = undefined tgt :: forall a b. a -> forall m. C m => m b tgt x = foo x