(** A [form] is either a top-level definition or an expression to be evaluated .*)typeform=|Defineofstring*sexp|Exprofsexp(** A [sexp] is an expression to be evaluated. *)andsexp=|Boolofbool|Numofint|Identofstring|Lambdaofstringlist*sexp|Callofprimop*sexplist|Appofsexp*sexplist(** A [prog] is just a list of [form]. *)typeprog=formlist