mapM :: forall (t :: * -> *) (m :: * -> *) a b. (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) foo @Int :: forall b. (Show Int, Num b) => Int -> b