public static void writeExplanationIcon(QueryIterator query, Cons bindings, org.powerloom.PrintableStringWriter stream) {
    { Module module = query.queryContext.baseModule;
      Description description = query.baseControlFrame.patternRecord.description;
      Vector existsvars = description.internalVariables;
      Stella_Object proposition = null;
      KeyValueMap mapping = KeyValueMap.newKeyValueMap();

      { Stella_Object binding = null;
        Cons iter000 = bindings;
        PatternVariable var = null;
        Vector vector000 = description.ioVariables;
        int index000 = 0;
        int length000 = vector000.length();

        for (;(!(iter000 == Stella.NIL)) &&
                  (index000 < length000); iter000 = iter000.rest, index000 = index000 + 1) {
          binding = iter000.value;
          var = ((PatternVariable)((vector000.theArray)[index000]));
          mapping.insertAt(var, binding);
        }
      }
      { PatternVariable var = null;
        Vector vector001 = existsvars;
        int index001 = 0;
        int length001 = vector001.length();

        for (;index001 < length001; index001 = index001 + 1) {
          var = ((PatternVariable)((vector001.theArray)[index001]));
          mapping.insertAt(var, var);
        }
      }
      proposition = Proposition.generateProposition(Proposition.copyProposition(description.proposition, mapping));
      if (existsvars.nonEmptyP()) {
        proposition = Cons.list$(Cons.cons(OntosaurusUtil.SYM_STELLA_EXISTS, Cons.cons(Logic.generateVariables(existsvars, false), Cons.cons(Cons.cons(proposition, Stella.NIL), Stella.NIL))));
      }
      OntosaurusUtil.htmlWriteHrefInDetail(stream, null, "explain", "query", module.name(), Native.stringify(proposition), "<IMG SRC='/ploom/icons/button-question.gif' ALT='Explain result' BORDER='0' WIDTH='14' HEIGHT='15' /></A>", true);
    }
  }