public static void pprintNamedDescriptionsAsRule(NamedDescription head, NamedDescription tail, String operatorprefix, org.powerloom.PrintableStringWriter stream) {
    { int operatorindent = operatorprefix.length() + 2;
      Cons variables = Stella.NIL;

      { Symbol v = null;
        Cons iter000 = Logic.SYSTEM_DEFINED_ARGUMENT_NAMES;
        IntegerIntervalIterator i = Stella.interval(1, head.arity());
        Cons collect000 = null;

        for (;(!(iter000 == Stella.NIL)) &&
                  i.nextP(); iter000 = iter000.rest) {
          v = ((Symbol)(iter000.value));
          if (collect000 == null) {
            {
              collect000 = Cons.cons(v, Stella.NIL);
              if (variables == Stella.NIL) {
                variables = collect000;
              }
              else {
                Cons.addConsToEndOfConsList(variables, collect000);
              }
            }
          }
          else {
            {
              collect000.rest = Cons.cons(v, Stella.NIL);
              collect000 = collect000.rest;
            }
          }
        }
      }
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() + 3);
      stream.print("(" + OntosaurusUtil.operatorToString(OntosaurusUtil.SGT_PL_KERNEL_KB_FORALL) + " (");
      OntosaurusUtil.pprintObject(variables.value, stream);
      { Stella_Object v = null;
        Cons iter001 = variables.rest;

        for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
          v = iter001.value;
          stream.print(" ");
          OntosaurusUtil.pprintObject(v, stream);
        }
      }
      stream.print(")");
      OntosaurusUtil.pprintNewline(stream);
      stream.print("(" + operatorprefix + " (");
      OntosaurusUtil.pprintObject(head, stream);
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() + operatorindent);
      { Stella_Object v = null;
        Cons iter002 = variables;

        for (;!(iter002 == Stella.NIL); iter002 = iter002.rest) {
          v = iter002.value;
          stream.print(" ");
          OntosaurusUtil.pprintObject(v, stream);
        }
      }
      stream.print(")");
      OntosaurusUtil.pprintNewline(stream);
      stream.print("(");
      OntosaurusUtil.pprintObject(tail, stream);
      { Stella_Object v = null;
        Cons iter003 = variables;

        for (;!(iter003 == Stella.NIL); iter003 = iter003.rest) {
          v = iter003.value;
          stream.print(" ");
          OntosaurusUtil.pprintObject(v, stream);
        }
      }
      stream.print("))");
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() - operatorindent);
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() - 3);
    }
  }