public static PLVariableList createVariablesList(LogicObject relation) {
    { List variables = List.newList();
      PLVariableList plvariablelist = PLVariableList.new_PLVariableList();

      if (Surrogate.subtypeOfP(Stella_Object.safePrimaryType(relation), GuiServer.SGT_LOGIC_NAMED_DESCRIPTION)) {
        { NamedDescription relation000 = ((NamedDescription)(relation));

          { Symbol variablename = null;
            Cons iter000 = relation000.ioVariableNames.theConsList;
            Surrogate variabletype = null;
            Cons iter001 = relation000.ioVariableTypes.theConsList;
            Cons collect000 = null;

            for (;(!(iter000 == Stella.NIL)) &&
                      (!(iter001 == Stella.NIL)); iter000 = iter000.rest, iter001 = iter001.rest) {
              variablename = ((Symbol)(iter000.value));
              variabletype = ((Surrogate)(iter001.value));
              if (collect000 == null) {
                {
                  collect000 = Cons.cons(GuiServer.makePlVariable(variablename.symbolName, variabletype), Stella.NIL);
                  if (variables.theConsList == Stella.NIL) {
                    variables.theConsList = collect000;
                  }
                  else {
                    Cons.addConsToEndOfConsList(variables.theConsList, collect000);
                  }
                }
              }
              else {
                {
                  collect000.rest = Cons.cons(GuiServer.makePlVariable(variablename.symbolName, variabletype), Stella.NIL);
                  collect000 = collect000.rest;
                }
              }
            }
          }
        }
      }
      else {
      }
      plvariablelist.PLVariable = variables;
      return (plvariablelist);
    }
  }