Module FO.T

module T: sig .. end

type t 
val view : t -> (t, FO.Ty.t) FO.view
Observe the structure of the term
val compare : t -> t -> int
Fast total ordering on values of type t. NOT structural comparison! There is no guarantee that two terms that are only structurally equal, but that have been built independently, will compare to 0
val equal : t -> t -> bool
val hash : t -> int
val builtin : FO.Builtin.t -> t
val const : FO.id -> t
val app : FO.id -> t list -> t
val data_test : FO.id -> t -> t
val data_select : FO.id -> int -> t -> t
val undefined : FO.id -> t -> t
val undefined_atom : FO.id -> FO.Ty.toplevel_ty -> t list -> t
val unparsable : FO.Ty.t -> t
val var : FO.Ty.t FO.var -> t
val let_ : FO.Ty.t FO.var -> t -> t -> t
val fun_ : FO.Ty.t FO.var -> t -> t
val mu : FO.Ty.t FO.var -> t -> t
val ite : t -> t -> t -> t
val true_ : t
val false_ : t
val eq : t -> t -> t
val and_ : t list -> t
val or_ : t list -> t
val not_ : t -> t
val imply : t -> t -> t
val equiv : t -> t -> t
val forall : FO.Ty.t FO.var -> t -> t
val exists : FO.Ty.t FO.var -> t -> t
val to_seq : t -> t Sequence.t
subterms