public static boolean SLOT_REPRESENTS_TAGP(Slot slot, XmlObject tag, boolean useTypeP, boolean useParametricTypeP) {
    { String name = tag.name;

      if (Stella.stringEqlP(name, slot.slotName.symbolName)) {
        return (true);
      }
      if (useTypeP ||
          useParametricTypeP) {
        { Surrogate slotType = null;
          StandardObject slotParametricType = null;

          { Object [] caller_MV_returnarray = new Object[1];

            slotType = XmlObjects.SLOT_BASE_AND_PARAMETER_TYPE(slot, caller_MV_returnarray);
            slotParametricType = ((StandardObject)(caller_MV_returnarray[0]));
          }
          if (useTypeP &&
              Stella.stringEqlP(name, slotType.symbolName)) {
            return (true);
          }
          if (useParametricTypeP &&
              Stella.stringEqlP(name, ((GeneralizedSymbol)(slotParametricType)).symbolName)) {
            return (true);
          }
        }
      }
      return (false);
    }
  }