Monad

  1. class Applicative m => Monad m where
  2. bind :: forall a b. m a -> (a -> m b) -> m b
  3. return :: forall a. a -> m a