package tiny_languages
Module Ast_ml
type longid = name listtype expr = | Econst| Eident of longid| Econstr of longid * expr option| Evariant of name * expr option| Etuple of expr list| Elist of expr list| Erecord of expr option * (longid * expr option) list| Efield of expr * longid| Esetfield of expr * longid * expr| Eapply of expr * expr list| Elet of bool * binding list * expr| Eletop of binding list * expr| Efun of param list * expr| Efunction of case list| Ematch of expr * case list| Eif of expr * expr * expr option| Eseq of expr list| Ewhile of expr * expr| Efor of name * expr * expr * expr| Econstraint of expr * ty| Eletmodule of name * modexpr * expr| Eopen of modexpr * expr| Enewtype of name * expr| Epack of modexpr| Emisc of expr list