https://github.com/purescript/purescript-free
Free monads, Cofree comonads, Yoneda and Coyoneda functors, and the Trampoline monad.
https://github.com/purescript/purescript-free
Last synced: 3 days ago
JSON representation
Free monads, Cofree comonads, Yoneda and Coyoneda functors, and the Trampoline monad.
- Host: GitHub
- URL: https://github.com/purescript/purescript-free
- Owner: purescript
- License: bsd-3-clause
- Created: 2014-03-30T15:47:38.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2023-09-05T20:55:47.000Z (over 2 years ago)
- Last Synced: 2025-10-29T00:38:00.271Z (4 months ago)
- Language: PureScript
- Homepage:
- Size: 571 KB
- Stars: 95
- Watchers: 8
- Forks: 26
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# purescript-free
[](https://github.com/purescript/purescript-free/releases)
[](https://github.com/purescript/purescript-free/actions?query=workflow%3ACI+branch%3Amaster)
[](https://pursuit.purescript.org/packages/purescript-free)
Free monad, Cofree comonad, Yoneda and Coyoneda functors, and the Trampoline monad implementations for PureScript.
The Free monad implementation is represented using a sequential data structure.
See the following reference for further information.
- [Reflection without Remorse](http://okmij.org/ftp/Haskell/zseq.pdf) (Ploeg and Kiselyov 2014)
## Installation
```
spago install free
```
## Documentation
Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-free).
## Benchmarks
The following benchmarks compare the implementation at `v5.2.0` (commit f686f5fc07766f3ca9abc83b47b6ad3da326759a) with the implementation at `v0.6.1` (commit 0df59c5d459fed983131856886fc3a4b43234f1f), which used the `Gosub` technique to defer monadic binds.



