A friendly effect system for Haskell
Go to file
Alej Cabrera fa212cb126 add(0.2.0): NonDetEff; more clean up
* Implement NonDetEff
* Separate Cut/Coroutine out from Internals
  * Partial implementation: won't compile yet
* Extract remaining examples from Internal comments
2015-09-12 03:01:16 -05:00
examples/src add(0.2.0): NonDetEff; more clean up 2015-09-12 03:01:16 -05:00
src add(0.2.0): NonDetEff; more clean up 2015-09-12 03:01:16 -05:00
.gitignore initial commit 2015-09-12 00:38:18 -05:00
changelog.md add(0.2.0): NonDetEff; more clean up 2015-09-12 03:01:16 -05:00
CODE_OF_CONDUCT.md docs: README, CoC, changelog 2015-09-12 01:41:06 -05:00
freer.cabal add(0.2.0): NonDetEff; more clean up 2015-09-12 03:01:16 -05:00
LICENSE initial commit 2015-09-12 00:38:18 -05:00
README.md docs: README, CoC, changelog 2015-09-12 01:41:06 -05:00
Setup.hs initial commit 2015-09-12 00:38:18 -05:00
stack.yaml initial commit 2015-09-12 00:38:18 -05:00

Freer: Extensible Effects with Freer Monads

Freer is an implementation of "Freer Monads, More Extensible Effects". Much of the implementation is a repackaging and cleaning up of the reference materials provided here.

Features

The key features of Freer are:

  • An efficient effect system for Haskell as a library
  • Implementations for several common Haskell monad instances:
    • Reader
    • Writer
    • State
    • StateRW: State in terms of Reader/Writer
    • Trace
    • Exception
  • Core components for defining your own Effects

Contributing

Contributions are welcome! Documentation, examples, code, and feedback - they all help.

Be sure to review the included code of conduct. This project adheres to the Contributor's Covenant. By participating in this project you agree to abide by its terms.

Developer Setup

The easiest way to start contributing is to install stack. stack can install GHC/Haskell for you, and automates common developer tasks.

The key commands are:

  • stack setup : install GHC
  • stack build
  • stack clean
  • stack haddock : builds documentation
  • stack test
  • stack bench
  • stack ghci : start a REPL instance

Licensing

This project is distrubted under a BSD3 license. See the included LICENSE file for more details.

Acknowledgements

This package would not be possible without the paper and the reference implementation. In particular:

There will be deviations from the source.