monad-control: Lift control operations, like exception catching, through monad transformers

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

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.


[Skip to ReadMe]

Properties

Versions0.1, 0.2, 0.2.0.1, 0.2.0.2, 0.2.0.3, 0.3, 0.3.0.1, 0.3.1, 0.3.1.1, 0.3.1.2, 0.3.1.3, 0.3.1.4, 0.3.2, 0.3.2.1, 0.3.2.2, 0.3.2.3, 0.3.3.0, 0.3.3.1, 1.0.0.0, 1.0.0.1, 1.0.0.2, 1.0.0.3, 1.0.0.4, 1.0.0.5, 1.0.1.0, 1.0.2.0, 1.0.2.1, 1.0.2.2, 1.0.2.3, 1.0.2.3
Change logCHANGELOG
Dependenciesbase (>=4.5 && <5), stm (>=2.3 && <3), transformers (>=0.2 && <0.6), transformers-base (>=0.4.4 && <0.5), transformers-compat (>=0.3 && <0.7) [details]
LicenseBSD-3-Clause
Copyright(c) 2011 Bas van Dijk, Anders Kaseorg
AuthorBas van Dijk, Anders Kaseorg
MaintainerBas van Dijk <v.dijk.bas@gmail.com>
CategoryControl
Home pagehttps://github.com/basvandijk/monad-control
Bug trackerhttps://github.com/basvandijk/monad-control/issues
Source repositoryhead: git clone git://github.com/basvandijk/monad-control.git
UploadedMon Feb 26 08:13:14 UTC 2018 by BasVanDijk

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees


Readme for monad-control-1.0.2.3

[back to package description]

Hackage Build Status

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.

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.

This criterion based benchmark shows that monad-control is on average about 2.5 times faster than monad-peel.