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:'a ->
    combine:('b -> 'a -> 'a) ->
    (Cudd.Bdd.vt -> 'c -> 'b) -> 'c Cudd.Vdd.t -> 'a
  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:'a ->
    combine:('b -> 'a -> 'a) ->
    (Cudd.Bdd.vt -> 'c -> 'd -> 'b) -> 'c Cudd.Vdd.t -> 'd Cudd.Vdd.t -> 'a
  val combineleaf_array :
    default:'a ->
    combine:('b -> 'a -> 'a) ->
    tabsorbant:('c -> bool) option array ->
    (Cudd.Bdd.vt -> 'c array -> 'b) -> 'c Cudd.Vdd.t array -> 'a
  val combineleaf1_array :
    default:'a ->
    combine:('b -> 'a -> 'a) ->
    ?absorbant:('c -> bool) ->
    tabsorbant:('d -> bool) option array ->
    (Cudd.Bdd.vt -> 'c -> 'd array -> 'b) ->
    'c Cudd.Vdd.t -> 'd Cudd.Vdd.t array -> 'a
  val combineleaf2_array :
    default:'a ->
    combine:('b -> 'a -> 'a) ->
    ?absorbant1:('c -> bool) ->
    ?absorbant2:('d -> bool) ->
    tabsorbant:('e -> bool) option array ->
    (Cudd.Bdd.vt -> 'c -> 'd -> 'e array -> 'b) ->
    'c Cudd.Vdd.t -> 'd Cudd.Vdd.t -> 'e Cudd.Vdd.t array -> 'a
  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