sig
type bnode = BIte of int * int * bool * int | BTrue
type inode = IIte of int * int * int | ICst of int
type 'a db = {
mutable cond : SetteI.t;
mutable ileaf : SetteI.t;
bhash : (Bdd.t, int) Hashtbl.t;
ihash : (Idd.t, int) Hashtbl.t;
mutable blastid : int;
mutable ilastid : int;
mutable bdef : Bddoutput.bnode MappeI.t;
mutable idef : (Bddoutput.inode * 'a) MappeI.t;
mutable ileafattr : int -> 'a;
mutable inodeattr : int -> 'a -> 'a -> 'a;
}
val make_db : (int -> 'a) -> (int -> 'a -> 'a -> 'a) -> 'a Bddoutput.db
val clear_db : 'a Bddoutput.db -> unit
val signid_of_bdd : 'a Bddoutput.db -> Bdd.t -> bool * int
val idattr_of_idd : 'a Bddoutput.db -> Idd.t -> int * 'a
val iter_cond : 'a Bddoutput.db -> (int -> unit) -> unit
val iter_cond_ordered :
'a Bddoutput.db -> Manager.t -> (int -> unit) -> unit
val iter_bdef_ordered :
'a Bddoutput.db -> (int -> Bddoutput.bnode -> unit) -> unit
val iter_idef_ordered :
'a Bddoutput.db -> (int -> Bddoutput.inode * 'a -> unit) -> unit
end