sig
  val restrict : bool Pervasives.ref
  val mapleaf1 : ('a -> 'b) -> 'a Cudd.Vdd.t -> 'b Cudd.Vdd.t
  val retractivemapleaf1 :
    default:'a Cudd.Vdd.t ->
    (Cudd.Bdd.vt -> 'b -> Cudd.Bdd.vt * 'a) -> 'b Cudd.Vdd.t -> 'a Cudd.Vdd.t
  val expansivemapleaf1 :
    default:'a Cudd.Vdd.t ->
    merge:('a Cudd.Vdd.t -> 'a Cudd.Vdd.t -> 'a Cudd.Vdd.t) ->
    (Cudd.Bdd.vt -> 'b -> Cudd.Bdd.vt * 'a) -> 'b Cudd.Vdd.t -> 'a Cudd.Vdd.t
  val combineleaf1 :
    default:'c ->
    combine:('b -> 'c -> 'c) ->
    (Cudd.Bdd.vt -> 'a -> 'b) -> 'a Cudd.Vdd.t -> 'c
  val mapleaf2 :
    ('a -> 'b -> 'c) -> 'a Cudd.Vdd.t -> 'b Cudd.Vdd.t -> 'c Cudd.Vdd.t
  val retractivemapleaf2 :
    default:'a Cudd.Vdd.t ->
    (Cudd.Bdd.vt -> 'b -> 'c -> Cudd.Bdd.vt * 'a) ->
    'b Cudd.Vdd.t -> 'c Cudd.Vdd.t -> 'a Cudd.Vdd.t
  val expansivemapleaf2 :
    default:'a Cudd.Vdd.t ->
    merge:('a Cudd.Vdd.t -> 'a Cudd.Vdd.t -> 'a Cudd.Vdd.t) ->
    (Cudd.Bdd.vt -> 'b -> 'c -> Cudd.Bdd.vt * 'a) ->
    'b Cudd.Vdd.t -> 'c Cudd.Vdd.t -> 'a Cudd.Vdd.t
  val combineleaf2 :
    default:'d ->
    combine:('c -> 'd -> 'd) ->
    (Cudd.Bdd.vt -> 'a -> 'b -> 'c) -> 'a Cudd.Vdd.t -> 'b Cudd.Vdd.t -> 'd
  val combineleaf_array :
    default:'c ->
    combine:('b -> 'c -> 'c) ->
    tabsorbant:('a -> bool) option array ->
    (Cudd.Bdd.vt -> 'a array -> 'b) -> 'a Cudd.Vdd.t array -> 'c
  val combineleaf1_array :
    default:'d ->
    combine:('c -> 'd -> 'd) ->
    ?absorbant:('a -> bool) ->
    tabsorbant:('b -> bool) option array ->
    (Cudd.Bdd.vt -> 'a -> 'b array -> 'c) ->
    'a Cudd.Vdd.t -> 'b Cudd.Vdd.t array -> 'd
  val combineleaf2_array :
    default:'e ->
    combine:('d -> 'e -> 'e) ->
    ?absorbant1:('a -> bool) ->
    ?absorbant2:('b -> bool) ->
    tabsorbant:('c -> bool) option array ->
    (Cudd.Bdd.vt -> 'a -> 'b -> 'c array -> 'd) ->
    'a Cudd.Vdd.t -> 'b Cudd.Vdd.t -> 'c Cudd.Vdd.t array -> 'e
  val combineretractive : Cudd.Bdd.vt * 'a -> 'a Cudd.Vdd.t -> 'a Cudd.Vdd.t
  val combineexpansive :
    default:'a Cudd.Vdd.t ->
    merge:('a Cudd.Vdd.t -> 'b Cudd.Vdd.t -> 'c Cudd.Vdd.t) ->
    Cudd.Bdd.vt * 'a -> 'b Cudd.Vdd.t -> 'c Cudd.Vdd.t
end