# The monad-control package

This package defines the type class `MonadControlIO`, a subset of
`MonadIO` into which generic control operations such as `catch` can
be lifted from `IO`. Instances are based on monad transformers in
`MonadTransControl`, which includes all standard monad transformers
in the `transformers` library except `ContT`. For convenience, it
provides a wrapped version of `Control.Exception` with types
generalized from `IO` to all monads in `MonadControlIO`.

Note that this package is a rewrite of Anders Kaseorg's `monad-peel` library.
The main difference is that this package provides CPS style
operators and exploits the `RankNTypes` language extension to
simplify most definitions.

The package includes a copy of the `monad-peel` testsuite written by Anders Kaseorg.
The tests can be performed by using `cabal test`.

The following `critertion` based benchmark shows that `monad-control`
is on average about 2.5 times faster than `monad-peel`:

https://github.com/basvandijk/bench-monad-peel-control

[Skip to ReadMe]

## Properties

Versions | 0.1, 0.2, 0.2.0.1, 0.2.0.2, 0.2.0.3, 0.3, 0.3.0.1, 0.3.1, 0.3.1.1, 0.3.1.2, 0.3.1.3, 0.3.1.4, 0.3.2, 0.3.2.1, 0.3.2.2, 0.3.2.3, 0.3.3.0, 0.3.3.1, 1.0.0.0, 1.0.0.1, 1.0.0.2, 1.0.0.3, 1.0.0.4 |
---|---|

Change log | None available |

Dependencies | base (>=3 && <4.5), base-unicode-symbols (>=0.1.1 && <0.3), transformers (==0.2.*) [details] |

License | BSD3 |

Copyright | (c) 2011 Bas van Dijk, Anders Kaseorg |

Author | Bas van Dijk, Anders Kaseorg |

Maintainer | Bas van Dijk <v.dijk.bas@gmail.com> |

Category | Control |

Home page | https://github.com/basvandijk/monad-control/ |

Bug tracker | https://github.com/basvandijk/monad-control/issues |

Source repository | head: git clone git://github.com/basvandijk/monad-control.git |

Uploaded | Mon Aug 8 09:16:08 UTC 2011 by BasVanDijk |

Distributions | Debian:1.0.0.4, Fedora:0.3.3.1, FreeBSD:1.0.0.4, LTSHaskell:1.0.0.4, NixOS:1.0.0.4, Stackage:1.0.0.4 |

Downloads | 165766 total (1071 in last 30 days) |

Votes | |

Status | Docs uploaded by user Build status unknown [no reports yet] |

## Modules

*Control**Exception**Monad*

[Index]

## Downloads

- monad-control-0.2.0.2.tar.gz [browse] (Cabal source package)
- Package description (included in the package)

#### Maintainers' corner

For package maintainers and hackage trustees