@Override
  public boolean equals(Object obj) {
    if (this == obj) {
      return true;
    }
    if (!(obj instanceof ImmutableText)) {
      return false;
    }
    return ((ImmutableText)obj).length() == length() && CharArrayUtil.regionMatches(this, 0, (ImmutableText)obj);
  }
@Override
  public boolean equals(Object obj)