functor (K : sig val is_summary : Key.t -> bool end)
(Value : sig
val ty : Value.t Type.t
val name : string
val descr : Value.t Descr.t
val packed_descr : Structural_descr.pack
val reprs : Value.t list
val equal : Value.t -> Value.t -> bool
val compare : Value.t -> Value.t -> int
val hash : Value.t -> int
val pretty_code : Format.formatter -> Value.t -> unit
val internal_pretty_code :
Type.precedence -> Format.formatter -> Value.t -> unit
val pretty : Format.formatter -> Value.t -> unit
val varname : Value.t -> string
val mem_project :
(Project_skeleton.t -> bool) -> Value.t -> bool
val copy : Value.t -> Value.t
val join : Value.t -> Value.t -> Value.t
val is_included : Value.t -> Value.t -> bool
val bottom : Value.t
val top : Value.t
type widen_hint
val widen : widen_hint -> Value.t -> Value.t -> Value.t
val cardinal_zero_or_one : Value.t -> bool
val narrow : Value.t -> Value.t -> Value.t
val link : Value.t -> Value.t -> Value.t
val meet : Value.t -> Value.t -> Value.t
val intersects : Value.t -> Value.t -> bool
val diff : Value.t -> Value.t -> Value.t
val diff_if_one : Value.t -> Value.t -> Value.t
val fold_enum : (Value.t -> 'a -> 'a) -> Value.t -> 'a -> 'a
val cardinal_less_than : Value.t -> int -> int
end)
->
sig
val cardinal_zero_or_one : t -> bool
val diff_if_one : t -> t -> t
val fold_enum : (t -> 'a -> 'a) -> t -> 'a -> 'a
val cardinal_less_than : t -> int -> int
val find_lonely_key : t -> key * v
val find_lonely_binding : t -> key * v
end