monad-control: Lift control operations, like exception catching, through monad transformers
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
:
http://code.haskell.org/~basvandijk/code/bench-monad-peel-control
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
test | Build the testing suite | Disabled |
hpc | Enable program coverage on test executable | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- monad-control-0.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 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, 1.0.2.0, 1.0.2.1, 1.0.2.2, 1.0.2.3, 1.0.2.4, 1.0.3, 1.0.3.1 |
---|---|
Dependencies | base (>=3 && <4.4), base-unicode-symbols (>=0.1.1 && <0.3), HUnit (>=1.2.2 && <1.3), test-framework (>=0.2.4 && <0.4), test-framework-hunit (>=0.2.4 && <0.3), transformers (>=0.2 && <0.3) [details] |
License | BSD-3-Clause |
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 |
Source repo | head: darcs get http://code.haskell.org/~basvandijk/code/monad-control |
Uploaded | by BasVanDijk at 2011-02-09T12:05:26Z |
Distributions | Arch:1.0.3.1, Debian:1.0.2.3, Fedora:1.0.3.1, FreeBSD:1.0.0.4, LTSHaskell:1.0.3.1, NixOS:1.0.3.1, Stackage:1.0.3.1, openSUSE:1.0.3.1 |
Reverse Dependencies | 552 direct, 8160 indirect [details] |
Executables | test-monad-control |
Downloads | 313890 total (12 in the last 30 days) |
Rating | 2.0 (votes: 1) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |