sig
type t
val emp : Exp.Fld.t
val one : Misc.component -> Exp.exp -> Exp.Fld.t
val two :
Misc.component -> Exp.exp -> Misc.component -> Exp.exp -> Exp.Fld.t
val from_list : (Misc.component * Exp.exp) list -> Exp.Fld.t
val inter : Exp.Fld.t -> Exp.Fld.t -> Exp.Fld.t
val inter_num : Exp.Fld.t -> Exp.Fld.t -> Exp.Fld.t
val diff : Exp.Fld.t -> Exp.Fld.t -> Exp.Fld.t
val common : Exp.Fld.t -> Exp.Fld.t -> Exp.Fld.t * Exp.Fld.t * Exp.Fld.t
val union : Exp.Fld.t -> Exp.Fld.t -> Exp.Fld.t
val hasfld : Misc.component -> Exp.Fld.t -> bool
val try_get : Misc.component -> Exp.Fld.t -> Exp.exp option
val get : Misc.component -> Exp.Fld.t -> Exp.exp
val get_extend : Misc.component -> Exp.Fld.t -> Exp.exp * Exp.Fld.t
val set : Misc.component -> Exp.exp -> Exp.Fld.t -> Exp.Fld.t
val mem : Misc.component -> Exp.exp -> Exp.Fld.t -> bool
val containing : Exp.exp -> Exp.Fld.t -> Misc.component
val exists : (Misc.component -> Exp.exp -> bool) -> Exp.Fld.t -> bool
val filter : (Misc.component -> Exp.exp -> bool) -> Exp.Fld.t -> Exp.Fld.t
val remove : Misc.component -> Exp.Fld.t -> Exp.Fld.t
val fold : (Misc.component -> Exp.exp -> 'a -> 'a) -> Exp.Fld.t -> 'a -> 'a
val fold_val : (Exp.exp -> 'a -> 'a) -> Exp.Fld.t -> 'a -> 'a
val iter_val : (Exp.exp -> unit) -> Exp.Fld.t -> unit
val components_equal : Exp.Fld.t -> Exp.Fld.t -> Exp.exp * Exp.Fld.t
val subset : Exp.Fld.t -> Exp.Fld.t -> Exp.exp
val compare : Exp.Fld.t -> Exp.Fld.t -> int
val abs_compare : Exp.Fld.t -> Exp.Fld.t -> int
val map : Exp.subst -> Exp.Fld.t -> Exp.Fld.t
val no_s : string -> Exp.Fld.t -> bool
end