code: @Override
      public int compareTo(Identifier that) {
          if (mValue.length != that.mValue.length) {
              return mValue.length < that.mValue.length ? -1 : 1;
          }
          for (int i = 0; i < mValue.length; i++) {
              if (mValue[i] != that.mValue[i]) {
                  return mValue[i] < that.mValue[i] ? -1 : 1;
              }
          }
          return 0;
      }
docs: Compares two identifiers.
  When the Identifiers don't have the same length, the Identifier having the shortest
  array is considered smaller than the other.
  
  @param  that the other identifier
  @return      0 if both identifiers are equal.  Otherwise returns -1 or 1 depending
  on which is bigger than the other.
  @see         Comparable#compareTo