[Haskell-cafe] Why is type 'b' forced to be type 'm a' and not possibly 'm a -> m a'