A _range algorithm that caches the elements of a _range by evaluating them only once.
Represents a ForwardRange (and a RandomAccessRange when possible) over the cached elements of a source range. Provides the range algorithm length() only if the source range does so.
Statistics about the operation of ElementCache as well as the underlying CircularBlocks that it uses for element storage.
Implements a range algorithm that caches element values turns InputRangess to RandomAccessRanges.