Module Reflect.Term
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;
}