if (this == o) return true; if (o instanceof SimpleName && ((SimpleName)o).name == name) return true;
  public boolean equals(Object o) {    if (o instanceof CompositeName) {      return compareTo(o) == 0;    }    return false;  }