[/==============================================================================
    Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger

    Use, modification and distribution is subject to 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)
===============================================================================/]
[section Organization]

The library is organized into layers of modules, with each module addressing a particular
area of responsibility. A module may not depend on modules in higher layers.

The library is organized in three layers:

[heading Layers]

[:[$images/fusion_org.png]]

The entire library is found in the `"boost/fusion"` directory. Modules are
organized in directories. Each module has its own header file placed in
the same directory with the actual module-directory. For example, there
exists `"boost/fusion/support.hpp"` in the same directory as
"boost/fusion/support". Everything, except those found inside "detail"
directories, is public.

There is also a `"boost/fusion/include/"` directory that contains all the
headers to all the components and modules. If you are unsure where to
find a specific component or module, or don't want to fuss with
hierarchy and nesting, use this.

The library is header-only. There is no need to build object files to
link against.

[heading Directory]

* tuple
* algorithm
    * iteration
    * query
    * transformation
* adapted
    * array
    * mpl
    * boost::tuple
    * std_pair
    * struct
    * variant
* view
    * filter_view
    * iterator_range
    * joint_view
    * reverse_view
    * single_view
    * transform_view
    * zip_view
* container
    * deque
    * list
    * map
    * set
    * vector
    * generation
* mpl
* functional
* sequence
    * comparison
    * intrinsic
    * io
* iterator
* support

[heading Example]

If, for example, you want to use `list`, depending on the granularity that
you desire, you may do so by including one of

    #include <boost/fusion/container.hpp>
    #include <boost/fusion/include/container.hpp>
    #include <boost/fusion/container/list.hpp>
    #include <boost/fusion/include/list.hpp>

The first includes all containers The second includes only `list`
[footnote Modules may contain smaller components. Header file
information for each component will be provided as part of the
component's documentation.].

[endsect]
