public static void pprintDefinition(Cons self, boolean hasvariablesP, org.powerloom.PrintableStringWriter stream) {
    if (((java.lang.reflect.Method)(OntosaurusUtil.$PPRINT_BEFORE_DEFINITION_FUNCTION$.get())) != null) {
      edu.isi.stella.javalib.Native.funcall(((java.lang.reflect.Method)(OntosaurusUtil.$PPRINT_BEFORE_DEFINITION_FUNCTION$.get())), null, new java.lang.Object [] {self, stream});
    }
    stream.print("(");
    OntosaurusUtil.pprintObject(self.value, stream);
    stream.print(" ");
    if (Stella_Object.isaP(self.rest.value, OntosaurusUtil.SGT_STELLA_SYMBOL)) {
      OntosaurusUtil.pprintAtomicObject(self.rest.value, stream);
    }
    else {
      OntosaurusUtil.pprintObject(self.rest.value, stream);
    }
    if (!hasvariablesP) {
      self = self.rest.rest;
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() + 3);
    }
    else if (((Cons)(self.rest.rest.value)).length() > 5) {
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() + 10);
      OntosaurusUtil.pprintNewline(stream);
      OntosaurusUtil.pprintObject(self.rest.rest.value, stream);
      self = self.rest.rest.rest;
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() - 7);
    }
    else {
      stream.print(" ");
      OntosaurusUtil.pprintObject(self.rest.rest.value, stream);
      self = self.rest.rest.rest;
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() + 3);
    }
    while (!(self == Stella.NIL)) {
      OntosaurusUtil.pprintNewline(stream);
      OntosaurusUtil.pprintObject(self.value, stream);
      stream.print(" ");
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() + 8);
      OntosaurusUtil.pprintObject(self.rest.value, stream);
      Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() - 8);
      self = self.rest.rest;
    }
    Native.setIntSpecial(OntosaurusUtil.$PPRINT_INDENT$, ((Integer)(OntosaurusUtil.$PPRINT_INDENT$.get())).intValue() - 3);
    stream.print(")");
    if (((java.lang.reflect.Method)(OntosaurusUtil.$PPRINT_AFTER_DEFINITION_FUNCTION$.get())) != null) {
      edu.isi.stella.javalib.Native.funcall(((java.lang.reflect.Method)(OntosaurusUtil.$PPRINT_AFTER_DEFINITION_FUNCTION$.get())), null, new java.lang.Object [] {self, stream});
    }
  }