sig
  type t
  val create : ?primary:int -> bool array array -> Dlx.t
  val create_sparse : ?primary:int -> columns:int -> int list array -> Dlx.t
  type solution
  val list_of_solution : Dlx.solution -> int list
  val get_first_solution : Dlx.t -> Dlx.solution
  val count_solutions : Dlx.t -> int
  val iter_solution : (Dlx.solution -> unit) -> Dlx.t -> unit
  val print_solution : Format.formatter -> Dlx.solution -> unit
end