The monad-control package

[Tags: bsd3, library]

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.


Versions0.1, 0.2,,,, 0.3,, 0.3.1,,,,, 0.3.2,,,,,,,,,,
Change logNone available
Dependenciesbase (>=3 && <5), base-unicode-symbols (>=0.1.1 && <0.3), transformers (>=0.2 && <0.4), transformers-base (>=0.4.1 && <0.5)
Copyright(c) 2011 Bas van Dijk, Anders Kaseorg
AuthorBas van Dijk, Anders Kaseorg
MaintainerBas van Dijk <>
Home page
Bug tracker
Source repositoryhead: git clone git://
UploadedTue Feb 11 21:47:44 UTC 2014 by BasVanDijk
DistributionsDebian:, Fedora:, FreeBSD:, LTSHaskell:, NixOS:, Stackage:
Downloads163759 total (1326 in last 30 days)
StatusDocs available [build log]
Successful builds reported [all 1 reports]




instancestIf enabled this package will export MonadBaseControl instances for the lazy and strict ST monad. If disabled these instances are only exported when base >= 4.4. If enabled it is required that the transformer-base package exports MonadBase instances for ST. It will do this by default.Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees