sig
type t
val view : FO.T.t -> (FO.T.t, FO.Ty.t) FO.view
val compare : FO.T.t -> FO.T.t -> int
val equal : FO.T.t -> FO.T.t -> bool
val hash : FO.T.t -> int
val builtin : FO.Builtin.t -> FO.T.t
val const : FO.id -> FO.T.t
val app : FO.id -> FO.T.t list -> FO.T.t
val data_test : FO.id -> FO.T.t -> FO.T.t
val data_select : FO.id -> int -> FO.T.t -> FO.T.t
val undefined : FO.id -> FO.T.t -> FO.T.t
val undefined_atom : FO.id -> FO.Ty.toplevel_ty -> FO.T.t list -> FO.T.t
val unparsable : FO.Ty.t -> FO.T.t
val var : FO.Ty.t FO.var -> FO.T.t
val let_ : FO.Ty.t FO.var -> FO.T.t -> FO.T.t -> FO.T.t
val fun_ : FO.Ty.t FO.var -> FO.T.t -> FO.T.t
val mu : FO.Ty.t FO.var -> FO.T.t -> FO.T.t
val ite : FO.T.t -> FO.T.t -> FO.T.t -> FO.T.t
val true_ : FO.T.t
val false_ : FO.T.t
val eq : FO.T.t -> FO.T.t -> FO.T.t
val and_ : FO.T.t list -> FO.T.t
val or_ : FO.T.t list -> FO.T.t
val not_ : FO.T.t -> FO.T.t
val imply : FO.T.t -> FO.T.t -> FO.T.t
val equiv : FO.T.t -> FO.T.t -> FO.T.t
val forall : FO.Ty.t FO.var -> FO.T.t -> FO.T.t
val exists : FO.Ty.t FO.var -> FO.T.t -> FO.T.t
val to_seq : FO.T.t -> FO.T.t Sequence.t
end