code: @Override
      public void handleQueryResult(String key, List<Proposition> propositions, 
              Map<Proposition, Set<Proposition>> forwardDerivations, 
              Map<Proposition, Set<Proposition>> backwardDerivations,
              Map<UniqueId, Proposition> references) throws QueryResultsHandlerProcessingException {
          Set<Proposition> propositionsAsSet = new HashSet<>();
          addDerived(propositions, forwardDerivations, backwardDerivations, propositionsAsSet);
          List<Proposition> propositionsCopy = new ArrayList<>(propositionsAsSet);
          for (Comparator<Proposition> c : this.comparator) {
              Collections.sort(propositionsCopy, c);
          }
          this.visitor.setKeyId(key);
          try {
              this.visitor.visit(propositionsCopy);
          } catch (TabDelimHandlerProtempaException pe) {
              throw new QueryResultsHandlerProcessingException(pe);
          } catch (ProtempaException pe) {
              throw new AssertionError(pe);
          }
      }
docs: Writes a keys worth of data in tab delimited format optionally
  sorted.
  
  @param key a key id {@link String}.
  @param propositions a {@link List<Proposition>}.
  @throws QueryResultsHandlerProcessingException if an error
  occurred writing to the specified file, output stream or writer.