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

Parameterizable list monad, with an inner monad.

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

MonadTrans ListT Source | |

Monad m => Monad (ListT m) Source | |

Functor m => Functor (ListT m) Source | |

Applicative m => Applicative (ListT m) Source | |

Foldable f => Foldable (ListT f) Source | |

Traversable f => Traversable (ListT f) Source | |

Applicative m => Alternative (ListT m) Source | |

Monad m => MonadPlus (ListT m) Source | |

MonadIO m => MonadIO (ListT m) Source | |

Show1 m => Show1 (ListT m) Source | |

Read1 m => Read1 (ListT m) Source | |

Ord1 m => Ord1 (ListT m) Source | |

Eq1 m => Eq1 (ListT m) Source | |

(Eq1 m, Eq a) => Eq (ListT m a) Source | |

(Ord1 m, Ord a) => Ord (ListT m a) Source | |

(Read1 m, Read a) => Read (ListT m a) Source | |

(Show1 m, Show a) => Show (ListT m a) Source |

# Lifting other operations

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

Lift a `callCC`

operation to the new monad.