sig
type t
val empty : Passive.t
val union : Passive.t -> Passive.t -> Passive.t
val bind : fresh:Lang.F.var -> bound:Lang.F.var -> Passive.t -> Passive.t
val join : Lang.F.var -> Lang.F.var -> Passive.t -> Passive.t
val conditions : Passive.t -> (Lang.F.var -> bool) -> Lang.F.pred list
val apply : Passive.t -> Lang.F.pred -> Lang.F.pred
val pretty : Format.formatter -> Passive.t -> unit
end