package algaeff

  1. Overview
  2. Docs

Module Algaeff.ReaderSource

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.

Sourcemodule type Param = sig ... end

Parameters of read effects.

Sourcemodule type S = sig ... end

Signatures of read effects.

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

The implementation of read effects.

OCaml

Innovation. Community. Security.