sig
  val add : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> unit
  val find_or :
    'a Cudd.Weakke.compare ->
    'a Cudd.Weakke.t -> 'a -> (int -> int -> 'a) -> 'a
  val merge : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> 'a
  val merge_map :
    'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> ('a -> 'a) -> 'a
  val find : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> 'a
  val find_shadow :
    'a Cudd.Weakke.compare ->
    'a Cudd.Weakke.t -> 'a -> ('a Weak.t -> int -> 'b) -> 'b -> 'b
  val remove : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> unit
  val mem : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> bool
  val find_all : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> 'a list
end