Function std.range.chain
Spans multiple ranges in sequence. The function chain takes any
number of ranges and returns a Chain!(R1, R2,...) object. The
ranges may be different, but they must have the same element type. The
result is a range that offers the front, popFront, and empty primitives. If all input ranges offer random access and length, Chain offers them as well.
						
				auto auto chain(Ranges...)
				(
				
				  Ranges rs
				
				)
				
				if (Ranges
				If only one range is offered to Chain or chain, the Chain type exits the picture by aliasing itself directly to that
range's type.
Parameters
| Name | Description | 
|---|---|
| rs | the input ranges to chain together | 
Returns
An input range at minimum. If all of the ranges in rs provide
    a range primitive, the returned range will also provide that range
    primitive.
See Also
only to chain values to a range
Example
import stdExample
Range primitives are carried over to the returned range if all of the ranges provide them
import stdExample
Due to safe type promotion in D, chaining together different
character ranges results in a uint range.
Use byChar, byWchar, and byDchar on the ranges to get the type you need.
import stdAuthors
Andrei Alexandrescu, David Simcha, Jonathan M Davis, and Jack Stouffer. Credit for some of the ideas in building this module goes to Leonardo Maffi.