basvandijk/monad-control

Lift control operations, like exception catching, through monad transformers

Haskell

59

175 commits

updated Dec 17, 2022

See the code

README

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.

haskell

Contributors

basvandijk

123 commits

phadej

18 commits

fmthoma

12 commits

Lysxia

3 commits

basvandijk/monad-control

Lift control operations, like exception catching, through monad transformers

Haskell

59

175 commits

updated Dec 17, 2022

See the code

README

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.

haskell

Contributors

basvandijk

123 commits

phadej

18 commits

fmthoma

12 commits

Lysxia

3 commits

Languages

Haskell

97.3%

Nix

2.7%