Module Xinterp_util

module Xinterp_util: sig .. end
Support code for writing an interpreter for a functional-imperative language.

type id = string 
val pp_id : Format.formatter -> id -> Ppx_deriving_runtime.unit
val show_id : id -> Ppx_deriving_runtime.string
type op2 = Interp_util.op2 = 
| LT
| GT
| Eq
| Add
| Sub
| Mul
| Div
| Mod
val pp_op2 : Format.formatter -> op2 -> Ppx_deriving_runtime.unit
val show_op2 : op2 -> Ppx_deriving_runtime.string
type const = Interp_util.const = 
| Int of int
| Bool of bool
val pp_const : Format.formatter -> const -> Ppx_deriving_runtime.unit
val show_const : const -> Ppx_deriving_runtime.string
type exp = 
| Id of id
| Const of const
| Op2 of op2 * exp * exp
| If of exp * exp * exp
| Let of id * exp * exp
| Fun of id * exp
| Fix of id * exp
| App of exp * exp
| Empty
| Cons of exp * exp
| Head of exp
| Tail of exp
| IsEmpty of exp
| Record of (string * exp) list
| GetField of exp * string
| MkArray of exp * exp
| GetArray of exp * exp
| SetArray of exp * exp * exp
val pp_exp : Format.formatter -> exp -> Ppx_deriving_runtime.unit
val show_exp : exp -> Ppx_deriving_runtime.string
val from_string : string -> exp
val from_file : string -> exp