Copyright | (c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology, 2001 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | ross@soi.city.ac.uk |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell98 |
The ListT monad transformer, adding backtracking to a given monad, which must be commutative.
The ListT monad transformer
Parameterizable list monad, with an inner monad.
Note: this does not yield a monad unless the argument monad is commutative.
MonadTrans ListT | |
Applicative m => Alternative (ListT m) | |
Monad m => Monad (ListT m) | |
Functor m => Functor (ListT m) | |
Monad m => MonadPlus (ListT m) | |
Applicative m => Applicative (ListT m) | |
Foldable f => Foldable (ListT f) | |
Traversable f => Traversable (ListT f) | |
MonadIO m => MonadIO (ListT m) |
Lifting other operations
liftCallCC :: ((([a] -> m [b]) -> m [a]) -> m [a]) -> ((a -> ListT m b) -> ListT m a) -> ListT m a Source
Lift a callCC
operation to the new monad.