latin_solver_diff_set takes a boolean input parameter to indicate
whether the 'Extreme'-level variant of set elimination is permitted.
But it's commented in the header file as having a boolean _output_
parameter which it sets if it _ended up_ using that variant. Probably
the latter was how it worked in an early draft, and I changed my mind
later without changing the comment.
/* Looped positional elimination */
int latin_solver_diff_simple(struct latin_solver *solver);
-/* Looped set elimination; *extreme is set if it used
- * the more difficult single-number elimination. */
+/* Looped set elimination; extreme permits use of the more difficult
+ * single-number elimination. */
int latin_solver_diff_set(struct latin_solver *solver,
struct latin_solver_scratch *scratch,
int extreme);