I was disappointed to discover that I can't write

range | filtered( some_predicate ) | sliced( n, m ) | .....

because sliced requires a random access range, and filtered produces a forward range!

Piffle.

It seems such a useful and obvious use-case. Is this restriction really necessary?

Thx, Rob.