When the proof class finds two or more rows that are the same, it stores the details in a private variable, where. This can be retrieved by the function failed. The variable is defined as:
     typedef list<linedetail> proof::failinfo;
     failinfo where;
   linedetail is a struct defined as:
     struct linedetail {
      row _row;
      list<int> _lines;
     };
   When a row is repeated more than once, a new linedetail item is added to where. In the linedetail data is stored a pointer, _row, to the first of the matching rows, and the row numbers are put into _lines. If the first row given to the class matches the 11th row, then 0 and 10 will be placed into _lines. If there are three or more rows that all match, then the relevant numbers will be placed into the _lines list without repeating any.