sig
type id = string
type field = string
type exp =
Int of int
| Add of HOF_syntax.exp * HOF_syntax.exp
| Sub of HOF_syntax.exp * HOF_syntax.exp
| Mul of HOF_syntax.exp * HOF_syntax.exp
| Let of HOF_syntax.id * HOF_syntax.exp * HOF_syntax.exp
| Id of HOF_syntax.id
| If0 of HOF_syntax.exp * HOF_syntax.exp * HOF_syntax.exp
| Lambda of HOF_syntax.id list * HOF_syntax.exp
| Apply of HOF_syntax.exp * HOF_syntax.exp list
| Record of (HOF_syntax.field * HOF_syntax.exp) list
| SetField of HOF_syntax.exp * HOF_syntax.field * HOF_syntax.exp
| GetField of HOF_syntax.exp * HOF_syntax.field
end