@Override
    public final boolean equals(Object o) {
      if (this == o) return true;
      if (!(o instanceof MatchedValue value1)) return false;
      return Objects.equals(value, value1.value) &&
             Objects.equals(pattern, value1.pattern);
    }
@Override
    public final boolean equals(Object o)