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 @ EOF