

.. Copyright Aleksey Gurtovoy, David Abrahams 2007.
.. Distributed under the Boost
.. Software License, Version 1.0. (See accompanying
.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

All iterators in MPL are classified into three iterator concepts, or 
`categories`, named according to the type of traversal provided. The
categories are: |Forward Iterator|, |Bidirectional Iterator|, and 
|Random Access Iterator|. The concepts are hierarchical: 
|Random Access Iterator| is a refinement of |Bidirectional Iterator|,
which, in its turn, is a refinement of |Forward Iterator|.

Because of the inherently immutable nature of the value access, MPL 
iterators escape the problems of the traversal-only categorization 
discussed at length in [n1550]_.


.. [n1550] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1550.htm
