Andrei Alexandrescu wrote: > Yes. The way it should be is not with sink, but with the standard output > iterator method put(). > > void streamOut(T, R)(T object, R range) > { > foreach(x; a) range.put(x); > range.put(b); > range.put(c); > } // object.d class Object { void streamOut(R)(R range); } No?