higher-order algebraic effects done right for Haskell
Go to file
Yamada Ryo 9e22c667e4
[fix] Change the order of type arguments for heftia transformers.
[fix] Unify signature sum types with those of the datacomp package.
2023-09-04 11:44:27 +09:00
heftia [fix] Change the order of type arguments for heftia transformers. 2023-09-04 11:44:27 +09:00
heftia-effects [fix] Change the order of type arguments for heftia transformers. 2023-09-04 11:44:27 +09:00
.gitignore initial commit. 2023-08-25 13:23:49 +09:00
cabal.project [add] handlers for the Reader effect. 2023-09-01 21:59:56 +09:00
CLA Change the license to MPL. 2023-08-29 15:27:29 +09:00
CONTRIBUTING.md Change the license to MPL. 2023-08-29 15:27:29 +09:00
LICENSE Change the license to MPL. 2023-08-29 15:27:29 +09:00
NOTICE Add a notice of MPL. 2023-09-01 22:34:38 +09:00
README.md Change the license to MPL. 2023-08-29 15:27:29 +09:00

Heftia

Heftia, a composition of hefty trees and co-Yoneda, is a higher-order effects version of Freer.

The paper

  • Casper Bach Poulsen and Cas van der Rest. 2023. Hefty Algebras: Modular Elaboration of Higher-Order Algebraic Effects. Proc. ACM Program. Lang. 7, POPL, Article 62 (January 2023), 31 pages. https://doi.org/10.1145/3571255

inspires this library. Hefty trees, proposed by the above paper, are extensions of free monads, allowing for a straightforward treatment of higher-order effects.

This library provides Heftia monads and Freer monads, encoded into data types in several ways to enable tuning in pursuit of high performance.

Your contributions are welcome!

Please see CONTRIBUTING.md.