Readme for monad-control-0.2.0.3
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
.
This critertion
based benchmark shows that monad-control
is on average about 2.5
times faster than monad-peel
.