package algaeff

  1. Overview
  2. Docs

Effects for reading immutable environments.

module R = Algaeff.Reader.Make (struct type env = int end)

let () = R.run ~env:42 @@ fun () ->
  (* this will print out 42 *)
  print_int (R.read ());

  (* this will print out 43 *)
  R.scope (fun i -> i + 1) (fun () -> print_int (R.read ()));

  (* this will print out 42 again *)
  print_int (R.read ())

This should be equivalent to Unmonad applying to the standard reader monad.

module type Param = sig ... end

Parameters of read effects.

module type S = sig ... end

Signatures of read effects.

module Make (P : Param) : S with type env = P.env

The implementation of read effects.