<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <herd>haskell</herd> <maintainer> <email>haskell@gentoo.org</email> </maintainer> <longdescription> 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@: <https://github.com/basvandijk/bench-monad-peel-control> </longdescription> </pkgmetadata>