SPELL=haskell-monad-control
VERSION=0.3.3.0
SOURCE="monad-control-${VERSION}.tar.gz"
SOURCE_URL[0]=http://hackage.haskell.org/packages/archive/monad-control/${VERSION}/${SOURCE}
SOURCE_HASH=sha512:734ca14baea74f9bd6f3603dc84426bd6d79ae23998ffcce5c8b994dfa8d58b8a573e7b0f68f7eaab07163c8806d8d5f95160f0439cc5fbd07b9509c84e4ef8a
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/monad-control-${VERSION}"
WEB_SITE="https://github.com/basvandijk/monad-control"
LICENSE[0]=BSD3
ENTERED=20130709
SHORT="lift control operations"
cat << EOF
Description: 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 @criterion@ based benchmark shows that @monad-control@ is on
average about 99% faster than @monad-peel@:
@git clone @
EOF