Functor
types
filter
MonadFilter
filterM
MonadFilter
flatMap
Monad
flatten
Monad