public static Cons yieldRelationParametersTree(NamedDescription self, boolean dropfunctionparameterP, boolean typedP) {
    { Cons parameterlist = Stella.NIL;
      Stella_Object parameter = null;

      { Symbol pname = null;
        Cons iter000 = self.ioVariableNames.theConsList;
        Surrogate ptype = null;
        Cons iter001 = self.ioVariableTypes.theConsList;

        for (;(!(iter000 == Stella.NIL)) &&
                  (!(iter001 == Stella.NIL)); iter000 = iter000.rest, iter001 = iter001.rest) {
          pname = ((Symbol)(iter000.value));
          ptype = ((Surrogate)(iter001.value));
          parameter = pname;
          if (typedP &&
              (!(ptype == Logic.SGT_STELLA_THING))) {
            parameter = Cons.cons(parameter, Cons.cons(Symbol.internSymbolInModule(ptype.symbolName, ((Module)(ptype.homeContext)), true), Stella.NIL));
          }
          parameterlist = Cons.cons(parameter, parameterlist);
        }
      }
      if (dropfunctionparameterP &&
          NamedDescription.functionDescriptionP(self)) {
        parameterlist = parameterlist.rest;
      }
      return (parameterlist.reverse());
    }
  }