* @return NamedDescription
   */
  public static NamedDescription callDefrelation(Cons arguments) {
    { Cons definition = Cons.cons(Logic.SYM_LOGIC_DEFRELATION, arguments.concatenate(Stella.NIL, Stella.NIL));

      { Object old$Termsourcebeingparsed$000 = Logic.$TERMSOURCEBEINGPARSED$.get();
        Object old$Descriptionunderconstruction$000 = Logic.$DESCRIPTIONUNDERCONSTRUCTION$.get();

        try {
          Native.setSpecial(Logic.$TERMSOURCEBEINGPARSED$, Native.stringify(definition));
          Native.setSpecial(Logic.$DESCRIPTIONUNDERCONSTRUCTION$, null);
          definition.rest = Logic.normalizeDefrelationArguments(arguments);
          Logic.internLogicObjectSurrogate(((Symbol)(definition.rest.value)));
          return (Logic.helpDefineRelationFromParseTree(definition, ((String)(Logic.$TERMSOURCEBEINGPARSED$.get()))));

        } finally {
          Logic.$DESCRIPTIONUNDERCONSTRUCTION$.set(old$Descriptionunderconstruction$000);
          Logic.$TERMSOURCEBEINGPARSED$.set(old$Termsourcebeingparsed$000);
        }
      }
    }
  }