Functor gives us map (fmap). Monad gives us flatmap (bind).
What is the Haskell name for the the typeclass that provides filter?
Three plausible candidates are Witherable, Alternative, and MonadPlus.