+type 'a bag = int (* max ID *)
+ * (('a unit_clause * bool * int) M.t)
+
+(* also gives a fresh ID to the clause *)
+ val add_to_bag :
+ 'a unit_clause -> 'a bag ->
+ 'a bag * 'a unit_clause
+
+ val replace_in_bag :
+ 'a unit_clause * bool * int -> 'a bag ->
+ 'a bag
+
+ val get_from_bag :
+ int -> 'a bag -> 'a unit_clause * bool * int
+
+ val empty_bag : 'a bag