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