monad-control-aligned: Just like monad-control, except less efficient, and the monadic state terms are all * -> *

[ bsd3, control, library ] [ Propose Tags ]

[Skip to Readme]
Versions [faq] 0.0.0, 0.0.1,
Change log CHANGELOG
Dependencies base (>=4.5 && <5), stm (>=2.3 && <3), transformers (>=0.2 && <0.6), transformers-base (>=0.4.4 && <0.5), transformers-compat (>=0.3 && <0.6) [details]
License BSD-3-Clause
Copyright (c) 2011 Bas van Dijk, Anders Kaseorg
Author Athan Clark
Maintainer Athan Clark <>
Category Control
Home page
Bug tracker
Source repo head: git clone git://
Uploaded by athanclark at 2017-05-10T22:42:02Z
Distributions LTSHaskell:, NixOS:, Stackage:
Downloads 2032 total (11 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2017-05-10 [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for monad-control-aligned-0.0.0

[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.

The package includes a copy of the monad-peel testsuite written by Anders Kaseorg The tests can be performed by using cabal test.

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