sig
type t = Zdd.t
val create : ?primary:int -> bool array array -> t
val create_sparse : ?primary:int -> columns:int -> int list array -> t
val find_solution : t -> solution
val iter_solution : (solution -> unit) -> t -> unit
val count_solutions : t -> int
module type ARITH =
sig type t val zero : t val one : t val add : t -> t -> t end
module Count :
functor (A : ARITH) -> sig val count_solutions : t -> A.t end
end