Name: monad-control
Version: 0.2
Synopsis: Lift control operations, like exception catching, through monad transformers
Description:
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>
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
Category: Control
Build-type: Custom
Cabal-version: >= 1.6
--------------------------------------------------------------------------------
source-repository head
type: darcs
location: http://code.haskell.org/~basvandijk/code/monad-control
--------------------------------------------------------------------------------
flag test
description: Build the testing suite
default: False
flag hpc
description: Enable program coverage on test executable
default: False
--------------------------------------------------------------------------------
Library
Exposed-modules: Control.Monad.Trans.Control
Control.Monad.IO.Control
Control.Exception.Control
Build-depends: base >= 3 && < 4.4
, base-unicode-symbols >= 0.1.1 && < 0.3
, transformers >= 0.2 && < 0.3
Ghc-options: -Wall
--------------------------------------------------------------------------------
executable test-monad-control
main-is: test.hs
ghc-options: -Wall
if flag(test)
build-depends: 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
buildable: True
else
buildable: False
if flag(hpc)
ghc-options: -fhpc
--------------------------------------------------------------------------------