Term (imandra-base.Imandra_prelude.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`