Mml.Astval pp_binop :
Ppx_deriving_runtime.Format.formatter ->
binop ->
Ppx_deriving_runtime.unitval show_binop : binop -> Ppx_deriving_runtime.stringtype 'name t = | Var of 'nameVariable reference: represents a variable by its name
*)| Fun of 'name * 'name tFunction abstraction: fun x -> body creates a function with parameter x and body
| App of 'name t * 'name tFunction application: f arg applies function f to argument arg
| Int of intInteger literal: constant integer value
*)| Neg of 'name tUnary negation: -e negates the value of expression e
| Bin of binop * 'name t * 'name tBinary operation: e1 op e2 applies binary operator op to e1 and e2
| Let of 'name * 'name t * 'name tLet binding: let x = e1 in e2 binds x to e1 in scope of e2
| If of 'name t * 'name t * 'name tConditional: if cond then e1 else e2 evaluates to e1 if cond is non-zero, otherwise e2
| LetRec of 'name * 'name t * 'name tRecursive let: let rec f = e1 in e2 creates recursive binding of f to e1 in e2
| FixFixed-point operator: fix enables recursion without explicit let rec
Abstract syntax tree for miniML expressions