(* fun/Absyn.sml * Abstract syntax for a first-order functional language *) datatype expr = CstI of int | CstB of bool | Var of string | Let of string * expr * expr | Prim of string * expr list | If of expr * expr * expr | Letfun of string * string * expr * expr (* (f, x, fbody, ebody) *) | Call of expr * expr