packages feed

monad-control-0.1: monad-control.cabal

Name:                monad-control
Version:             0.1
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 about
  2 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

--------------------------------------------------------------------------------