Is there a reason the parameter name for ForwardingMap.remove(Object object) does not match the interface: Map.remove(Object key)?  In short: 'object' != 'key'
If yes, please kindly explain the history.
Else, can we rename to 'key' to match the interface?
TreeRangeSet<C> result = create();
    result.addAll(ranges);
    return result;
  }
  private TreeRangeSet(NavigableMap<Cut<C>, Range<C>> rangesByLowerCut) {
    this.rangesByLowerBound = rangesByLowerCut;
  }
  @NullableDecl private transient Set<Range<C>> asRanges;
  @NullableDecl private transient Set<Range<C>> asDescendingSetOfRanges;
  @Override
  public Set<Range<C>> asRanges() {
    Set<Range<C>> result = asRanges;
    return (result == null) ? asRanges = new AsRanges(rangesByLowerBound.values()) : result;
  }
  @Override
  public Set<Range<C>> asDescendingSetOfRanges() {
    Set<Range<C>> result = asDescendingSetOfRanges;
    return (result == null)
        ? asDescendingSetOfRanges = new AsRanges(rangesByLowerBound.descendingMap().values())
        : result;
  }
  final class AsRanges extends ForwardingCollection<Range<C>> implements Set<Range<C>> {
    final Collection<Range<C>> delegate;
    AsRanges(Collection<Range<C>> delegate) {
      this.delegate = delegate;
    }
    @Override
    protected Collection<Range<C>> delegate() {
      return delegate;
    }