datatype value = NUM of int | BOOL of bool | SUCC | PRED | ISZERO | CLOSURE of (string * term * env) | THUNK of term * env | ERROR withtype env = string -> value;