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