On Sun, 27 Nov 2011 12:54:48 +0100, Timon Gehr wrote: > That is an overly restrictive interface because the element type is > fixed. > > The interface should be usable like this: > void foo(R : Range)(R input) { /* ... * / } void foo(T, R : Range!T)(R input) {} // ?