Astval pp_name :
Ppx_deriving_runtime.Format.formatter ->
name ->
Ppx_deriving_runtime.unitval show_name : name -> Ppx_deriving_runtime.stringval pp_binop :
Ppx_deriving_runtime.Format.formatter ->
binop ->
Ppx_deriving_runtime.unitval show_binop : binop -> Ppx_deriving_runtime.stringtype expr = | Var of nameПеременная, например: `x`, `y`, `foo`
*)| Abs of name * exprЛямбда-функция (абстракция), например: `fun x -> x + 1`
*)| App of expr * exprПрименение функции, например: `f 5`
*)| Const of intЦелочисленная константа, например: `0`, `15`, `-7`
*)| BinOp of binop * expr * exprБинарная операция, например: `2 + 3`, `x * y`
*)| If of expr * expr * exprУсловное выражение: `if условие then ветка1 else ветка2`
*)| Let of name * expr * exprLet-связывание: `let x = значение in тело`
*)| LetRec of name * name * expr * exprРекурсивное let-связывание: `let rec f x = тело_f in выражение`
*)| Fix of exprОператор фиксированной точки для рекурсии (fix combinator)
*)| Prim of string * expr listПримитивные функции: `println_int(42)`
*)val pp_expr :
Ppx_deriving_runtime.Format.formatter ->
expr ->
Ppx_deriving_runtime.unitval show_expr : expr -> Ppx_deriving_runtime.string