Control.Monad.List

mtl-2.1.3.1: Monad classes, using functional dependencies

Copyright | (c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology, 2001
License | BSD-style (see the file LICENSE)
Maintainer | libraries@haskell.org
Stability | experimental
Portability | portable
Safe Haskell | Safe-Inferred
Language | Haskell98

Control.Monad.List

Description

The List monad.

Synopsis

- newtype ListT m a :: (* -> *) -> * -> * = ListT {
  - runListT :: m [a]
  }
- mapListT :: (m [a] -> n [b]) -> ListT m a -> ListT n b
- module Control.Monad
- module Control.Monad.Trans

# Documentation

newtype ListT m a :: (* -> *) -> * -> *

Parameterizable list monad, with an inner monad.

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

Constructors

ListT |
Fields runListT :: m [a]

Instances

MonadTrans ListT |
MonadState s m => MonadState s (ListT m) |
MonadReader r m => MonadReader r (ListT m) |
MonadError e m => MonadError e (ListT m) |
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) |
MonadCont m => MonadCont (ListT m) |

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

Map between `ListT` computations.

-     runListT (mapListT f m) = f (runListT m)

module Control.Monad

module Control.Monad.Trans