sig
  val solve : string -> bool * string * (string * string) list
  val solve_file : bool -> bool -> string -> string -> unit
end