Name: monad-control
Version: 0.3
Synopsis: Lift control operations, like exception catching, through monad transformers
License: BSD3
License-file: LICENSE
Author: Bas van Dijk, Anders Kaseorg
Maintainer: Bas van Dijk <v.dijk.bas@gmail.com>
Copyright: (c) 2011 Bas van Dijk, Anders Kaseorg
Homepage: https://github.com/basvandijk/monad-control
Bug-reports: https://github.com/basvandijk/monad-control/issues
Category: Control
Build-type: Simple
Cabal-version: >= 1.6
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 @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>@
extra-source-files: README.markdown, NEWS
--------------------------------------------------------------------------------
source-repository head
type: git
location: git://github.com/basvandijk/monad-control.git
--------------------------------------------------------------------------------
Library
Exposed-modules: Control.Monad.Trans.Control
Build-depends: base >= 3 && < 4.5
, base-unicode-symbols >= 0.1.1 && < 0.3
, transformers >= 0.2 && < 0.3
, transformers-base >= 0.4 && < 0.5
Ghc-options: -Wall