sandford/phobos — comment on commit 8b845d2a50bc20993afed7306f3d84921e4ac54b
File: std/range.d line 283
By sandford:

I am misunderstanding something. put already handles arrays, input ranges, etc. As I understand it, the policies I added are exposing asArray and the desired ElementEncodingType. These template parameters are about exposing an important internal static if conditional to user override. Since output ranges have a preferred encoding type but don't have an automatic way of detecting it, manual specification is required in some cases. The asArray parameter, on the other hand, is about skipping the user defined put methods; it could probably use a better name, but it is invaluable to implementers of output ranges.