Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/basvandijk/monad-control
Lift control operations, like exception catching, through monad transformers
https://github.com/basvandijk/monad-control
haskell
Last synced: 25 days ago
JSON representation
Lift control operations, like exception catching, through monad transformers
- Host: GitHub
- URL: https://github.com/basvandijk/monad-control
- Owner: basvandijk
- License: bsd-3-clause
- Created: 2011-08-08T08:09:39.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2022-12-17T16:37:33.000Z (almost 2 years ago)
- Last Synced: 2024-05-08T16:03:41.969Z (6 months ago)
- Topics: haskell
- Language: Haskell
- Homepage:
- Size: 214 KB
- Stars: 58
- Watchers: 7
- Forks: 33
- Open Issues: 13
-
Metadata Files:
- Readme: README.markdown
- Changelog: CHANGELOG
- License: LICENSE
Awesome Lists containing this project
README
[![Hackage](https://img.shields.io/hackage/v/monad-control.svg)](https://hackage.haskell.org/package/monad-control)
[![Build Status](https://travis-ci.org/basvandijk/monad-control.svg)](https://travis-ci.org/basvandijk/monad-control)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`](https://github.com/basvandijk/bench-monad-peel-control)
based benchmark shows that `monad-control` is on average about 2.5
times faster than `monad-peel`.