Home

Awesome

ppx_effects – syntax extensions for untyped effects in OCaml 5.0

OCaml 5.0 will ship with support for effects! :tada:

However, since the effect implementation is currently untyped, the compiler doesn't yet provide any dedicated syntax to support defining or handling effects. This PPX provides a close approximation to the proposed syntax, hopefully making it simpler to use effects in your OCaml 5.0 code (and easing future migrations to a dedicated syntax).

STATUS: EXPERIMENTAL

OCaml-CI Build Status

Usage

In short:

See the result of porting this PPX to various effectful repositories here:

Install

This library has not yet been released to opam. To install it, first

opam pin add --yes https://github.com/CraigFe/ppx_effects.git
opam install ppx_effects

Users of dune can then use this PPX on their libraries and executables by adding the appropriate stanza field:

(library
 ...
 (preprocess (pps ppx_effects)))

Details

Using the PPX should ideally be exactly like using the dedicated syntax. However, there are a few implementation details that can leak to PPX users: