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@: . License: BSD3 License-file: LICENSE Author: Bas van Dijk, Anders Kaseorg Maintainer: Bas van Dijk 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 --------------------------------------------------------------------------------