Skip to content

ocaml-multicore/effects-examples

Repository files navigation

OCaml effects examples

Build Status

Examples to illustrate the use of algebraic effects in OCaml. See

Examples

The original implementation of Multicore OCaml allowed a user to Obj.clone_continuation. This has been removed, the examples that used this are in the multishot directory. See this conversation about the removal of this feature. They now use the ocaml-multicont library.

Running the examples

To run the examples with Multicore OCaml, be sure to install Opam with these instructions. If your version of Opam (opam --version) is greater than or equal to 2.1 then the following instructions will work:

# After cloning this repository, create a 5.1.0 switch
opam update
# Add the alpha repository to get unreleased 5.1.0 compatible libraries
opam switch create 5.1.0
opam install . --deps-only

Running make will build all of the examples. If you want to run a single executable that is built with dune you can run:

$ dune exec -- ./<executable_name>.exe

External examples

These are other examples that utilise OCaml effect handlers that are not in this repo:

Citation

If you are citing this work in an academic paper, please cite the PLDI 2021 paper "Retrofitting Effect Handlers onto OCaml": https://dl.acm.org/doi/10.1145/3453483.3454039.