summaryrefslogtreecommitdiffstats
path: root/haskell/haskell-monad-control/DETAILS
blob: ba4e065c4e7df78e8b402b46db3c684d06ad1277 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
           SPELL=haskell-monad-control
         VERSION=1.0.2.2
          SOURCE="monad-control-${VERSION}.tar.gz"
   SOURCE_URL[0]=http://hackage.haskell.org/packages/archive/monad-control/${VERSION}/${SOURCE}
     SOURCE_HASH=sha512:0a65004eeefe38fcaad033d293345020ec358c532a1edf4931c64414ac4d19129c534531e761e1cc0e028a0a4cc26e2b6f404cb939a08be196c58085a7739320
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 <https://github.com/basvandijk/bench-monad-peel-control>@
EOF