/Haskell 7


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
Language Haskell98


The ListT monad transformer, adding backtracking to a given monad, which must be commutative.

The ListT monad transformer

newtype ListT m a Source

Parameterizable list monad, with an inner monad.

Note: this does not yield a monad unless the argument monad is commutative.




runListT :: m [a]


MonadTrans ListT
Monad m => Monad (ListT m)
Functor m => Functor (ListT m)
Applicative m => Applicative (ListT m)
Foldable f => Foldable (ListT f)
Traversable f => Traversable (ListT f)
Applicative m => Alternative (ListT m)
Monad m => MonadPlus (ListT m)
MonadIO m => MonadIO (ListT m)
Show1 m => Show1 (ListT m)
Read1 m => Read1 (ListT m)
Ord1 m => Ord1 (ListT m)
Eq1 m => Eq1 (ListT m)
(Eq1 m, Eq a) => Eq (ListT m a)
(Ord1 m, Ord a) => Ord (ListT m a)
(Read1 m, Read a) => Read (ListT m a)
(Show1 m, Show a) => Show (ListT m a)

mapListT :: (m [a] -> n [b]) -> ListT m a -> ListT n b Source

Map between ListT computations.

Lifting other operations

liftCallCC :: CallCC m [a] [b] -> CallCC (ListT m) a b Source

Lift a callCC operation to the new monad.

liftCatch :: Catch e m [a] -> Catch e (ListT m) a Source

Lift a catchE operation to the new monad.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).