On Saturday, 4 June 2016 at 17:16:45 UTC, pineapple wrote:
Won't this pattern fail if items is a type implementing opApply and/or opApplyReverse?
opApply/ApplyReverse predates the detection of the input/bidir range primitives. It's specified in the language. If an aggregate implements both than the operator overloads are privilegiated.