class Monad m where return :: a -> m a (>>=) :: m a -> (a -> m b) -> m b