-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Filtering and folding over arbitrary MonadPlus instances. -- -- Filtering and folding over arbitrary MonadPlus instances. This -- package generalizes many common stream operations such as -- filter, catMaybes etc. @package monadplus @version 1.2 module Control.Monad.Plus -- | Monads that also support choice and failure. class Monad m => MonadPlus (m :: * -> *) mzero :: MonadPlus m => m a mplus :: MonadPlus m => m a -> m a -> m a -- | This generalizes the list-based concat function. msum :: MonadPlus m => [m a] -> m a -- | Direct MonadPlus equivalent of filter -- filter = (mfilter:: (a -> Bool) -> [a] -> -- [a] applicable to any MonadPlus, for example mfilter -- odd (Just 1) == Just 1 mfilter odd (Just 2) == Nothing mfilter :: MonadPlus m => (a -> Bool) -> m a -> m a -- | Generalizes the remove function. mremove :: MonadPlus m => (a -> Bool) -> m a -> m a -- | Generalizes the partition function. mpartition :: MonadPlus m => (a -> Bool) -> m a -> (m a, m a) -- | Translate maybe to an arbitrary MonadPlus type. Generalizes the -- maybeToList function. mfromMaybe :: MonadPlus m => Maybe a -> m a -- | Pass through Just occurrences. Generalizes the -- catMaybes function. mcatMaybes :: MonadPlus m => m (Maybe a) -> m a -- | Modify or discard a value. Generalizes the mapMaybe function. mmapMaybe :: MonadPlus m => (a -> Maybe b) -> m a -> m b