Module Std.Eval

Basic and generic expression evaluator.

The module provides functors that derive base classes and class types for Expi, Bili, and Biri.

Note, this is a low-level interface that can be used if you want to build your own evaluators (interpreters). If you want to use already existing interpreter without drastically changing the semantics of BIL consider using the Primus Framework.

module T1 (M : Core_kernel.T1) : sig ... end

An evaluator interface parametrized by a T1 monad.

module T2 (M : Core_kernel.T2) : sig ... end

An evaluator parametrized by a T2 monad.

module type S = sig ... end

An interface of a basic evaluator in a T1 monad

module type S2 = sig ... end

An interface of a basic evaluator in a T1 monad

module Make2 (M : Monads.Std.Monad.S2) : S2 with type ('a, 'e) m := ('a, 'e) M.t and module M := M

Make2(M) provides an implementation of the S2 interface lifted into the monad M.

module Make (M : Monads.Std.Monad.S) : S with type 'a m := 'a M.t and module M := M

Make(M) provides an implementation of the S2 interface lifted into the monad M.