=<<the type signature says that the first argument is a function from a(nothing) to the monad b.
Well, m bit counts as you please, right? Therefore, we can simply substitute in m bfor each a:
(=<<) :: Monad m => (m b -> m b) -> m (m b) -> m b
idtype says it is a function from something to the same thing. So, if we add in m b(without forgetting the monad restriction), we get:
id :: Monad m => m b -> m b
, .