docs: def print(self, output_file=sys.stdout, log=False):
          """Print the solution stream"""
  
          for soln in iter(self):
              print(soln, file=output_file)
              print(SOLN_SEP, file=output_file)
  
          if self.status == 0:
              print(SEARCH_COMPLETE, file=output_file)
  
          if (self.status == 1 and self._n_solns == 0) or self.status >= 2:
              print({
                  Status.INCOMPLETE : ERROR,
                  Status.UNKNOWN: UNKNOWN,
                  Status.UNSATISFIABLE: UNSATISFIABLE,
                  Status.UNBOUNDED: UNBOUNDED,
                  Status.UNSATorUNBOUNDED: UNSATorUNBOUNDED,
                  Status.ERROR: ERROR
              }[self.status], file=output_file)
  
              if self.stderr:
                  print(self.stderr.strip(), file=sys.stderr)
  
          elif log:
              print(str(self.log), file=output_file)