# The monad-control package

This package defines the type class `MonadBaseControl`, a subset of
`MonadBase` into which generic control operations such as `catch` can be
lifted from `IO` or any other base monad. Instances are based on monad
transformers in `MonadTransControl`, which includes all standard monad
transformers in the `transformers` library except `ContT`.

See the `lifted-base` package which uses `monad-control` to lift `IO`
operations from the `base` library (like `catch` or `bracket`) into any monad
that is an instance of `MonadBase` or `MonadBaseControl`.

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` and `TypeFamilies` language extensions to
simplify and speedup most definitions.

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

git clone 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, 1.0.0.5, 1.0.1.0 |
---|---|

Change log | NEWS |

Dependencies | base (>=3 && <4.5), base-unicode-symbols (>=0.1.1 && <0.3), transformers (==0.2.*), transformers-base (==0.4.*) [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> |

Stability | Unknown |

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 | Sat Dec 3 11:38:31 UTC 2011 by BasVanDijk |

Distributions | Arch:1.0.1.0, Debian:1.0.0.4, Fedora:1.0.1.0, FreeBSD:1.0.0.4, LTSHaskell:1.0.1.0, NixOS:1.0.1.0, Stackage:1.0.1.0, Tumbleweed:1.0.1.0 |

Downloads | 168540 total (104 in the last 30 days) |

Votes | |

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

## Downloads

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