These categorizations are applicable
to types that meet the corresponding requirements,
to objects instantiated from such types,
and to templates producing such types when instantiated.
These entities are specified in such a way
as to permit the binding
of any uniform random bit generator object e
as the argument
to any random number distribution object d,
thus producing a zero-argument function object
such as given by
bind(d,e).
the operator lshiftw denotes a bitwise left shift
with zero-valued bits appearing in the low bits of the result,
and whose result is always taken modulo 2w.