flatMap
class Monad m where (>>=) :: m a -> (a -> m b) -> m b
Functor
class Functor f where fmap :: (a -> b) -> f a -> f b