Module Reflect.Term

type const =
| Const_string of string
| Const_z of Int.t
| Const_q of Real.t
val pp_const : CCFormat.t -> const -> unit
type 'a binding = Var.t * 'a
type t =
| Bool of bool
| Const of const
| If of t * t * t
| Apply of t * t list
| Ident of Uid.t
| Tuple of t list
| Let of {
rec_ : bool;
bindings : t binding list;
body : t;
}
| Tuple_field of int * int * t
| Construct of Uid.t * t list
| Destruct of Uid.t * int * int * Uid.t option * t
| Is_a of Uid.t * t
| Field of Uid.t * t
| Record of (Uid.t * t) list * t option
| Fun of Var.t * t
| Case of t * case list * t option
| Let_tuple of Var.t list * t * t
and case = {
case_cstor : Uid.t;
case_vars : Var.t list;
case_rhs : t;
}
val dummy : t
val pp_ : as_ocaml:bool -> t CCFormat.printer
val pp : t CCFormat.printer
val pp_as_ocaml : t CCFormat.printer
val to_string : t -> string