Thanks. But the question is not really about one single adaptor that indirected is. That was just an example (although your answer was useful, thank you)
How about in general? Say,
template<class Range>
xxx getPuffedRange( Range& r ) { return r | indirected | filtered(puff) | etc; }