module Lang: sig .. end
type expression =
type program = expression list
type value =
| |
NilVal |
| |
NumVal of int |
| |
StrVal of string |
| |
BoolVal of bool |
| |
ConsVal of value * value |
| |
FuncVal of (value list -> value) |
type env = (string * value) list
val _let : (string * expression) list -> expression -> expression
exception RuntimeException of string
val string_of_value : value -> string
val string_of_program : program -> string
val value_of_expression : env -> expression -> value
val eval : program -> value