Module type Expi.S

type ('a, 'e) state
type 'a u = (unit, 'a) state
type 'a r = (Bil.result, 'a) state
module M : Core_kernel.T2 with type ('a, 'e) t = ('a, 'e) state
module Eval : Eval.S2 with type ('a, 'e) m := ('a, 'e) state and module M := M
class 'a t : object ... end

Expression interpreter.