type problem\r
\r
+val label_of_problem : problem -> string\r
+\r
type result = [\r
| `Separable of (int * Num.nf) list\r
| `Unseparable of string\r
]\r
\r
-val problem_of: div:(string option) -> conv:string list -> nums:string list -> problem\r
+val problem_of: (string (* problem label *)\r
+* Num.i_var option (* div *)\r
+* Num.i_n_var list (* conv *)\r
+* Num.i_n_var list (* ps *)\r
+* string list (* names of free variables *)) -> problem\r
val solve: problem -> result\r