Squashed 'third_party/boostorg/preprocessor/' content from commit 56090c5

Change-Id: I8c0a13225778c3751a35945439d5304bd9e639ef
git-subtree-dir: third_party/boostorg/preprocessor
git-subtree-split: 56090c56b5c78418b6dbe8c3c2ba576395152f83
diff --git a/doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html b/doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html
new file mode 100644
index 0000000..73be306
--- /dev/null
+++ b/doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html
@@ -0,0 +1,2494 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html
+
+  lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
+    <meta name="generator" content="Docutils 0.3.8: http://docutils.sourceforge.net/" />
+    <title>Appendix A - An Introduction to Preprocessor Metaprogramming</title>
+    <meta name="copyright" content="From &quot;C++ Template Metaprogramming,&quot; by David Abrahams and Aleksey Gurtovoy.  Copyright (c) 2005 by Pearson Education, Inc. Reprinted with permission." />
+    <style type="text/css">
+
+/*
+:Author: David Goodger
+:Contact: goodger@users.sourceforge.net
+:date: $Date: 2004/06/23 13:31:26 $
+:version: $Revision: 1.37 $
+:copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+*/
+
+.first {
+  margin-top: 0 }
+
+.last {
+  margin-bottom: 0 }
+
+a.toc-backref {
+  text-decoration: none ;
+  color: black }
+
+blockquote.epigraph {
+  margin: 2em 5em ; }
+
+dd {
+  margin-bottom: 0.5em }
+
+/* Uncomment (& remove this text!) to get bold-faced definition list terms
+dt {
+  font-weight: bold }
+*/
+
+div.abstract {
+  margin: 2em 5em }
+
+div.abstract p.topic-title {
+  font-weight: bold ;
+  text-align: center }
+
+div.attention, div.caution, div.danger, div.error, div.hint,
+div.important, div.note, div.tip, div.warning, div.admonition {
+  margin: 2em ;
+  border: medium outset ;
+  padding: 1em }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title {
+  color: red ;
+  font-weight: bold ;
+  font-family: sans-serif }
+
+div.hint p.admonition-title, div.important p.admonition-title,
+div.note p.admonition-title, div.tip p.admonition-title,
+div.admonition p.admonition-title {
+  font-weight: bold ;
+  font-family: sans-serif }
+
+div.dedication {
+  margin: 2em 5em ;
+  text-align: center ;
+  font-style: italic }
+
+div.dedication p.topic-title {
+  font-weight: bold ;
+  font-style: normal }
+
+div.figure {
+  margin-left: 2em }
+
+div.footer, div.header {
+  font-size: smaller }
+
+div.sidebar {
+  margin-left: 1em ;
+  border: medium outset ;
+  padding: 0em 1em ;
+  background-color: #ffffee ;
+  width: 40% ;
+  float: right ;
+  clear: right }
+
+div.sidebar p.rubric {
+  font-family: sans-serif ;
+  font-size: medium }
+
+div.system-messages {
+  margin: 5em }
+
+div.system-messages h1 {
+  color: red }
+
+div.system-message {
+  border: medium outset ;
+  padding: 1em }
+
+div.system-message p.system-message-title {
+  color: red ;
+  font-weight: bold }
+
+div.topic {
+  margin: 2em }
+
+h1.title {
+  text-align: center }
+
+h2.subtitle {
+  text-align: center }
+
+hr {
+  width: 75% }
+
+ol.simple, ul.simple {
+  margin-bottom: 1em }
+
+ol.arabic {
+  list-style: decimal }
+
+ol.loweralpha {
+  list-style: lower-alpha }
+
+ol.upperalpha {
+  list-style: upper-alpha }
+
+ol.lowerroman {
+  list-style: lower-roman }
+
+ol.upperroman {
+  list-style: upper-roman }
+
+p.attribution {
+  text-align: right ;
+  margin-left: 50% }
+
+p.caption {
+  font-style: italic }
+
+p.credits {
+  font-style: italic ;
+  font-size: smaller }
+
+p.label {
+  white-space: nowrap }
+
+p.rubric {
+  font-weight: bold ;
+  font-size: larger ;
+  color: maroon ;
+  text-align: center }
+
+p.sidebar-title {
+  font-family: sans-serif ;
+  font-weight: bold ;
+  font-size: larger }
+
+p.sidebar-subtitle {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+p.topic-title {
+  font-weight: bold }
+
+pre.address {
+  margin-bottom: 0 ;
+  margin-top: 0 ;
+  font-family: serif ;
+  font-size: 100% }
+
+pre.line-block {
+  font-family: serif ;
+  font-size: 100% }
+
+pre.literal-block, pre.doctest-block {
+  margin-left: 2em ;
+  margin-right: 2em ;
+  background-color: #eeeeee }
+
+span.classifier {
+  font-family: sans-serif ;
+  font-style: oblique }
+
+span.classifier-delimiter {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+span.interpreted {
+  font-family: sans-serif }
+
+span.option {
+  white-space: nowrap }
+
+span.option-argument {
+  font-style: italic }
+
+span.pre {
+  white-space: pre }
+
+span.problematic {
+  color: red }
+
+table {
+  margin-top: 0.5em ;
+  margin-bottom: 0.5em }
+
+table.citation {
+  border-left: solid thin gray ;
+  padding-left: 0.5ex }
+
+table.docinfo {
+  margin: 2em 4em }
+
+table.footnote {
+  border-left: solid thin black ;
+  padding-left: 0.5ex }
+
+dt {
+  font-weight: bold }
+
+td, th {
+  padding-left: 0.5em ;
+  padding-right: 0.5em ;
+  vertical-align: top }
+
+th.docinfo-name, th.field-name {
+  font-weight: bold ;
+  text-align: left ;
+  white-space: nowrap }
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+  font-size: 100% }
+
+tt {
+  background-color: #eeeeee }
+
+ul.auto-toc {
+  list-style-type: none }
+
+</style> </head>
+  <body><br />
+    <div class="document" id="preprocessor-title">
+      <h1 class="title">Appendix A - An Introduction to Preprocessor
+        Metaprogramming</h1>
+      <table class="docinfo" frame="void" rules="none">
+        <colgroup><col class="docinfo-name" /> <col class="docinfo-content" />
+        </colgroup>
+        <tbody valign="top">
+          <tr>
+            <th class="docinfo-name">Copyright:</th>
+            <td>From "C++ Template Metaprogramming," by David Abrahams and
+              Aleksey Gurtovoy. Copyright (c) 2005 by Pearson Education, Inc.
+              Reprinted with permission.</td>
+          </tr>
+          <tr class="field">
+            <th class="docinfo-name">ISBN:</th>
+            <td class="field-body">0321227255</td>
+          </tr>
+        </tbody>
+      </table>
+      <div class="section" id="motivation">
+        <h1><a name="motivation">A.1   Motivation</a></h1>
+        <p>Even with the full power of template metaprogramming and the <a class="reference"
+
+            href="http://www.boost.org/libs/mpl">Boost Metaprogramming library</a>
+          at our disposal, some C++ coding jobs still require a great deal of
+          boilerplate code repetition. We saw one example in Chapter 5, when we
+          implemented <tt class="docutils literal"><span class="pre">tiny_size</span></tt>:</p>
+        <pre class="literal-block">template &lt;class T0, class T1, class T2&gt;
+struct tiny_size
+  : mpl::int_&lt;3&gt; {};
+</pre>
+        <!-- : rst-mode hack -->
+        <!-- @prefix.append('struct none {};') -->
+        <p>Aside from the repeated pattern in the parameter list of the primary
+          template above, there are three partial specializations below, which
+          also follow a predictable pattern:</p>
+        <pre class="literal-block">template &lt;class T0, class T1&gt;
+struct tiny_size&lt;T0,T1,none&gt;
+  : mpl::int_&lt;2&gt; {};
+
+template &lt;class T0&gt;
+struct tiny_size&lt;T0,none,none&gt;
+  : mpl::int_&lt;1&gt; {};
+
+template &lt;&gt;
+struct tiny_size&lt;none,none,none&gt;
+  : mpl::int_&lt;0&gt; {};
+</pre>
+        <!-- : rst-mode hack -->
+        <!-- @compile('all') -->
+        <p>In this case there is only a small amount of code with such a
+          "mechanical" flavor, but had we been implementing <tt class="docutils literal"><span
+
+              class="pre">large</span></tt> instead of <tt class="docutils literal"><span
+
+              class="pre">tiny</span></tt>, there might easily have been a great
+          deal more. When the number of instances of a pattern grows beyond two
+          or three, writing them by hand tends to become error-prone. Perhaps
+          more importantly, the code gets hard to read, because the important
+          abstraction in the code is really the pattern, not the individual
+          instances.</p>
+        <div class="section" id="code-generation">
+          <h2><a name="code-generation">A.1.1   Code Generation</a></h2>
+          <p>Rather than being written out by hand, mechanical-looking code
+            should really be generated mechanically. Having written a program to
+            spit out instances of the code pattern, a library author has two
+            choices: She can either ship pre-generated source code files, or she
+            can ship the generator itself. Either approach has drawbacks. If
+            clients only get the generated source, they are stuck with whatever
+            the library author generated—and experience shows that if they are
+            happy with three instances of a pattern today, someone will need
+            four tomorrow. If clients get the generator program, on the other
+            hand, they also need the resources to execute it (e.g.,
+            interpreters), and they must integrate the generator into their
+            build processes...</p>
+        </div>
+        <div class="section" id="enter-the-preprocessor">
+          <h2><a name="enter-the-preprocessor">A.1.2   Enter the Preprocessor</a></h2>
+          <p>...unless the generator is a preprocessor metaprogram. Though not
+            designed for that purpose, the C and C++ preprocessors can be made
+            to execute sophisticated programs during the preprocessing phase of
+            compilation. Users can control the code generation process with
+            preprocessor <tt class="docutils literal"><span class="pre">#define</span></tt>s
+            in code or <tt class="docutils literal"><span class="pre">-D</span></tt>
+            options on the compiler's command line, making build integration
+            trivial. For example, we might parameterize the primary <tt class="docutils literal"><span
+
+                class="pre">tiny_size</span></tt> template above as follows:</p>
+          <pre class="literal-block">#include &lt;<strong>boost/preprocessor/repetition/enum_params</strong>.hpp&gt;
+
+#ifndef TINY_MAX_SIZE
+#  define TINY_MAX_SIZE 3  // default maximum size is 3
+#endif
+
+template &lt;<strong>BOOST_PP_ENUM_PARAMS(TINY_MAX_SIZE, class T)</strong>&gt;
+struct tiny_size
+  : mpl::int_&lt;TINY_MAX_SIZE&gt;
+{};
+</pre>
+          <!-- : rst-mode hack -->
+          <!-- @compile(pop = None) -->
+          <p>To test the metaprogram, run your compiler in its "preprocessing"
+            mode (usually the <tt class="docutils literal"><span class="pre">-E</span></tt>
+            option), with the Boost root directory in your <tt class="docutils literal"><span
+
+                class="pre">#include</span></tt> path. For instance:<a class="footnote-reference"
+
+              href="#minusp" id="id2" name="id2">[1]</a></p>
+          <pre class="literal-block">g++ -P -E -Ipath/to/boost_1_32_0 -I. test.cpp
+</pre>
+          <!-- @ignore() -->
+          <table class="docutils footnote" frame="void" id="minusp" rules="none">
+            <colgroup><col class="label" /><col /></colgroup>
+            <tbody valign="top">
+              <tr>
+                <td class="label"><a class="fn-backref" href="#id2" name="minusp">[1]</a></td>
+                <td>GCC's <tt class="docutils literal"><span class="pre">-P</span></tt>
+                  option inhibits the generation of source file and line number
+                  markers in preprocessed output.</td>
+              </tr>
+            </tbody>
+          </table>
+          <p>Given the appropriate metaprograms, users would be able to adjust
+            not only the number of parameters to <tt class="docutils literal"><span
+
+                class="pre">tiny_size</span></tt>, but the maximum size of the
+            entire <tt class="docutils literal"><span class="pre">tiny</span></tt>
+            implementation just by <tt class="docutils literal"><span class="pre">#define</span></tt>-ing
+            <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>.</p>
+          <p>The Boost Preprocessor library <a class="citation-reference" href="#mk04"
+
+              id="id3" name="id3">[MK04]</a> plays a role in preprocessor
+            metaprogramming similar to the one played by the MPL in template
+            metaprogramming: It supplies a framework of high-level components
+            (like <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_PARAMS</span></tt>)
+            that make otherwise-painful metaprogramming jobs approachable. In
+            this appendix we won't attempt to cover nitty-gritty details of how
+            the preprocessor works, nor principles of preprocessor
+            metaprogramming in general, nor even many details of how the
+            Preprocessor <em>library</em> works. We <em>will</em> show you
+            enough at a high level that you'll be able to use the library
+            productively and learn the rest on your own.</p>
+          <table class="docutils citation" frame="void" id="mk04" rules="none">
+            <colgroup><col class="label" /><col /></colgroup>
+            <tbody valign="top">
+              <tr>
+                <td class="label"><a class="fn-backref" href="#id3" name="mk04">[MK04]</a></td>
+                <td>Paul Mensonides and Vesa Karvonen. "The Boost Preprocessor
+                  Library." <a class="reference" href="http://www.boost.org/libs/preprocessor">http://www.boost.org/libs/preprocessor</a>.</td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+      <div class="section" id="fundamental-abstractions-of-the-preprocessor">
+        <h1><a name="fundamental-abstractions-of-the-preprocessor">A.2   Fundamental
+            Abstractions of the Preprocessor</a></h1>
+        <p>We began our discussion of template metaprogramming in Chapter 2 by
+          describing its metadata (potential template arguments) and
+          metafunctions (class templates). On the basis of those two fundamental
+          abstractions, we built up the entire picture of compile-time
+          computation covered in the rest of this book. In this section we'll
+          lay a similar foundation for the preprocessor metaprogrammer. Some of
+          what we cover here may be a review for you, but it's important to
+          identify the basic concepts going into detail.</p>
+        <div class="section" id="preprocessing-tokens">
+          <h2><a name="preprocessing-tokens">A.2.1   Preprocessing Tokens</a></h2>
+          <p>The fundamental unit of data in the preprocessor is the <strong>preprocessing
+              token</strong>. Preprocessing tokens correspond roughly to the
+            tokens you're used to working with in C++, such as identifiers,
+            operator symbols, and literals. Technically, there are some
+            differences between <em>preprocessing tokens</em> and regular <em>tokens</em>
+            (see section 2 of the C++ standard for details), but they can be
+            ignored for the purposes of this discussion. In fact, we'll be using
+            the terms interchangeably here.</p>
+        </div>
+        <div class="section" id="macros">
+          <h2><a name="macros">A.2.2   Macros</a></h2>
+          <p>Preprocessor macros come in two flavors. <strong>Object-like
+              macros</strong> can be defined this way:</p>
+          <blockquote>
+            <div class="line-block">
+              <div class="line"><tt class="docutils literal"><span class="pre">#define</span></tt>
+                <em>identifier</em> <em>replacement-list</em></div>
+            </div>
+          </blockquote>
+          <!-- @litre_translator.line_offset -= 7 -->
+          <p>where the <em>identifier</em> names the macro being defined, and <em>replacement-list</em>
+            is a sequence of zero or more tokens. Where the <em>identifier</em>
+            appears in subsequent program text, it is <strong>expanded</strong>
+            by the preprocessor into its <em>replacement-list</em>.</p>
+          <p><strong>Function-like macros</strong>, which act as the
+            "metafunctions of the preprocessing phase," are defined as follows:</p>
+          <blockquote>
+            <div class="line-block">
+              <div class="line"><tt class="docutils literal"><span class="pre">#define</span></tt>
+                <em>identifier</em>(<em>a</em><sub>1</sub>, <em>a</em><sub>2</sub>,
+                ... <em>a</em><sub>n</sub>) <em>replacement-list</em></div>
+            </div>
+          </blockquote>
+          <!-- @litre_translator.line_offset -= 7 -->
+          <p>where each <em>a</em><sub>i</sub> is an identifier naming a <strong>macro
+              parameter</strong>. When the macro name appears in subsequent
+            program text followed by a suitable argument list, it is expanded
+            into its <em>replacement-list</em>, except that each argument is
+            substituted for the corresponding parameter where it appears in the
+            <em>replacement-list</em>.<a class="footnote-reference" href="#expansion"
+
+              id="id4" name="id4">[2]</a></p>
+          <table class="docutils footnote" frame="void" id="expansion" rules="none">
+            <colgroup><col class="label" /><col /></colgroup>
+            <tbody valign="top">
+              <tr>
+                <td class="label"><a class="fn-backref" href="#id4" name="expansion">[2]</a></td>
+                <td>We have omitted many details of how macro expansion works.
+                  We encourage you to take a few minutes to study section 16.3
+                  of the C++ standard, which describes that process in
+                  straightforward terms.</td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+        <div class="section" id="macro-arguments">
+          <h2><a name="macro-arguments">A.2.3   Macro Arguments</a></h2>
+          <div class="admonition-definition admonition">
+            <p class="first admonition-title">Definition</p>
+            <p>A <strong>macro argument</strong> is a nonempty sequence of:</p>
+            <ul class="last simple">
+              <li>Preprocessing tokens other than commas or parentheses, <em>and/or</em></li>
+              <li>Preprocessing tokens surrounded by matched pairs of
+                parentheses.</li>
+            </ul>
+          </div>
+          <p>This definition has consequences for preprocessor metaprogramming
+            that must not be underestimated. Note, first of all, that the
+            following tokens have special status:</p>
+          <blockquote>
+            <pre class="literal-block">,  (  )
+</pre> </blockquote>
+          <!-- @ignore() -->
+          <p>As a result, a macro argument can never contain an unmatched
+            parenthesis, or a comma that is not surrounded by matched
+            parentheses. For example, both lines following the definition of FOO
+            below are ill-formed:</p>
+          <pre class="literal-block">#define FOO(X) X // Unary identity macro
+FOO(,)           // un-parenthesized comma or two empty arguments
+FOO())           // unmatched parenthesis or missing argument
+</pre>
+          <!-- @def pp_failure(options = ['-E'], **kw):
+    compile(        expect_error = not 'mwcc' in config.compiler      , options = options, **kw)pp_failure() -->
+          <p>Note also that the following tokens do <em>not</em> have special
+            status; the preprocessor knows nothing about matched pairs of
+            braces, brackets, or angle brackets:</p>
+          <blockquote>
+            <pre class="literal-block">{  }  [  ]  &lt;  &gt;
+</pre> </blockquote>
+          <!-- @ignore() -->
+          <p>As a result, these lines are also ill-formed:</p>
+          <pre class="literal-block">FOO(std::pair&lt;int<strong>,</strong> long&gt;)                // two arguments
+FOO({ int x = 1<strong>,</strong> y = 2; return x+y; })   // two arguments
+</pre>
+          <!-- @example.prepend('#define FOO(X) X')
+pp_failure() -->
+          <p>It <em>is</em> possible to pass either string of tokens above as
+            part of a single macro argument, provided it is parenthesized:</p>
+          <pre class="literal-block">FOO(<strong>(</strong>std::pair&lt;int,int&gt;<strong>)</strong>)                 // one argument
+FOO(<strong>(</strong>{ int x = 1, y = 2; return x+y; }<strong>)</strong>)  // one argument
+</pre>
+          <!-- @example.prepend('#define FOO(X) X')
+compile(options = ['-E']) -->
+          <p>However, because of the special status of commas, it is impossible
+            to strip parentheses from a macro argument without knowing the
+            number of comma-separated token sequences it contains.<a class="footnote-reference"
+
+              href="#c99" id="id5" name="id5">[3]</a> If you are writing a macro
+            that needs to be able to accept an argument containing a variable
+            number of commas, your users will either have to parenthesize that
+            argument <em>and</em> pass you the number of comma-separated token
+            sequences as an additional argument, or they will have to encode the
+            same information in one of the preprocessor data structures covered
+            later in this appendix.</p>
+          <table class="docutils footnote" frame="void" id="c99" rules="none">
+            <colgroup><col class="label" /><col /></colgroup>
+            <tbody valign="top">
+              <tr>
+                <td class="label"><a name="c99">[3]</a></td>
+                <td><em>(<a class="fn-backref" href="#id5">1</a>, <a class="fn-backref"
+
+                      href="#id12">2</a>)</em> The C99 preprocessor, by virtue
+                  of its variadic macros, can do that and more. The C++
+                  standardization committee is likely to adopt C99's
+                  preprocessor extensions for the next version of the C++
+                  standard.</td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+      <div class="section" id="preprocessor-library-structure">
+        <h1><a name="preprocessor-library-structure">A.3   Preprocessor Library
+            Structure</a></h1>
+        <p>Since in-depth coverage of the Boost Preprocessor library is beyond
+          the scope of this book, we'll try to give you the <em>tools</em> to
+          gain an in-depth understanding of the library here. To do that, you'll
+          need to use the electronic Preprocessor library documentation, which
+          begins with the index.html file in the <tt class="docutils literal"><span
+
+              class="pre">libs/preprocessor/</span></tt> subdirectory of your
+          Boost installation.</p>
+        <p>On the left of your browser window you'll see an index, and if you
+          follow the "Headers" link, it will reveal the structure of the <tt class="docutils literal"><span
+
+              class="pre">boost/preprocessor/</span></tt> directory. Most of the
+          library's headers are grouped into subdirectories according to related
+          functionality. The top-level directory contains only a few headers
+          that provide general-purpose macros, along with a header for each
+          subdirectory that simply <tt class="docutils literal"><span class="pre">#include</span></tt>s
+          all the headers in that subdirectory. For example, <tt class="docutils literal"><span
+
+              class="pre">boost/preprocessor/selection.hpp</span></tt> does
+          nothing more than to <tt class="docutils literal"><span class="pre">#include</span></tt>
+          the <tt class="docutils literal"><span class="pre">min.hpp</span></tt>
+          and <tt class="docutils literal"><span class="pre">max.hpp</span></tt>
+          headers that comprise the contents of <tt class="docutils literal"><span
+
+              class="pre">boost/preprocessor/selection/</span></tt>. The headers
+          whose names <em>don't</em> correspond to subdirectories generally
+          declare a macro whose name is the same as the name of the header,
+          without the extension, and with a <tt class="docutils literal"><span
+
+              class="pre">BOOST_PP_</span></tt> prefix. For example, <tt class="docutils literal"><span
+
+              class="pre">boost/preprocessor/selection/max.hpp</span></tt>
+          declares <tt class="docutils literal"><span class="pre">BOOST_PP_MAX</span></tt>.</p>
+        <p>You'll also notice that often a header will declare an additional
+          macro with a <tt class="docutils literal"><span class="pre">_D</span></tt>,
+          <tt class="docutils literal"><span class="pre">_R</span></tt>, or <tt
+
+            class="docutils literal"><span class="pre">_Z</span></tt> suffix.<a
+
+            class="footnote-reference" href="#suffix" id="id6" name="id6">[4]</a>
+          For instance, <tt class="docutils literal"><span class="pre">boost/preprocessor/selection/max.hpp</span></tt>
+          also declares <tt class="docutils literal"><span class="pre">BOOST_PP_MAX_D</span></tt>.
+          For the purposes of this appendix, you should ignore those macros.
+          Eventually you will want to understand how they can be used to
+          optimize preprocessing speed; consult the Topics section of the
+          library documentation under the subheading "reentrancy" for that
+          information.</p>
+        <table class="docutils footnote" frame="void" id="suffix" rules="none">
+          <colgroup><col class="label" /><col /></colgroup>
+          <tbody valign="top">
+            <tr>
+              <td class="label"><a class="fn-backref" href="#id6" name="suffix">[4]</a></td>
+              <td>Macros with <tt class="docutils literal"><span class="pre">_1ST</span></tt>,
+                <tt class="docutils literal"><span class="pre">_2ND</span></tt>,
+                or <tt class="docutils literal"><span class="pre">_3RD</span></tt>
+                suffixes, if they appear, should be ignored for a different
+                reason: They are deprecated and will be removed from the library
+                soon.</td>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <div class="section" id="preprocessor-library-abstractions">
+        <h1><a name="preprocessor-library-abstractions">A.4   Preprocessor
+            Library Abstractions</a></h1>
+        <p>In this section we'll discuss the basic abstractions of the
+          Preprocessor library, and give some simple examples of each.</p>
+        <div class="section" id="repetition">
+          <h2><a name="repetition">A.4.1   Repetition</a></h2>
+          <p>The repeated generation of <tt class="docutils literal"><span class="pre">class</span>
+              <span class="pre">T0</span></tt>, <tt class="docutils literal"><span
+
+                class="pre">class</span> <span class="pre">T1</span></tt>... <tt
+
+              class="docutils literal"><span class="pre">class</span> <span class="pre">T</span></tt><em>n</em>
+            that we achieved using <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_PARAMS</span></tt>
+            was a specific case of the general concept of <strong>horizontal
+              repetition</strong>. The library also has a concept of vertical
+            repetition, which we'll get to in a moment. Horizontal repetition
+            macros are all found in the library's <tt class="docutils literal"><span
+
+                class="pre">repetition/</span></tt> subdirectory.</p>
+          <div class="section" id="horizontal-repetition">
+            <h3><a name="horizontal-repetition">A.4.1.1   Horizontal Repetition</a></h3>
+            <p>To generate the <tt class="docutils literal"><span class="pre">tiny_size</span></tt>
+              specializations using horizontal repetition, we might write the
+              following:</p>
+            <pre class="literal-block">#include &lt;boost/preprocessor/repetition.hpp&gt;
+#include &lt;boost/preprocessor/arithmetic/sub.hpp&gt;
+#include &lt;boost/preprocessor/punctuation/comma_if.hpp&gt;
+
+#define TINY_print(z, n, data) data
+
+#define TINY_size(z, n, unused)                                 \
+  template &lt;BOOST_PP_ENUM_PARAMS(n, class T)&gt;                   \
+  struct tiny_size&lt;                                             \
+      BOOST_PP_ENUM_PARAMS(n,T)                                 \
+      BOOST_PP_COMMA_IF(n)                                      \
+      BOOST_PP_ENUM(                                            \
+          BOOST_PP_SUB(TINY_MAX_SIZE,n), TINY_print, none)      \
+  &gt;                                                             \
+    : mpl::int_&lt;n&gt; {};
+
+BOOST_PP_REPEAT(TINY_MAX_SIZE, TINY_size, ~)
+
+#undef TINY_size
+#undef TINY_print
+</pre>
+            <!-- @import re
+compile('all', pop = None)example.sub('BOOST_PP_REPEAT.*', '', flags = re.DOTALL) -->
+            <p>The code generation process is kicked off by calling <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_REPEAT</span></tt>, a <strong>higher-order
+                macro</strong> that repeatedly invokes the macro named by its
+              second argument (<tt class="docutils literal"><span class="pre">TINY_size</span></tt>).
+              The first argument specifies the number of repeated invocations,
+              and the third one can be any data; it is passed on unchanged to
+              the macro being invoked. In this case, <tt class="docutils literal"><span
+
+                  class="pre">TINY_size</span></tt> doesn't use that data, so
+              the choice to pass <tt class="docutils literal"><span class="pre">~</span></tt>
+              was arbitrary.<a class="footnote-reference" href="#markers" id="id7"
+
+                name="id7">[5]</a></p>
+            <table class="docutils footnote" frame="void" id="markers" rules="none">
+              <colgroup><col class="label" /><col /></colgroup>
+              <tbody valign="top">
+                <tr>
+                  <td class="label"><a class="fn-backref" href="#id7" name="markers">[5]</a></td>
+                  <td><tt class="docutils literal"><span class="pre">~</span></tt>
+                    is not an <em>entirely</em> arbitrary choice. Both <tt class="docutils literal"><span
+
+                        class="pre">@</span></tt> and <tt class="docutils literal"><span
+
+                        class="pre">$</span></tt> might have been good choices,
+                    except that they are technically not part of the basic
+                    character set that C++ implementations are required to
+                    support. An identifier like <tt class="docutils literal"><span
+
+                        class="pre">ignored</span></tt> might be subject to
+                    macro expansion, leading to unexpected results.</td>
+                </tr>
+              </tbody>
+            </table>
+            <p>Each time the <tt class="docutils literal"><span class="pre">TINY_size</span></tt>
+              macro is invoked by <tt class="docutils literal"><span class="pre">BOOST_PP_REPEAT</span></tt>,
+              it generates a different specialization of <tt class="docutils literal"><span
+
+                  class="pre">tiny_size</span></tt>. The macro accepts three
+              parameters.</p>
+            <ul class="simple">
+              <li><tt class="docutils literal"><span class="pre">z</span></tt>
+                is related to the <tt class="docutils literal"><span class="pre">_Z</span></tt>
+                macro suffix we mentioned earlier. You'll never need to use it
+                except for optimization purposes, and can safely ignore it for
+                now.</li>
+              <li><tt class="docutils literal"><span class="pre">n</span></tt>
+                is the repetition index. In repeated invocations of <tt class="docutils literal"><span
+
+                    class="pre">TINY_size</span></tt>, <tt class="docutils literal"><span
+
+                    class="pre">n</span></tt> will be <tt class="docutils literal"><span
+
+                    class="pre">0</span></tt>, then <tt class="docutils literal"><span
+
+                    class="pre">1</span></tt>, then <tt class="docutils literal"><span
+
+                    class="pre">2</span></tt>, and so on.</li>
+              <li><tt class="docutils literal"><span class="pre">unused</span></tt>,
+                in this case, will be <tt class="docutils literal"><span class="pre">~</span></tt>
+                on each repetition. In general, the final argument to a macro
+                invoked by <tt class="docutils literal"><span class="pre">BOOST_PP_REPEAT</span></tt>
+                is always the same as its invoker's final argument.</li>
+            </ul>
+            <p>Because its <em>replacement-list</em> covers several lines, all
+              but the last line of <tt class="docutils literal"><span class="pre">TINY_size</span></tt>
+              is continued with a trailing backslash. The first few of those
+              lines just invoke <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_PARAMS</span></tt>
+              (which we already used in the primary template) to generate
+              comma-separated lists, so each invocation of <tt class="docutils literal"><span
+
+                  class="pre">TINY_size</span></tt> produces something
+              equivalent to:<a class="footnote-reference" href="#cont" id="id8"
+
+                name="id8">[6]</a></p>
+            <pre class="literal-block">template &lt;<strong>class T0, class T1, ... class T</strong><em>n-1</em>&gt;
+struct tiny_size&lt;
+    <strong>T0, T1, ... T</strong><em>n-1</em>
+    <em>...more...</em> 
+&gt; 
+  : mpl::int_&lt;n&gt; {};
+</pre>
+            <table class="docutils footnote" frame="void" id="cont" rules="none">
+              <colgroup><col class="label" /><col /></colgroup>
+              <tbody valign="top">
+                <tr>
+                  <td class="label"><a class="fn-backref" href="#id8" name="cont">[6]</a></td>
+                  <td>Note that the line continuation characters <em>and</em>
+                    the newlines following them are removed by the preprocessor,
+                    so the resulting code actually appears on a single line in
+                    the preprocessed output.</td>
+                </tr>
+              </tbody>
+            </table>
+            <!-- @ignore() -->
+            <p><tt class="docutils literal"><span class="pre">BOOST_PP_COMMA_IF</span></tt>
+              generates a comma if its numeric argument is not <tt class="docutils literal"><span
+
+                  class="pre">0</span></tt>. When <tt class="docutils literal"><span
+
+                  class="pre">n</span></tt> is <tt class="docutils literal"><span
+
+                  class="pre">0</span></tt>, the list generated by the preceding
+              line will be empty, and a leading comma directly following the <tt
+
+                class="docutils literal"><span class="pre">&lt;</span></tt>
+              character would be ill-formed.</p>
+            <p>The next line uses <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM</span></tt>
+              to generate <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE-n</span></tt>
+              comma-separated copies of <tt class="docutils literal"><span class="pre">none</span></tt>.
+              <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM</span></tt>
+              is just like <tt class="docutils literal"><span class="pre">BOOST_PP_REPEAT</span></tt>
+              except that it generates commas between repetitions, so its second
+              argument (<tt class="docutils literal"><span class="pre">TINY_print</span></tt>,
+              here) must have the same signature as <tt class="docutils literal"><span
+
+                  class="pre">TINY_size</span></tt>. In this case, <tt class="docutils literal"><span
+
+                  class="pre">TINY_print</span></tt> ignores its repetition
+              index <tt class="docutils literal"><span class="pre">n</span></tt>,
+              and simply yields its third argument, <tt class="docutils literal"><span
+
+                  class="pre">none</span></tt>.</p>
+            <p><tt class="docutils literal"><span class="pre">BOOST_PP_SUB</span></tt>
+              implements token subtraction. It's crucial to understand that
+              although the preprocessor <em>itself</em> can evaluate ordinary
+              arithmetic expressions:</p>
+            <pre class="literal-block">#define X 3
+...
+#if <strong>X - 1 &gt; 0</strong>  // OK
+  <em>whatever</em>
+#endif
+</pre>
+            <!-- @compile() -->
+            <!-- @litre_translator.line_offset -= 7 -->
+            <p>preprocessor <em>metaprograms</em> can only operate on tokens.
+              Normally, when a macro in the Preprocessor library expects a
+              numeric argument, it must be passed as a single token. If we had
+              written <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE-n</span></tt>
+              instead of <tt class="docutils literal"><span class="pre">BOOST_PP_SUB(TINY_MAX_SIZE,n)</span></tt>
+              above, the first argument to <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM</span></tt>
+              would have contained three tokens at each invocation: first <tt class="docutils literal"><span
+
+                  class="pre">3-0</span></tt>, then <tt class="docutils literal"><span
+
+                  class="pre">3-1</span></tt>, and finally <tt class="docutils literal"><span
+
+                  class="pre">3-2</span></tt>. <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_SUB</span></tt>, though, generates
+              single-token results: first <tt class="docutils literal"><span class="pre">3</span></tt>,
+              then <tt class="docutils literal"><span class="pre">2</span></tt>,
+              and finally <tt class="docutils literal"><span class="pre">1</span></tt>,
+              in successive repetitions.</p>
+            <div class="sidebar">
+              <p class="first sidebar-title">Naming Conventions</p>
+              <p class="last">Note that <tt class="docutils literal"><span class="pre">TINY_print</span></tt>
+                and <tt class="docutils literal"><span class="pre">TINY_size</span></tt>
+                are <tt class="docutils literal"><span class="pre">#undef</span></tt>'d
+immediately
+                after they're used, with no intervening <tt class="docutils literal"><span
+
+                    class="pre">#include</span></tt>s. They can therefore be
+                thought of as "local" macro definitions. Because the
+                preprocessor doesn't respect scope boundaries, it's important to
+                choose names carefully to prevent clashes. We recommend <tt class="docutils literal"><span
+
+                    class="pre">PREFIXED_lower_case</span></tt> names for local
+                macros and <tt class="docutils literal"><span class="pre">PREFIXED_UPPER_CASE</span></tt>
+                names for global ones. The only exceptions are one-letter
+                lowercase names, which are safe to use for local macros: No
+                other header is likely to <tt class="docutils literal"><span class="pre">#define</span></tt>
+                a global single-letter lowercase macro—that would be <em>very</em>
+                bad manners.</p>
+            </div>
+          </div>
+          <div class="section" id="vertical-repetition">
+            <h3><a name="vertical-repetition">A.4.1.2   Vertical Repetition</a></h3>
+            <p>If you send the previous example through your preprocessor,
+              you'll see one long line containing something like this:</p>
+            <pre class="literal-block">template &lt;&gt; struct tiny_size&lt; none , none , none &gt; : mpl::int_&lt;0&gt;
+ {}; template &lt; class T0&gt; struct tiny_size&lt; T0 , none , none &gt; :
+mpl::int_&lt;1&gt; {}; template &lt; class T0 , class T1&gt; struct tiny_size
+&lt; T0 , T1 , none &gt; : mpl::int_&lt;2&gt; {};
+</pre>
+            <!-- @compile('all', pop = 1) -->
+            <p>The distinguishing feature of horizontal repetition is that all
+              instances of the repeated pattern are generated on the same line
+              of preprocessed output. For some jobs, like generating the primary
+              <tt class="docutils literal"><span class="pre">tiny_size</span></tt>
+              template, that's perfectly appropriate. In this case, however,
+              there are at least two disadvantages.</p>
+            <ol class="arabic simple">
+              <li>It's hard to verify that our metaprogram is doing the right
+                thing without reformatting the resulting code by hand.</li>
+              <li>The efficiency of nested horizontal repetitions varies widely
+                across preprocessors. Each specialization generated by means of
+                horizontal repetition contains three other horizontal
+                repetitions: two invocations of <tt class="docutils literal"><span
+
+                    class="pre">BOOST_PP_ENUM_PARAMS</span></tt> and one
+                invocation of <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM</span></tt>.
+                When <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>
+                is <tt class="docutils literal"><span class="pre">3</span></tt>,
+                you'll probably never care, but on at least one preprocessor
+                still in use today, compilation begins to slow noticeably when <tt
+
+                  class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>
+                reaches <tt class="docutils literal"><span class="pre">8</span></tt>.<a
+
+                  class="footnote-reference" href="#nest" id="id9" name="id9">[7]</a></li>
+            </ol>
+            <blockquote>
+              <table class="docutils footnote" frame="void" id="nest" rules="none">
+                <colgroup><col class="label" /><col /></colgroup>
+                <tbody valign="top">
+                  <tr>
+                    <td class="label"><a class="fn-backref" href="#id9" name="nest">[7]</a></td>
+                    <td>That said, other preprocessors can handle 256 * 256
+                      nested repetitions without any speed problems whatsoever.</td>
+                  </tr>
+                </tbody>
+              </table>
+            </blockquote>
+            <p>The solution to these problems, naturally, is <strong>vertical
+                repetition</strong>, which generates instances of a pattern
+              across multiple lines. The Preprocessor library provides two means
+              of vertical repetition: <strong>local iteration</strong> and <strong>file
+                iteration</strong>.</p>
+            <div class="section" id="local-iteration">
+              <h4><a name="local-iteration">Local Iteration</a></h4>
+              <p>The most expedient way to demonstrate local iteration in our
+                example is to replace the invocation of <tt class="docutils literal"><span
+
+                    class="pre">BOOST_PP_REPEAT</span></tt> with the following:</p>
+              <pre class="literal-block">#include &lt;boost/preprocessor/<strong>iteration/local.hpp</strong>&gt;
+
+#define BOOST_PP_LOCAL_MACRO(n)   TINY_size(~, n, ~)
+#define BOOST_PP_LOCAL_LIMITS     (0, <strong>TINY_MAX_SIZE - 1</strong>)
+<strong>#include</strong> BOOST_PP_LOCAL_ITERATE()
+</pre>
+              <!-- @compile('all', pop = 1) -->
+              <p>Local iteration repeatedly invokes the user-defined macro with
+                the special name <tt class="docutils literal"><span class="pre">BOOST_PP_LOCAL_MACRO</span></tt>,
+                whose argument will be an iteration index. Since we already had
+                <tt class="docutils literal"><span class="pre">TINY_size</span></tt>
+                lying around, we've just defined <tt class="docutils literal"><span
+
+                    class="pre">BOOST_PP_LOCAL_MACRO</span></tt> to invoke it.
+                The range of iteration indices are given by another user-defined
+                macro, <tt class="docutils literal"><span class="pre">BOOST_PP_LOCAL_LIMITS</span></tt>,
+                which must expand to a parenthesized pair of integer values
+                representing the <em>inclusive</em> range of index values
+                passed to <tt class="docutils literal"><span class="pre">BOOST_PP_LOCAL_MACRO</span></tt>.
+                Note that this is one of the rare places where the library
+                expects a numeric argument that can be an expression consisting
+                of multiple tokens.</p>
+              <p>Finally, the repetition is initiated by <tt class="docutils literal"><span
+
+                    class="pre">#include</span></tt>-ing the result of invoking
+                <tt class="docutils literal"><span class="pre">BOOST_PP_LOCAL_ITERATE</span></tt>,
+                which will ultimately be a file in the Preprocessor library
+                itself. You may find it surprising that many preprocessors can
+                handle repeated file inclusion more quickly than nested
+                horizontal repetition, but that is in fact the case.</p>
+              <p>If we throw the new example at our preprocessor, we'll see the
+                following, on three separate lines in the output:</p>
+              <pre class="literal-block">template &lt;&gt; struct tiny_size&lt; none , none , none &gt; : mpl::int_&lt;0&gt;
+ {};
+
+template &lt; class T0&gt; struct tiny_size&lt; T0 , none , none &gt; : mpl::
+int_&lt;1&gt; {};
+
+template &lt; class T0 , class T1&gt; struct tiny_size&lt; T0 , T1 , none
+&gt; : mpl::int_&lt;2&gt; {};
+</pre>
+              <!-- @compile('all', pop = 1) -->
+              <p>That represents a great improvement in verifiability, but it's
+                still not ideal. As <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>
+                grows, it gets harder and harder to see that the pattern is
+                generating what we'd like. If we could get some more line breaks
+                into the output it would retain a more recognizable form.</p>
+              <p>Both repetition methods we've used so far have another
+                drawback, though it doesn't show up in this example. Consider
+                what would happen if <tt class="docutils literal"><span class="pre">tiny_size</span></tt>
+                had a member function that we wanted to debug. If you've ever
+                tried to use a debugger to step through a function generated by
+                a preprocessor macro, you know that it's a frustrating
+                experience at best: The debugger shows you the line from which
+                the macro was ultimately invoked, which usually looks nothing at
+                all like the code that was generated. Worse, as far as the
+                debugger is concerned, <em>every</em> statement in that
+                generated function occupies that same line.</p>
+            </div>
+            <div class="section" id="file-iteration">
+              <h4><a name="file-iteration">File Iteration</a></h4>
+              <p>Clearly, debuggability depends on preserving the association
+                between generated code and the lines in the source file that
+                describe the code pattern. File iteration generates pattern
+                instances by repeatedly <tt class="docutils literal"><span class="pre">#include</span></tt>-ing
+                the same source file. The effect of file iteration on
+                debuggability is similar to that of templates: Although separate
+                instances appear to occupy the same source lines in the
+                debugger, we do have the experience of stepping through the
+                function's source code.</p>
+              <p>To apply file iteration in our example, we can replace our
+                earlier local iteration code and the definition of <tt class="docutils literal"><span
+
+                    class="pre">TINY_size</span></tt>, with:</p>
+              <pre class="literal-block">#include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
+#define BOOST_PP_ITERATION_LIMITS (0, TINY_MAX_SIZE - 1)
+#define BOOST_PP_FILENAME_1       "tiny_size_spec.hpp"
+#include BOOST_PP_ITERATE()
+</pre>
+              <p><tt class="docutils literal"><span class="pre">BOOST_PP_ITERATION_LIMITS</span></tt>
+                follows the same pattern as <tt class="docutils literal"><span
+
+                    class="pre">BOOST_PP_LOCAL_LIMITS</span></tt> did, allowing
+                us to specify an inclusive range of iteration indices. <tt class="docutils literal"><span
+
+                    class="pre">BOOST_PP_FILENAME_1</span></tt> specifies the
+                name of the file to repeatedly <tt class="docutils literal"><span
+
+                    class="pre">#include</span></tt> (we'll show you that file
+                in a moment). The trailing <tt class="docutils literal"><span class="pre">1</span></tt>
+                indicates that this is the first nesting level of file
+                iteration—should we need to invoke file iteration again from
+                within <tt class="docutils literal"><span class="pre">tiny_size_spec.hpp</span></tt>,
+                we'd need to use <tt class="docutils literal"><span class="pre">BOOST_PP_FILENAME_2</span></tt>
+                instead.</p>
+              <p>The contents of <tt class="docutils literal"><span class="pre">tiny_size_spec.hpp</span></tt>
+                should look familiar to you; most of it is the same as <tt class="docutils literal"><span
+
+                    class="pre">TINY_size</span></tt>'s <em>replacement-list</em>,
+                without the backslashes:</p>
+              <pre class="literal-block">#define n BOOST_PP_ITERATION()
+
+template &lt;BOOST_PP_ENUM_PARAMS(n, class T)&gt;
+struct tiny_size&lt;
+    BOOST_PP_ENUM_PARAMS(n,T)
+    BOOST_PP_COMMA_IF(n)
+    BOOST_PP_ENUM(BOOST_PP_SUB(TINY_MAX_SIZE,n), TINY_print, none)
+&gt;
+  : mpl::int_&lt;n&gt; {};
+
+#undef n
+</pre>
+              <!-- @import tempfile, os
+open(os.path.join(tempfile.gettempdir(),'tiny_size_spec.hpp'), 'w'   ).write(str(example))ignore()vertical_options = ['-I'+tempfile.gettempdir(), '-c']
+compile('all', options = vertical_options, pop = 1) -->
+              <p>The Library transmits the iteration index to us in the result
+                of <tt class="docutils literal"><span class="pre">BOOST_PP_ITERATION()</span></tt>;
+                <tt class="docutils literal"><span class="pre">n</span></tt> is
+                nothing more than a convenient local macro used to reduce
+                syntactic noise. Note that we didn't use <tt class="docutils literal"><span
+
+                    class="pre">#include</span></tt> guards because we need <tt
+
+                  class="docutils literal"><span class="pre">tiny_size_spec.hpp</span></tt>
+                to be processed multiple times.</p>
+              <p>The preprocessed result should now preserve the line structure
+                of the pattern and be more verifiable for larger values of <tt
+
+                  class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>.
+                For instance, when <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>
+                is <tt class="docutils literal"><span class="pre">8</span></tt>,
+                the following excerpt appears in the output of GCC's
+                preprocessing phase:</p>
+              <pre class="literal-block"><em>...</em>
+template &lt; class T0 , class T1 , class T2 , class T3&gt;
+struct tiny_size&lt;
+    T0 , T1 , T2 , T3
+    ,
+    none , none , none , none
+&gt;
+  : mpl::int_&lt;4&gt; {};
+
+template &lt; class T0 , class T1 , class T2 , class T3 , class T4&gt;
+struct tiny_size&lt;
+    T0 , T1 , T2 , T3 , T4
+    ,
+    none , none , none
+&gt;
+  : mpl::int_&lt;5&gt; {};
+<em>...etc.</em>
+</pre>
+              <!-- @compile('all', options = vertical_options + ['-DTINY_MAX_SIZE=8']) -->
+            </div>
+            <div class="section" id="self-iteration">
+              <h4><a name="self-iteration">Self-Iteration</a></h4>
+              <p>Creating an entirely new file like <tt class="docutils literal"><span
+
+                    class="pre">tiny_size_spec.hpp</span></tt> each time we want
+                to express a trivial code pattern for file repetition can be
+                inconvenient. Fortunately, the library provides a macro that
+                allows us to place the pattern right in the file that invokes
+                the iteration. <tt class="docutils literal"><span class="pre">BOOST_PP_IS_ITERATING</span></tt>
+                is defined to a nonzero value whenever we're inside an
+                iteration. We can use that value to select between the part of a
+                file that invokes the iteration and the part that provides the
+                repeated pattern. Here's a complete <tt class="docutils literal"><span
+
+                    class="pre">tiny_size.hpp</span></tt> file that demonstrates
+                self-iteration. Note in particular the placement and use of the
+                <tt class="docutils literal"><span class="pre">#include</span></tt>
+                guard <tt class="docutils literal"><span class="pre">TINY_SIZE_HPP_INCLUDED</span></tt>:</p>
+              <pre class="literal-block">#ifndef <strong>BOOST_PP_IS_ITERATING</strong>
+
+#  ifndef TINY_SIZE_HPP_INCLUDED
+#    define TINY_SIZE_HPP_INCLUDED
+
+#    include &lt;boost/preprocessor/repetition.hpp&gt;
+#    include &lt;boost/preprocessor/arithmetic/sub.hpp&gt;
+#    include &lt;boost/preprocessor/punctuation/comma_if.hpp&gt;
+#    include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
+
+#    ifndef TINY_MAX_SIZE
+#      define TINY_MAX_SIZE 3  // default maximum size is 3
+#    endif
+
+// primary template
+template &lt;BOOST_PP_ENUM_PARAMS(TINY_MAX_SIZE, class T)&gt;
+struct tiny_size
+  : mpl::int_&lt;TINY_MAX_SIZE&gt;
+{};
+
+// generate specializations
+#    define BOOST_PP_ITERATION_LIMITS (0, TINY_MAX_SIZE - 1)
+#    define BOOST_PP_FILENAME_1       "tiny_size.hpp" // this file
+#    include BOOST_PP_ITERATE()
+
+#  endif // TINY_SIZE_HPP_INCLUDED
+
+#else // <strong>BOOST_PP_IS_ITERATING</strong>
+
+#  define n BOOST_PP_ITERATION()
+
+#  define TINY_print(z, n, data) data
+
+// specialization pattern
+template &lt;BOOST_PP_ENUM_PARAMS(n, class T)&gt;
+struct tiny_size&lt;
+    BOOST_PP_ENUM_PARAMS(n,T)
+    BOOST_PP_COMMA_IF(n)
+    BOOST_PP_ENUM(BOOST_PP_SUB(TINY_MAX_SIZE,n), TINY_print, none)
+&gt;
+  : mpl::int_&lt;n&gt; {};
+
+#  undef TINY_print
+#  undef n
+
+#endif // <strong>BOOST_PP_IS_ITERATING</strong>
+</pre>
+              <!-- @compile(source_file = 'tiny_size.hpp') --> </div>
+            <div class="section" id="more">
+              <h4><a name="more">More</a></h4>
+              <p>There's a good deal more to file iteration than what we've been
+                able to show you here. For more details, we encourage you to
+                delve into the library's electronic documentation of <tt class="docutils literal"><span
+
+                    class="pre">BOOST_PP_ITERATE</span></tt> and friends. Also,
+                it's important to note that no single technique for repetition
+                is superior to any other: Your choice may depend on convenience,
+                verifiability, debuggability, compilation speed, and your own
+                sense of "logical coherence."</p>
+            </div>
+          </div>
+        </div>
+        <div class="section" id="arithmetic-logical-and-comparison-operations">
+          <h2><a name="arithmetic-logical-and-comparison-operations">A.4.2   Arithmetic,
+              Logical, and Comparison Operations</a></h2>
+          <p>As we mentioned earlier, many of the Preprocessor library
+            interfaces require single-token numeric arguments, and when those
+            numbers need to be computed arithmetically, straightforward
+            arithmetic expressions are inappropriate. We used <tt class="docutils literal"><span
+
+                class="pre">BOOST_PP_SUB</span></tt> to subtract two numeric
+            tokens in our <tt class="docutils literal"><span class="pre">tiny_size</span></tt>
+            examples. The library contains a suite of operations for
+            non-negative integral token arithmetic in its <tt class="docutils literal"><span
+
+                class="pre">arithmetic/</span></tt> subdirectory, as shown in
+            Table A.1</p>
+          <table border="1" class="docutils">
+            <caption>Preprocessor Library Arithmetic Operations</caption> <colgroup>
+              <col width="44%" /> <col width="56%" /> </colgroup>
+            <thead valign="bottom">
+              <tr>
+                <th>Expression</th>
+                <th>Value of Single Token Result</th>
+              </tr>
+            </thead>
+            <tbody valign="top">
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_ADD(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">+</span> <span class="pre">y</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_DEC(x)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">-</span> <span class="pre">1</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_DIV(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">/</span> <span class="pre">y</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_INC(x)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">+</span> <span class="pre">1</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_MOD(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">%</span> <span class="pre">y</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_MUL(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">*</span> <span class="pre">y</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_SUB(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">-</span> <span class="pre">y</span></tt></td>
+              </tr>
+            </tbody>
+          </table>
+          <p>The <tt class="docutils literal"><span class="pre">logical/</span></tt>
+            subdirectory contains the convenient Boolean token operations shown
+            in Table A.2 and the more efficient operations shown in Table A.3,
+            which require that their operands are either <tt class="docutils literal"><span
+
+                class="pre">0</span></tt> or <tt class="docutils literal"><span
+
+                class="pre">1</span></tt> (a single bit).</p>
+          <table border="1" class="docutils">
+            <caption>Preprocessor Library Integer Logical Operations</caption> <colgroup>
+              <col width="44%" /> <col width="56%" /> </colgroup>
+            <thead valign="bottom">
+              <tr>
+                <th>Expression</th>
+                <th>Value of Single Token Result</th>
+              </tr>
+            </thead>
+            <tbody valign="top">
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_AND(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">&amp;&amp;</span> <span class="pre">y</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_NOR(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">!(x</span> <span
+
+                      class="pre">||</span> <span class="pre">y)</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_OR(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">||</span> <span class="pre">y</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_XOR(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">(bool)x</span>
+                    <span class="pre">!=</span> <span class="pre">(bool)y</span>  
+                    <span class="pre">?</span> <span class="pre">1</span> <span
+
+                      class="pre">:</span> <span class="pre">0</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_NOT(x)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">?</span> <span class="pre">0</span> <span class="pre">:</span>
+                    <span class="pre">1</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_BOOL(x)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
+                    <span class="pre">0</span></tt></td>
+              </tr>
+            </tbody>
+          </table>
+          <table border="1" class="docutils">
+            <caption>Preprocessor Library Bit Logical Operations</caption> <colgroup>
+              <col width="44%" /> <col width="56%" /> </colgroup>
+            <thead valign="bottom">
+              <tr>
+                <th>Expression</th>
+                <th>Value of Single Token Result</th>
+              </tr>
+            </thead>
+            <tbody valign="top">
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_BITAND(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">&amp;&amp;</span> <span class="pre">y</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_BITNOR(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">!(x</span> <span
+
+                      class="pre">||</span> <span class="pre">y)</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_BITOR(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">||</span> <span class="pre">y</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_BITXOR(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">(bool)x</span>
+                    <span class="pre">!=</span> <span class="pre">(bool)y</span>  
+                    <span class="pre">?</span> <span class="pre">1</span> <span
+
+                      class="pre">:</span> <span class="pre">0</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_COMPL(x)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">?</span> <span class="pre">0</span> <span class="pre">:</span>
+                    <span class="pre">1</span></tt></td>
+              </tr>
+            </tbody>
+          </table>
+          <p>Finally, the <tt class="docutils literal"><span class="pre">comparison/</span></tt>
+            subdirectory provides the token integral comparison operations shown
+            in Table A.4.</p>
+          <table border="1" class="docutils">
+            <caption>Preprocessor Library Comparison Operations</caption> <colgroup>
+              <col width="46%" /> <col width="54%" /> </colgroup>
+            <thead valign="bottom">
+              <tr>
+                <th>Expression</th>
+                <th>Value of Single Token Result</th>
+              </tr>
+            </thead>
+            <tbody valign="top">
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_EQUAL(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">==</span> <span class="pre">y</span>   <span
+
+                      class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
+                    <span class="pre">0</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_NOT_EQUAL(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">!=</span> <span class="pre">y</span>   <span
+
+                      class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
+                    <span class="pre">0</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_LESS(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">&lt;</span> <span class="pre">y</span>    <span
+
+                      class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
+                    <span class="pre">0</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_LESS_EQUAL(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">&lt;=</span> <span class="pre">y</span>   <span
+
+                      class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
+                    <span class="pre">0</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_GREATER(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">&gt;</span> <span class="pre">y</span>    <span
+
+                      class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
+                    <span class="pre">0</span></tt></td>
+              </tr>
+              <tr>
+                <td><tt class="docutils literal"><span class="pre">BOOST_PP_GREATER_EQUAL(x,y)</span></tt></td>
+                <td><tt class="docutils literal"><span class="pre">x</span> <span
+
+                      class="pre">&gt;=</span> <span class="pre">y</span>   <span
+
+                      class="pre">?</span> <span class="pre">1</span> <span class="pre">:</span>
+                    <span class="pre">0</span></tt></td>
+              </tr>
+            </tbody>
+          </table>
+          <p>Because it's common to have a choice among several workable
+            comparison operators, it may be useful to know that <tt class="docutils literal"><span
+
+                class="pre">BOOST_PP_EQUAL</span></tt> and <tt class="docutils literal"><span
+
+                class="pre">BOOST_PP_NOT_EQUAL</span></tt> are likely to be O(1)
+            while the other comparison operators are generally slower.</p>
+        </div>
+        <div class="section" id="control-structures">
+          <h2><a name="control-structures">A.4.3   Control Structures</a></h2>
+          <p>In its <tt class="docutils literal"><span class="pre">control/</span></tt>
+            directory, the Preprocessor Library supplies a macro <tt class="docutils literal"><span
+
+                class="pre">BOOST_PP_IF(c,t,f)</span></tt> that fulfills a
+            similar role to the one filled by <tt class="docutils literal"><span
+
+                class="pre">mpl::if_</span></tt>. To explore the "control"
+            group, we'll generate code for a framework of generic function
+            objects: the Boost Function Library.<a class="footnote-reference" href="#function"
+
+              id="id10" name="id10">[8]</a> <tt class="docutils literal"><span
+
+                class="pre">boost::function</span></tt> is partially specialized
+            to match function type arguments of each arity up to the maximum
+            supported by the library:</p>
+          <pre class="literal-block">template &lt;class Signature&gt; struct function;   // primary template
+
+template &lt;class R&gt;                                   // arity = 0
+struct function&lt;R()&gt;
+  <em>definition not shown...</em>
+
+template &lt;class R, class A0&gt;                         // arity = 1
+struct function&lt;R(A0)&gt;
+  <em>definition not shown...</em>
+
+template &lt;class R, class A0, class A1&gt;               // arity = 2
+struct function&lt;R(A0,A1)&gt;
+  <em>definition not shown...</em>
+
+template &lt;class R, class A0, class A1, class A2&gt;     // arity = 3
+struct function&lt;R(A0,A1,A2)&gt;
+  <em>definition not shown...</em>
+
+<em>etc.</em>
+</pre>
+          <!-- @example.replace(')>', ')>;')
+compile() -->
+          <table class="docutils footnote" frame="void" id="function" rules="none">
+            <colgroup><col class="label" /><col /></colgroup>
+            <tbody valign="top">
+              <tr>
+                <td class="label"><a class="fn-backref" href="#id10" name="function">[8]</a></td>
+                <td>We touched briefly on the design of Boost Function when we
+                  discussed type erasure in Chapter 9. See the Function library
+                  documentation at <tt class="docutils literal"><span class="pre">boost_1_32_0/libs/function/index.html</span></tt>
+                  on the CD that accompanies this book for more information.</td>
+              </tr>
+            </tbody>
+          </table>
+          <p>We've already covered a few strategies that can be used to generate
+            the pattern above, so we won't belabor that part of the problem; the
+            file iteration approach we used for <tt class="docutils literal"><span
+
+                class="pre">tiny_size</span></tt> would be fine:</p>
+          <pre class="literal-block">#ifndef BOOST_PP_IS_ITERATING
+
+#  ifndef BOOST_FUNCTION_HPP_INCLUDED
+#    define BOOST_FUNCTION_HPP_INCLUDED
+
+#    include &lt;boost/preprocessor/repetition.hpp&gt;
+#    include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
+
+#    ifndef FUNCTION_MAX_ARITY
+#      define FUNCTION_MAX_ARITY 15
+#    endif
+
+<strong>template &lt;class Signature&gt; struct function;</strong>   // primary template
+
+// generate specializations
+#    define BOOST_PP_ITERATION_LIMITS (0, FUNCTION_MAX_ARITY)
+#    define BOOST_PP_FILENAME_1    "boost/function.hpp" // this file
+#    include BOOST_PP_ITERATE()
+
+#  endif // BOOST_FUNCTION_HPP_INCLUDED
+
+#else // BOOST_PP_IS_ITERATING
+
+#  define n BOOST_PP_ITERATION()
+
+// specialization pattern
+<strong>template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;</strong>
+<strong>struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;</strong>
+  <em>definition not shown...</em>
+
+#  undef n
+
+#endif // BOOST_PP_IS_ITERATING
+</pre>
+          <p><tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_TRAILING_PARAMS</span></tt>,
+            used above, is just like <tt class="docutils literal"><span class="pre">BOOST_PP_ENUM_PARAMS</span></tt>
+            except that when its first argument is not <tt class="docutils literal"><span
+
+                class="pre">0</span></tt>, it generates a leading comma.</p>
+          <!-- @example.replace_emphasis(';//')
+tmpdir = tempfile.gettempdir()tmpboost = os.path.join(tmpdir,'boost')try: os.mkdir(tmpboost)except: pass
+tmp_boost_function = os.path.join(tmpdir, 'boost/function.hpp')compile(    options = vertical_options  , source_file = tmp_boost_function
+  , pop = None) -->
+          <div class="section" id="argument-selection">
+            <h3><a name="argument-selection">A.4.3.1   Argument Selection</a></h3>
+            <p>For the sake of interoperability with C++ standard library
+              algorithms, it might be nice if <tt class="docutils literal"><span
+
+                  class="pre">function</span></tt>s of one or two arguments were
+              derived from appropriate specializations of <tt class="docutils literal"><span
+
+                  class="pre">std::unary_function</span></tt> or <tt class="docutils literal"><span
+
+                  class="pre">std::binary_function</span></tt>, respectively.<a
+
+                class="footnote-reference" href="#ebo" id="id11" name="id11">[9]</a>
+              <tt class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
+              is a great tool for dealing with special cases:</p>
+            <pre class="literal-block">#  include &lt;boost/preprocessor/control/if.hpp&gt;
+#  include &lt;boost/preprocessor/comparison/equal.hpp&gt;
+
+// specialization pattern
+template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
+struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;
+  BOOST_PP_IF(
+      BOOST_PP_EQUAL(n,2), <strong>: std::binary_function&lt;A0, A1, R&gt;</strong>
+    , BOOST_PP_IF(
+          BOOST_PP_EQUAL(n,1), <strong>: std::unary_function&lt;A0, R&gt;</strong>
+        , <em>...empty argument...</em>
+      )
+  )
+{ <em>...class body omitted...</em> };
+</pre>
+            <!-- @pp_failure() -->
+            <table class="docutils footnote" frame="void" id="ebo" rules="none">
+              <colgroup><col class="label" /><col /></colgroup>
+              <tbody valign="top">
+                <tr>
+                  <td class="label"><a class="fn-backref" href="#id11" name="ebo">[9]</a></td>
+                  <td>While derivation from <tt class="docutils literal"><span
+
+                        class="pre">std::unary_function</span></tt> or <tt class="docutils literal"><span
+
+                        class="pre">std::binary_function</span></tt> might be
+                    necessary for interoperability with some older library
+                    implementations, it may inhibit the Empty Base Optimization
+                    (EBO) from taking effect when two such derived classes are
+                    part of the same object. For more information, see section
+                    9.4. In general, it's better to expose <tt class="docutils literal"><span
+
+                        class="pre">first_argument_type</span></tt>, <tt class="docutils literal"><span
+
+                        class="pre">second_argument_type</span></tt>, and <tt class="docutils literal"><span
+
+                        class="pre">result_type</span></tt> <tt class="docutils literal"><span
+
+                        class="pre">typedef</span></tt>s directly.</td>
+                </tr>
+              </tbody>
+            </table>
+            <p>Well, our first attempt has run into several problems. First off,
+              you're not allowed to pass an empty argument to the preprocessor.<a
+
+                class="footnote-reference" href="#c99" id="id12" name="id12">[3]</a>
+              Secondly, because angle brackets don't get special treatment, the
+              commas in the <tt class="docutils literal"><span class="pre">std::unary_function</span></tt>
+              and <tt class="docutils literal"><span class="pre">std::binary_function</span></tt>
+              specializations above are treated as macro argument separators,
+              and the preprocessor will complain that we've passed the wrong
+              number of arguments to <tt class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
+              in two places.</p>
+            <p>Because it captures all of the issues, let's focus on the inner <tt
+
+                class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
+              invocation for a moment. The strategy that <tt class="docutils literal"><span
+
+                  class="pre">mpl::eval_if</span></tt> uses, of selecting a
+              nullary function to invoke, could work nicely here. The
+              preprocessor doesn't have a direct analogue for <tt class="docutils literal"><span
+
+                  class="pre">mpl::eval_if</span></tt>, but it doesn't really
+              need one: We can get the right effect by adding a second set of
+              parentheses to <tt class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>.</p>
+            <pre class="literal-block">#define BOOST_FUNCTION_unary()    : std::unary_function&lt;A0,R&gt;
+#define BOOST_FUNCTION_empty()    // nothing
+
+...
+
+    , BOOST_PP_IF(
+          BOOST_PP_EQUAL(n,1), BOOST_FUNCTION_unary
+        , BOOST_FUNCTION_empty
+      )<strong>()</strong>
+
+#undef BOOST_FUNCTION_empty
+#undef BOOST_FUNCTION_unary
+</pre>
+            <!-- @ignore() -->
+            <p>A nullary macro that generates nothing is so commonly needed that
+              the library's "facilities" group provides one: <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_EMPTY</span></tt>. To complete the
+              example we'll need to delay evaluation all the way to the outer <tt
+
+                class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
+              invocation, because <tt class="docutils literal"><span class="pre">std::binary_function&lt;A0,A1,R&gt;</span></tt>
+              also has a "comma problem":</p>
+            <pre class="literal-block">#  include &lt;boost/preprocessor/<strong>facilities/empty.hpp</strong>&gt;
+
+#  define BOOST_FUNCTION_binary() : std::binary_function&lt;A0,A1,R&gt;
+#  define BOOST_FUNCTION_unary()  : std::unary_function&lt;A0,R&gt;
+
+// specialization pattern
+template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
+struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;
+  BOOST_PP_IF(
+      BOOST_PP_EQUAL(n,2), BOOST_FUNCTION_binary
+    , BOOST_PP_IF(
+          BOOST_PP_EQUAL(n,1), BOOST_FUNCTION_unary
+        , <strong>BOOST_PP_EMPTY</strong>
+      )
+  )<strong>()</strong>
+{ 
+    <em>...class body omitted...</em>
+};
+
+#  undef BOOST_FUNCTION_unary
+#  undef BOOST_FUNCTION_binary
+#  undef n
+</pre>
+            <!-- @stack.pop()
+stack[-1].replace('// specialization pattern', '////\n%s\n////' % str(example))compile(source_file = tmp_boost_function, pop = None) -->
+            <p>Note that because we happened to be using file iteration, we
+              could have also used <tt class="docutils literal"><span class="pre">#if</span></tt>
+              on <tt class="docutils literal"><span class="pre">n</span></tt>'s
+              value directly:</p>
+            <pre class="literal-block">  template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
+  struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;
+<strong>#if n == 2</strong>
+    : std::binary_function&lt;A0, A1, R&gt;
+<strong>#elif n == 1</strong>
+    : std::unary_function&lt;A0, R&gt;
+<strong>#endif</strong>
+</pre>
+            <!-- @stack.pop()
+stack[-1].sub(    r'////.*////', '////\n%s\n////' % str(example), flags = re.DOTALL)compile(source_file = tmp_boost_function, pop = None) -->
+            <p><tt class="docutils literal"><span class="pre">BOOST_PP_IF</span></tt>
+              has the advantage of enabling us to encapsulate the logic in a
+              reusable macro, parameterized on <tt class="docutils literal"><span
+
+                  class="pre">n</span></tt>, that is compatible with all
+              repetition constructs:</p>
+            <pre class="literal-block">#define BOOST_FUNCTION_BASE(n)                                \
+    BOOST_PP_IF(BOOST_PP_EQUAL(n,2), BOOST_FUNCTION_binary    \
+      , BOOST_PP_IF(BOOST_PP_EQUAL(n,1), BOOST_FUNCTION_unary \
+           , BOOST_PP_EMPTY                                   \
+        )                                                     \
+    )()
+</pre>
+            <!-- @compile(options = ['-E']) --> </div>
+          <div class="section" id="other-selection-constructs">
+            <h3><a name="other-selection-constructs">A.4.3.2   Other Selection
+                Constructs</a></h3>
+            <p><tt class="docutils literal"><span class="pre">BOOST_PP_IDENTITY</span></tt>,
+              also in the "facilities" group, is an interesting cousin of <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_EMPTY</span></tt>:</p>
+            <pre class="literal-block">#define BOOST_PP_IDENTITY(tokens) tokens BOOST_PP_EMPTY
+</pre>
+            <!-- @ignore() -->
+            <p>You can think of it as creating a nullary macro that returns <tt
+
+                class="docutils literal"><span class="pre">tokens</span></tt>:
+              When empty parentheses are appended, the trailing <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_EMPTY</span></tt> is expanded leaving
+              just <tt class="docutils literal"><span class="pre">tokens</span></tt>
+              behind. If we had wanted inheritance from <tt class="docutils literal"><span
+
+                  class="pre">mpl::empty_base</span></tt> when <tt class="docutils literal"><span
+
+                  class="pre">function</span></tt>'s arity is not one or two, we
+              could have used <tt class="docutils literal"><span class="pre">BOOST_PP_IDENTITY</span></tt>:</p>
+            <pre class="literal-block">// specialization pattern
+template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
+struct function&lt;R ( BOOST_PP_ENUM_PARAMS(n,A) )&gt;
+  BOOST_PP_IF(
+      BOOST_PP_EQUAL(n,2), BOOST_FUNCTION_binary
+    , BOOST_PP_IF(
+          BOOST_PP_EQUAL(n,1), BOOST_FUNCTION_unary
+        , <strong>BOOST_PP_IDENTITY(: mpl::empty_base)</strong>
+      )
+  )<strong>()</strong>
+{ 
+    <em>...class body omitted...</em>
+};
+</pre>
+            <!-- @stack.pop()
+stack[-1].sub(    r'////.*////', '////\n%s\n////' % str(example), flags = re.DOTALL)compile(source_file = tmp_boost_function, pop = None) -->
+            <p>It's also worth knowing about <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_EXPR_IF</span></tt>, which generates its
+              second argument or nothing, depending on the Boolean value of its
+              first:</p>
+            <pre class="literal-block">#define BOOST_PP_EXPR_IF(c,tokens)                           \
+   BOOST_PP_IF(c,BOOST_PP_IDENTITY(tokens),BOOST_PP_EMPTY)()
+</pre>
+            <!-- @example.append(
+  'int BOOST_PP_EXPR_IF(1,main) BOOST_PP_EXPR_IF(0,quack) () {}')compile() -->
+            <p>So <tt class="docutils literal"><span class="pre">BOOST_PP_EXPR_IF(1,foo)</span></tt>
+              expands to <tt class="docutils literal"><span class="pre">foo</span></tt>,
+              while <tt class="docutils literal"><span class="pre">BOOST_PP_EXPR_IF(0,foo)</span></tt>
+              expands to nothing.</p>
+          </div>
+        </div>
+        <div class="section" id="token-pasting">
+          <h2><a name="token-pasting">A.4.4   Token Pasting</a></h2>
+          <p>It would be nice if there were a generic way to access the return
+            and parameter types of <em>all</em> function objects, rather than
+            just the unary and binary ones. A metafunction returning the
+            signature as an MPL sequence would do the trick. We could just
+            specialize <tt class="docutils literal"><span class="pre">signature</span></tt>
+            for each <tt class="docutils literal"><span class="pre">function</span></tt>
+            arity:</p>
+          <pre class="literal-block">template &lt;class F&gt; struct signature; // primary template
+
+// partial specializations for boost::function
+template &lt;class R&gt;
+struct signature&lt;function&lt;R()&gt; &gt; 
+  : mpl::vector1&lt;R&gt; {};
+
+template &lt;class R, class A0&gt;
+struct signature&lt;function&lt;R(A0)&gt; &gt; 
+  : mpl::vector2&lt;R,A0&gt; {};
+
+template &lt;class R, class A0, class A1&gt;
+struct signature&lt;function&lt;R(A0,A1)&gt; &gt; 
+  : mpl::vector3&lt;R,A0,A1&gt; {};
+
+...
+</pre>
+          <!-- @example.prepend('template <class T> struct function;')
+compile() -->
+          <p>To generate these specializations, we might add the following to
+            our pattern:</p>
+          <pre class="literal-block">template &lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class A)&gt;
+struct signature&lt;function&lt;R( BOOST_PP_ENUM_PARAMS(n,A) )&gt; &gt;
+  : mpl::<strong>BOOST_PP_CAT</strong>(vector,n)&lt;
+      R BOOST_PP_ENUM_TRAILING_PARAMS(n,A)
+    &gt; {};
+</pre>
+          <!-- @stack.pop()
+stack[-1].replace(    ';//', ''';//    template <class T> struct signature;    %s''' % example)
+compile(source_file = tmp_boost_function) -->
+          <p><tt class="docutils literal"><span class="pre">BOOST_PP_CAT</span></tt>
+            implements <strong>token pasting</strong>; its two arguments are
+            "glued" together into a single token. Since this is a
+            general-purpose macro, it sits in <tt class="docutils literal"><span
+
+                class="pre">cat.hpp</span></tt> at the top level of the
+            library's directory tree.</p>
+          <p>Although the preprocessor has a built-in token-pasting operator, <tt
+
+              class="docutils literal"><span class="pre">##</span></tt>, it only
+            works within a macro definition. If we'd used it here, it wouldn't
+            have taken effect at all:</p>
+          <pre class="literal-block">template &lt;class R&gt;
+struct signature&lt;function&lt;R()&gt; &gt; 
+  : mpl::<strong>vector##1</strong>&lt;R&gt; {};
+
+template &lt;class R, class A0&gt;
+struct signature&lt;function&lt;R(A0)&gt; &gt; 
+  : mpl::<strong>vector##2</strong>&lt;R,A0&gt; {};
+
+template &lt;class R, class A0, class A1&gt;
+struct signature&lt;function&lt;R(A0,A1)&gt; &gt; 
+  : mpl::<strong>vector##3</strong>&lt;R,A0,A1&gt; {};
+
+...
+</pre>
+          <!-- @example.replace('##','')
+example.prepend('''    template <class T> struct function;    template <class T> struct signature;''')
+compile() -->
+          <p>Also, <tt class="docutils literal"><span class="pre">##</span></tt>
+            often yields surprising results by taking effect before its
+            arguments have been expanded:</p>
+          <pre class="literal-block">#define N           10
+#define VEC(i)      vector##i
+
+VEC(N)           // vectorN
+</pre>
+          <!-- @example.wrap('typedef int vectorN;', 'x;')
+compile() -->
+          <p>By contrast, <tt class="docutils literal"><span class="pre">BOOST_PP_CAT</span></tt>
+            delays concatenation until after its arguments have been fully
+            evaluated:</p>
+          <pre class="literal-block">#define N           10
+#define VEC(i)      BOOST_PP_CAT(vector,i)
+
+VEC(N)           // vector10
+</pre>
+          <!-- @example.wrap('''
+  #include <boost/preprocessor/cat.hpp>  typedef int vector10;  ''', 'x;')compile() -->
+        </div>
+        <div class="section" id="data-types">
+          <h2><a name="data-types">A.4.5   Data Types</a></h2>
+          <p>The Preprocessor library also provides <strong>data types</strong>,
+            which you can think of as being analogous to the MPL's type
+            sequences. Preprocessor data types store <em>macro arguments</em>
+            instead of C++ types.</p>
+          <div class="section" id="sequences">
+            <h3><a name="sequences">A.4.5.1   Sequences</a></h3>
+            <p>A <strong>sequence</strong> (or <strong>seq</strong> for short)
+              is any string of nonempty parenthesized <em>macro arguments</em>.
+              For instance, here's a three-element sequence:</p>
+            <pre class="literal-block">#define MY_SEQ   (f(12))(a + 1)(foo)
+</pre>
+            <!-- @ignore() -->
+            <p>Here's how we might use a sequence to generate specializations of
+              the <tt class="docutils literal"><span class="pre">is_integral</span></tt>
+              template from the Boost Type Traits library (see Chapter 2):</p>
+            <pre class="literal-block">#include &lt;boost/preprocessor/seq.hpp&gt;
+
+template &lt;class T&gt;
+struct is_integral : mpl::false_ {}; 
+
+// a seq of integral types with unsigned counterparts
+#define BOOST_TT_basic_ints            (char)(short)(int)(long)
+
+// generate a seq containing "signed t" and "unsigned t"
+#define BOOST_TT_int_pair(r,data,t)      (signed t)(unsigned t)
+
+// a seq of all the integral types
+#define BOOST_TT_ints                                           \
+    (bool)(char)                                                \
+    BOOST_PP_SEQ_FOR_EACH(BOOST_TT_int_pair, ~, BOOST_TT_basic_ints)
+
+// generate an is_integral specialization for type t
+#define BOOST_TT_is_integral_spec(r,data,t) \
+   template &lt;&gt;                              \
+   struct is_integral&lt;t&gt; : mpl::true_ {}; 
+
+BOOST_PP_SEQ_FOR_EACH(BOOST_TT_is_integral_spec, ~, BOOST_TT_ints)
+
+#undef BOOST_TT_is_integral_spec
+#undef BOOST_TT_ints
+#undef BOOST_TT_int_pair
+#undef BOOST_TT_basic_ints
+</pre>
+            <!-- @compile() -->
+            <p><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOR_EACH</span></tt>
+              is a higher-order macro, similar to <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_REPEAT</span></tt>, that invokes its
+              first argument on each element of its third argument.</p>
+            <p>Sequences are the most efficient, most flexible, and
+              easiest-to-use of the library's data structures, provided that you
+              never need to make an empty one: An empty sequence would contain
+              no tokens, and so couldn't be passed as a macro argument. The
+              other data structures covered here all have an empty
+              representation.</p>
+            <p>The facilities for manipulating sequences are all in the
+              library's <tt class="docutils literal"><span class="pre">seq/</span></tt>
+              subdirectory. They are summarized in Table A.5, where <tt class="docutils literal"><span
+
+                  class="pre">t</span></tt> is the sequence <tt class="docutils literal"><span
+
+                  class="pre">(</span></tt><em>t</em><sub>0</sub><tt class="docutils literal"><span
+
+                  class="pre">)(</span></tt><em>t</em><sub>1</sub><tt class="docutils literal"><span
+
+                  class="pre">)...(</span></tt><em>t</em><sub>k</sub><tt class="docutils literal"><span
+
+                  class="pre">)</span></tt>. Where <em>s</em>, <em>r</em>, and
+              <em>d</em> appear, they have a similar purpose to the <tt class="docutils literal"><span
+
+                  class="pre">z</span></tt> parameters we discussed earlier (and
+              suggested you ignore for now).</p>
+            <table border="1" class="docutils">
+              <caption>Preprocessor Sequence Operations</caption> <colgroup> <col
+
+                  width="51%" /> <col width="49%" /> </colgroup>
+              <thead valign="bottom">
+                <tr>
+                  <th>Expression</th>
+                  <th>Result</th>
+                </tr>
+              </thead>
+              <tbody valign="top">
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_CAT(t)</span></tt></td>
+                  <td><em>t</em><sub>0</sub><em>t</em><sub>1</sub>...<em>t</em><sub>k</sub></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_ELEM(n,t)</span></tt></td>
+                  <td><em>t</em><sub>n</sub></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_ENUM(t)</span></tt></td>
+                  <td><em>t</em><sub>0</sub>, <em>t</em><sub>1</sub>, ...<em>t</em><sub>k</sub></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FILTER(pred,data,t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">t</span></tt>
+                    without the elements that don't satisfy <tt class="docutils literal"><span
+
+                        class="pre">pred</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FIRST_N(n,t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>n-1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOLD_LEFT(op,</span>
+                      <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
+                  <td>...<tt class="docutils literal"><span class="pre">op(</span></tt><em>s</em><tt
+
+                      class="docutils literal"><span class="pre">,op(</span></tt><em>s</em><tt
+
+                      class="docutils literal"><span class="pre">,op(</span></tt><em>s</em><tt
+
+                      class="docutils literal"><span class="pre">,x</span></tt>,<em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">),</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">),</span></tt><em>t</em><sub>2</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...</td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOLD_RIGHT(op,</span>
+                      <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
+                  <td>...<tt class="docutils literal"><span class="pre">op(</span></tt><em>s</em><tt
+
+                      class="docutils literal"><span class="pre">,op(</span></tt><em>s</em><tt
+
+                      class="docutils literal"><span class="pre">,op(</span></tt><em>s</em><tt
+
+                      class="docutils literal"><span class="pre">,x</span></tt>,<em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">),</span></tt><em>t</em><sub>k-1</sub><tt
+
+                      class="docutils literal"><span class="pre">),</span></tt>
+                    <em>t</em><sub>k-2</sub><tt class="docutils literal"><span class="pre">)</span></tt>...</td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOR_EACH(f,</span>
+                      <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">f(</span></tt><em>r</em><tt
+
+                      class="docutils literal"><span class="pre">,</span> <span
+
+                        class="pre">x,</span></tt><em>t</em><sub>0</sub><tt class="docutils literal"><span
+
+                        class="pre">)</span> <span class="pre">f(</span></tt><em>r</em><tt
+
+                      class="docutils literal"><span class="pre">,</span> <span
+
+                        class="pre">x,</span></tt><em>t</em><sub>1</sub><tt class="docutils literal"><span
+
+                        class="pre">)</span></tt>...<tt class="docutils literal"><span
+
+                        class="pre">f(</span></tt><em>r</em><tt class="docutils literal"><span
+
+                        class="pre">,</span> <span class="pre">x,</span></tt><em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOR_EACH_I(g,</span>
+                      <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">g(</span></tt><em>r</em><tt
+
+                      class="docutils literal"><span class="pre">,</span> <span
+
+                        class="pre">x,</span> <span class="pre">0,</span></tt>
+                    <em>t</em><sub>0</sub><tt class="docutils literal"><span class="pre">)</span>
+                      <span class="pre">g(</span></tt><em>r</em><tt class="docutils literal"><span
+
+                        class="pre">,</span> <span class="pre">x,</span> <span
+
+                        class="pre">1,</span></tt> <em>t</em><sub>1</sub><tt class="docutils literal"><span
+
+                        class="pre">)</span></tt>... <tt class="docutils literal"><span
+
+                        class="pre">g(</span></tt><em>r</em><tt class="docutils literal"><span
+
+                        class="pre">,</span> <span class="pre">x,</span> <span
+
+                        class="pre">k,</span></tt> <em>t</em><sub>k</sub><tt class="docutils literal"><span
+
+                        class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_FOR_EACH_PRODUCT(h,</span>
+                      <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
+                  <td>
+                    <dl class="first last docutils">
+                      <dt>Cartesian product—</dt>
+                      <dd>see online docs</dd>
+                    </dl>
+                  </td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_INSERT(t,i,tokens)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i-1</sub><tt
+
+                      class="docutils literal"><span class="pre">)(tokens)</span>
+                      <span class="pre">(</span></tt><em>t</em><sub>i</sub><tt class="docutils literal"><span
+
+                        class="pre">)(</span></tt><em>t</em><sub>i+1</sub><tt class="docutils literal"><span
+
+                        class="pre">)</span></tt>...<tt class="docutils literal"><span
+
+                        class="pre">(</span></tt><em>t</em><sub>k</sub><tt class="docutils literal"><span
+
+                        class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_POP_BACK(t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k-1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_POP_FRONT(t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>2</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_PUSH_BACK(t,tokens)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)(tokens)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_PUSH_FRONT(t,tokens)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(tokens)(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_REMOVE(t,i)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i-1</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>i+1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_REPLACE(t,i,tokens)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i-1</sub><tt
+
+                      class="docutils literal"><span class="pre">)(tokens)(</span></tt><em>t</em><sub>i+1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_REST_N(n,t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>n</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>n+1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_REVERSE(t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>k-1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_HEAD(t)</span></tt></td>
+                  <td><em>t</em><sub>0</sub></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TAIL(t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>2</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_SIZE(t)</span></tt></td>
+                  <td><em>k+1</em></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_SUBSEQ(t,i,m)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i</sub><tt
+
+                      class="docutils literal"><span class="pre">)(</span></tt><em>t</em><sub>i+1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt>...<tt
+
+                      class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>i+m-1</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TO_ARRAY(t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k+1</em>
+                    <tt class="docutils literal"><span class="pre">,(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...<em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">))</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TO_TUPLE(t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt> <em>t</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...<em>t</em><sub>k</sub><tt
+
+                      class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TRANSFORM(f,</span>
+                      <span class="pre">x,</span> <span class="pre">t)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(f(</span></tt><em>r</em><tt
+
+                      class="docutils literal"><span class="pre">,x,</span></tt><em>t</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">))</span> <span
+
+                        class="pre">(f(</span></tt><em>r</em><tt class="docutils literal"><span
+
+                        class="pre">,x,</span></tt><em>t</em><sub>1</sub><tt class="docutils literal"><span
+
+                        class="pre">))</span></tt>...<tt class="docutils literal"><span
+
+                        class="pre">(f(</span></tt><em>r</em><tt class="docutils literal"><span
+
+                        class="pre">,x,</span></tt><em>t</em><sub>k</sub><tt class="docutils literal"><span
+
+                        class="pre">))</span></tt></td>
+                </tr>
+              </tbody>
+            </table>
+            <p>It's worth noting that while there is no upper limit on the
+              length of a sequence, operations such as <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_SEQ_ELEM</span></tt> that take numeric
+              arguments will only work with values up to 256.</p>
+          </div>
+          <div class="section" id="tuples">
+            <h3><a name="tuples">A.4.5.2   Tuples</a></h3>
+            <p>A <strong>tuple</strong> is a very simple data structure for
+              which the library provides random access and a few other basic
+              operations. A tuple takes the form of a parenthesized,
+              comma-separated list of <em>macro arguments</em>. For example,
+              this is a three-element tuple:</p>
+            <pre class="literal-block">#define TUPLE3     (f(12), a + 1, foo)
+</pre>
+            <p>The operations in the library's <tt class="docutils literal"><span
+
+                  class="pre">tuple/</span></tt> subdirectory can handle tuples
+              of up to 25 elements. For example, a tuple's <tt class="docutils literal"><span
+
+                  class="pre">N</span></tt>th element can be accessed via <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_TUPLE_ELEM</span></tt>, as follows:</p>
+            <pre class="literal-block">                 // length  index  tuple 
+BOOST_PP_TUPLE_ELEM(   3   ,  1  , TUPLE3)   // a + 1
+</pre>
+            <!-- @def gen_id(id = 'a', hdr = 'tuple'):
+    example.wrap('''        #include <boost/preprocessor/%s.hpp>        int const %s = 0;        int const x =''' % (hdr,id), ';')
+    compile('all', pop = 1)gen_id() -->
+            <p>Notice that we had to pass the tuple's length as the second
+              argument to <tt class="docutils literal"><span class="pre">BOOST_PP_TUPLE_ELEM</span></tt>;
+              in fact, <em>all</em> tuple operations require explicit
+              specification of the tuple's length. We're not going to summarize
+              the other four operations in the "tuple" group here—you can
+              consult the Preprocessor library's electronic documentation for
+              more details. We note, however, that sequences can be transformed
+              into tuples with <tt class="docutils literal"><span class="pre">BOOST_PP_SEQ_TO_TUPLE</span></tt>,
+              and nonempty tuples can be transformed back into sequences with <tt
+
+                class="docutils literal"><span class="pre">BOOST_PP_TUPLE_TO_SEQ</span></tt>.</p>
+            <p>The greatest strength of tuples is that they conveniently take
+              the same representation as a macro argument list:</p>
+            <pre class="literal-block">#define FIRST_OF_THREE(a1,a2,a3)    a1
+#define SECOND_OF_THREE(a1,a2,a3)   a2
+#define THIRD_OF_THREE(a1,a2,a3)    a3
+
+// uses tuple as an argument list
+# define SELECT(selector, tuple)    <strong>selector tuple</strong>
+
+SELECT(THIRD_OF_THREE, TUPLE3)   // foo
+</pre>
+            <!-- @gen_id('foo') --> </div>
+          <div class="section" id="arrays">
+            <h3><a name="arrays">A.4.5.3   Arrays</a></h3>
+            <p>An <strong>array</strong> is just a tuple containing a
+              non-negative integer and a tuple of that length:</p>
+            <pre class="literal-block">#define ARRAY3     ( 3, TUPLE3 )
+</pre>
+            <p>Because an array carries its length around with it, the library's
+              interface for operating on arrays is much more convenient than the
+              one used for tuples:</p>
+            <pre class="literal-block">BOOST_PP_ARRAY_ELEM(1, ARRAY3)     // a + 1
+</pre>
+            <!-- @gen_id(hdr = 'array')
+del stack[-2:] -->
+            <p>The facilities for manipulating arrays of up to 25 elements are
+              all in the library's <tt class="docutils literal"><span class="pre">array/</span></tt>
+              subdirectory. They are summarized in Table A.6, where <tt class="docutils literal"><span
+
+                  class="pre">a</span></tt> is the array <tt class="docutils literal"><span
+
+                  class="pre">(</span></tt><em>k</em><tt class="docutils literal"><span
+
+                  class="pre">,</span> <span class="pre">(</span></tt><em>a</em><sub>0</sub><tt
+
+                class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
+
+                class="docutils literal"><span class="pre">,...</span></tt><em>a</em><sub>k-1</sub><tt
+
+                class="docutils literal"><span class="pre">))</span></tt>.</p>
+            <table border="1" class="docutils">
+              <caption>Preprocessor Array Operations</caption> <colgroup> <col
+
+                  width="52%" /> <col width="48%" /> </colgroup>
+              <thead valign="bottom">
+                <tr>
+                  <th>Expression</th>
+                  <th>Result</th>
+                </tr>
+              </thead>
+              <tbody valign="top">
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_DATA(a)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>a</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">)</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_ELEM(i,a)</span></tt></td>
+                  <td><em>a</em><sub>i</sub></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_INSERT(a,</span>
+                      <span class="pre">i,</span> <span class="pre">tokens)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k+1</em><tt
+
+                      class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...<em>a</em><sub>i-1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span> <span
+
+                        class="pre">tokens,</span></tt> <em>a</em><sub>i</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>i+1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_POP_BACK(a)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k-1</em><tt
+
+                      class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>k-2</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_POP_FRONT(a)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k-1</em><tt
+
+                      class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>2</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_PUSH_BACK(a,</span>
+                      <span class="pre">tokens)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k+1</em><tt
+
+                      class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">,</span>
+                      <span class="pre">tokens))</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_PUSH_FRONT(a,</span>
+                      <span class="pre">tokens)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k+1</em><tt
+
+                      class="docutils literal"><span class="pre">,(tokens,</span></tt>
+                    <em>a</em><sub>1</sub><tt class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>2</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_REMOVE(a,</span>
+                      <span class="pre">i)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k-1</em><tt
+
+                      class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>i-1</sub><tt class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>i+1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_REPLACE(a,</span>
+                      <span class="pre">i,</span> <span class="pre">tokens)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k</em><tt
+
+                      class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>i-1</sub><tt class="docutils literal"><span class="pre">,</span>
+                      <span class="pre">tokens,</span></tt> <em>a</em><sub>i+1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>k-1</sub><tt class="docutils literal"><span class="pre">))</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_REVERSE(a)</span></tt></td>
+                  <td><tt class="docutils literal"><span class="pre">(</span></tt><em>k</em><tt
+
+                      class="docutils literal"><span class="pre">,(</span></tt><em>a</em><sub>k-1</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>k-2</sub><tt
+
+                      class="docutils literal"><span class="pre">,</span></tt>...
+                    <em>a</em><sub>1</sub><tt class="docutils literal"><span class="pre">,</span></tt><em>a</em><sub>0</sub><tt
+
+                      class="docutils literal"><span class="pre">))</span></tt></td>
+                </tr>
+                <tr>
+                  <td><tt class="docutils literal"><span class="pre">BOOST_PP_ARRAY_SIZE(a)</span></tt></td>
+                  <td><em>k</em></td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
+          <div class="section" id="lists">
+            <h3><a name="lists">A.4.5.4   Lists</a></h3>
+            <p>A <strong>list</strong> is a two-element tuple whose first
+              element is the first element of the list, and whose second element
+              is a list of the remaining elements, or <tt class="docutils literal"><span
+
+                  class="pre">BOOST_PP_NIL</span></tt> if there are no remaining
+              elements. Lists have access characteristics similar to those of a
+              runtime linked list. Here is a three-element list:</p>
+            <pre class="literal-block">#define LIST3     (<strong>f(12)</strong>, (<strong>a + 1</strong>, (<strong>foo</strong>, BOOST_PP_NIL)))
+</pre>
+            <!-- @ignore() -->
+            <p>The facilities for manipulating lists are all in the library's <tt
+
+                class="docutils literal"><span class="pre">list/</span></tt>
+              subdirectory. Because the operations are a subset of those
+              provided for sequences, we're not going to summarize them here—it
+              should be easy to understand the list operations by reading the
+              documentation on the basis of our coverage of sequences.</p>
+            <p>Like sequences, lists have no fixed upper length bound. Unlike
+              sequences, lists can also be empty. It's rare to need more than 25
+              elements in a preprocessor data structure, and lists tend to be
+              slower to manipulate and harder to read than any of the other
+              structures, so they should normally be used only as a last resort.</p>
+          </div>
+        </div>
+      </div>
+      <div class="section" id="exercise">
+        <h1><a name="exercise">A.5   Exercise</a></h1>
+        <dl class="docutils">
+          <dt>A-0</dt>
+          <dd>Fully preprocessor-ize the <tt class="docutils literal"><span class="pre">tiny</span></tt>
+            type sequence implemented in Chapter 5 so that all boilerplate code
+            is eliminated and the maximum size of a <tt class="docutils literal"><span
+
+                class="pre">tiny</span></tt> sequence can be adjusted by
+            changing <tt class="docutils literal"><span class="pre">TINY_MAX_SIZE</span></tt>.</dd>
+        </dl>
+        <!-- on hold:
+It isn't uncommon to need token-wise arithmetic operations forpurposes other than invoking Preprocessor Library repetitionmacros.  For example, let's write a metafunction to generate
+function types from "signature" type sequences that specify thefunction's return and parameter types::  template <unsigned Size, class Signature>
+  struct to_function_impl;  template <class Signature>  struct to_function
+    : to_function_impl<mpl::size<Signature>::type, Signature>  {};The challenge now is to implement ``to_function_impl``.  For
+``Size == 3``, an appropriate specialization might look like this::  template <class Signature>  struct to_function_impl<3,Signature>
+  {      typedef mpl::begin<Signature>::type i0;      typedef mpl::deref<i0>::type        t0;
+      typedef mpl::next<i0>::type         i1;      typedef mpl::deref<i1>::type        t1;      typedef mpl::next<i1>::type         i2;
+      typedef mpl::deref<i2>::type        t2;      typedef t0 type(t1,t2);  };
+A local macro to generate a single ``to_function_impl``specialization would look something like this:
+.. parsed-literal::  #define to_function_impl_spec(size)                         \\    template <class Signature>                                    \\
+    struct to_function_impl<3,Signature>                          \\    {                                                             \\        typedef mpl::begin<Signature>::type i0;                   \\        typedef mpl::deref<i0>::type        t0;                   \\
+                                                                  \\        BOOST_PP_REPEAT_FROM_TO(1, size, to_function_t, ~)    \\                                                                  \\        typedef t0 type(BOOST_PP_ENUM_SHIFTED_PARAMS(size,t));    \\
+    };  #define to_function_t(z, n, unused)                         \\    typedef mpl::next<BOOST_PP_CAT(i,\ **BOOST_PP_DEC(n)**)>::type      \\
+        BOOST_PP_CAT(i,n);                                        \\                                                                  \\    typedef mpl::deref<BOOST_PP_CAT(i,n)>::type BOOST_PP_CAT(t,n);
+We've used some new library macros above; here is a brief rundown:* ``BOOST_PP_REPEAT_FROM_TO`` is just like ``BOOST_PP_REPEAT``,  except that it accepts an initial repetition index.  Since every
+  function has a return type, we don't need to worry about the case  where ``Size == 0``.* ``BOOST_PP_ENUM_SHIFTED_PARAMS`` is just like
+  ``BOOST_PP_ENUM_PARAMS``, except that repetition indices start  at ``1`` instead of ``0``.* ``BOOST_PP_CAT`` implements token pasting; its two arguments are
+  "glued" together into a single token.  Since this is a  general-purpose macro, it sits in ``cat.hpp`` at the top level of  the library's directory tree. [#paste]_
+.. [#paste] The preprocessor's built-in token-pasting operator,   ``##``, often yields surprising results by taking effect before   its arguments have been expanded.  By contrast, ``BOOST_PP_CAT``   delays concatenation until after its arguments have been fully
+   evaluated.* Finally, though it only performs trivial arithmetic,  ``BOOST_PP_DEC`` plays a crucial role in generating an
+  appropriate prior iterator identifier for our own code in  ``to_function_t``.If we didn't have ``BOOST_PP_REPEAT_FROM_TO`` at our disposal in
+the previous example, we might've had to use ``BOOST_PP_REPEAT``,which always starts iterating at ``0``.  Consequently``to_function_t`` would've been responsible for producing thedeclarations of ``i0`` and ``t0`` as well as those of the other
+nested types.  To manage that, it would need a way to selectdifferent expansions depending on the value of ``n``.In its ``control/`` directory, the Preprocessor Library supplies a
+macro ``BOOST_PP_IF(c,t,f)`` that fulfills a similar role to theone filled by ``mpl::if_``.  Rewriting the example accordingly, weget:
+.. parsed-literal::  #define to_function_impl_spec(size)                         \\    template <class Signature>                                    \\
+    struct to_function_impl<3,Signature>                          \\    {                                                             \\        BOOST_PP_REPEAT_FROM_TO(1, size, to_function_t, ~)    \\                                                                  \\
+        typedef t0 type(BOOST_PP_ENUM_SHIFTED_PARAMS(size,t));    \\    };  #define to_function_t(z, n, unused)                         \\
+    typedef BOOST_PP_IF(                                          \\                n,                                                \\                mpl::next<BOOST_PP_CAT(i,BOOST_PP_DEC(n))>::type, \\                typedef mpl::begin<Signature>::type i0;           \\
+            )                                                     \\        BOOST_PP_CAT(i,n);                                        \\                                                                  \\    typedef mpl::deref<BOOST_PP_CAT(i,n)>::type BOOST_PP_CAT(t,n);
+Although the formulation above will work, it does unnecessary workwhen ``n == 0``, evaluating the "true" branch of the conditionalonly to discard it. -->
+      </div>
+    </div>
+    <hr class="docutils footer" />
+    <div class="footer"> Generated on: 2005-10-17 19:34 UTC. Generated by <a class="reference"
+
+        href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference"
+
+        href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>
+      source. </div>
+  </body>
+</html>
+<!--
+     FILE ARCHIVED ON 19:59:10 Mar 30, 2013 AND RETRIEVED FROM THE     INTERNET ARCHIVE ON 21:06:19 May 19, 2015.     JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
+     ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.     SECTION 108(a)(3)).-->
diff --git a/doc/acknowledgements.html b/doc/acknowledgements.html
new file mode 100644
index 0000000..caa3583
--- /dev/null
+++ b/doc/acknowledgements.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+	<title>acknowledgements.html</title>
+	<link rel="stylesheet" type="text/css" href="styles.css">
+</head>
+<body>
+	<h4>Acknowledgements</h4>
+	<div>
+		The following are a few acknowledgements of people that contributed to
+		or were instrumental in the development of the library by Vesa Karnoven and myself.
+	</div>
+	<h4>Vesa Karvonen</h4>
+	<div>
+		The original idea of passing two extra parameters to REPEAT, which makes it possible to create preprocessor code on top of it,
+		was due to Aleksey Gurtovoy.&nbsp;
+		The invokeable IDENTITY macro was invented by him.&nbsp;
+		He also suggested the name for the library.&nbsp;
+		Many thanks to Aleksey for his insights!
+	</div>
+	<div>
+		Thanks to everyone who participated in the review:&nbsp; David Abrahams, Beman Dawes, Ronald Garcia, Douglas Gregor, Aleksey Gurtovoy, Jeremy Siek, and Daryle Walker.
+	</div>
+	<div>
+		Thanks to Chris Little and Mat Marcus for providing help with MWCW.
+	</div>
+	<div>
+		The original automatic recursion technique, which makes many of the library 
+		primitives easier to use, was invented by Paul Mensonides.
+	</div>
+	<div>
+		The PREPROCESSOR library has been developed by Vesa Karvonen.
+	</div>
+	<h4>Paul Mensonides</h4>
+	<div>
+		Thanks to Vesa Karvonen for the original conception of the library.&nbsp;
+		His work, his help, and his opinions are all much appreciated.
+	</div>
+	<div>
+		Thanks also to David Abrahams for his observations and continued support.
+	</div>
+	<div>
+		The help of several other Boost developers is also greatly appreciated.&nbsp;
+		In particular, thanks to Aleksey Gurtovoy for his suggestions and to Ralf W. Grosse-Kunstleve for providing
+		access to several compilers for testing.
+	</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/bibliography.html b/doc/bibliography.html
new file mode 100644
index 0000000..512e2f4
--- /dev/null
+++ b/doc/bibliography.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+	<title>bibliography.html</title>
+	<link rel="stylesheet" type="text/css" href="styles.css">
+</head>
+<body>
+<h4>Bibliography</h4>
+<table style="margin-left:  20px">
+	<tr>
+		<td><b><a name="stroustrup"></a>[Stroustrup]</b></td>
+		<td>Stroustrup:&nbsp; <i>The Design and Evolution of C++</i>, ISBN 0201543303</td>
+	</tr>
+	<tr>
+		<td><b><a name="czarnecki"></a>[Czarnecki]</b></td>
+		<td>Czarnecki, Eisenecker:&nbsp; <i>Generative Programming</i>, ISBN 0201309777</td>
+	</tr>
+	<tr>
+		<td><b><b><a name="barton"></a>[Barton]</b></td>
+		<td>Barton, Nackman:&nbsp; <i>Scientific and Engineering C++</i>, ISBN 0201533936</td>
+	</tr>
+	<tr>
+		<td><b><a name="mcconnell"></a>[McConnell]</b></td>
+		<td>McConnell:&nbsp; <i>Code Complete</i>, ISBN 1556154844</td>
+	</tr>
+	<tr>
+		<td><b><a name="std"></a>[Std]</b></td>
+		<td>ISO/IEC 14882:1998 <i>Programming Languages - C++</i></td>
+	</tr>
+	<tr>
+		<td><b>[Thompson]</b></td>
+		<td>Thompson:&nbsp; <i>Haskell:&nbsp; The Craft of Functional Programming</i>, ISBN 0201342758</td>
+	</tr>
+	<tr>
+		<td><b>[Okasaki]</b></td>
+		<td>Okasaki:&nbsp; <i>Purely Functional Data Structures</i>, ISBN 0521663504</td>
+	</tr>
+	<tr>
+		<td><b>[Cousineau]</b></td>
+		<td>Cousineau, Mauny:&nbsp; <i>The Functional Approach to Programming</i>, ISBN 0521576814</td>
+	</tr>
+	<tr>
+		<td><b>[Abelson]</b></td>
+		<td>Abelson, Sussman, Sussman:&nbsp; <i>Structure and Interpretation of Computer Programs</i>, ISBN 0521576814</td>
+	</tr>
+</table>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/contents.html b/doc/contents.html
new file mode 100644
index 0000000..ad0c50c
--- /dev/null
+++ b/doc/contents.html
@@ -0,0 +1,38 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>contents.html</title>
+    <link rel="stylesheet" type="text/css" href="styles.css">
+    <style>
+		a, a:link, a:visited { color: black; font-weight: bold; }
+	</style>
+  </head>
+  <body>
+    <h4><a href="AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html"
+        target="_top">Introduction</a></h4>
+    <h4><a href="topics.html">Topics</a></h4>
+    <a href="topics.html">
+    </a>
+    <h4><a href="topics.html"></a><a href="terms.html">Terminology</a></h4>
+    <a href="terms.html">
+    </a>
+    <h4><a href="terms.html"></a><a href="data.html">Data Types</a></h4>
+    <a href="data.html">
+    </a>
+    <h4><a href="data.html"></a><a href="ref.html">Reference</a></h4>
+    <a href="ref.html">
+    </a>
+    <h4><a href="ref.html"></a><a href="headers.html">Headers</a></h4>
+    <a href="headers.html">
+    </a>
+    <h4><a href="headers.html"></a><a href="examples.html">Examples</a></h4>
+    <a href="examples.html">
+    </a>
+    <h4><a href="examples.html"></a><a href="miscellanea.html">Miscellanea</a></h4>
+    <a href="miscellanea.html">
+      <!--
+© Copyright Housemarque Oy 2002© Copyright Paul Mensonides 2002
+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)--> </a>
+  </body>
+</html>
diff --git a/doc/data.html b/doc/data.html
new file mode 100644
index 0000000..39e684e
--- /dev/null
+++ b/doc/data.html
@@ -0,0 +1,27 @@
+<html>
+	<head>
+		<title>data.html</title>
+		<link rel="stylesheet" type="text/css" href="styles.css">
+			<base target="desc">
+	</head>
+	<body>
+		<h4>
+			Data Types <small><a href="contents.html" target="index">[back]</a></small>
+		</h4>
+		<ul>
+			<li><a href="data/arrays.html">arrays</a></li>
+			<li><a href="data/lists.html">lists</a></li>
+			<li><a href="data/sequences.html">sequences</a></li>
+			<li><a href="data/tuples.html">tuples</a></li>
+		</ul>
+
+<!--
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
+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)
+-->
+
+	</body>
+</html>
diff --git a/doc/data/arrays.html b/doc/data/arrays.html
new file mode 100644
index 0000000..d968c4f
--- /dev/null
+++ b/doc/data/arrays.html
@@ -0,0 +1,55 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>arrays.html</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <h4>Arrays</h4>
+    <div> An <i>array</i> is a data structure consisting of a two-element <i>tuple</i>.&nbsp;
+      The first element is the number of elements in the <i>array</i>.&nbsp;
+      The second element is another <i>tuple</i> of the elements in the <i>array</i>.&nbsp;
+      For example, </div>
+    <div class="code"> (<i>3</i>, (<i>a</i>, <i>b</i>, <i>c</i>)) </div>
+    <div> ...is an <i>array</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and
+      <i>c</i>. </div>
+    <div> The primary strength of <i>arrays</i> is that they store their own
+      size.&nbsp; Because of this, access to elements does not require the
+      size.&nbsp; It only requires that an element exists at a certain index. </div>
+    <div> This allows macro parameters to be variable in size and allows data
+      states to change size without the user explicitly keeping track of the
+      size independently.<br>
+      <br>
+      An <i>array </i>can be empty and have no elements. An empty array has a
+      0 size. The notation for an empty array is '(0,())'.<br>
+      <br>
+      <span style="font-style: italic;"> </span></div>
+    <div>With variadic macro support a <i>tuple </i>has all of the
+      functionality as an <i>array</i>, knows its own size, and is easier
+      syntactically to use. Because of that an <i>array</i> should be used, as
+      opposed to a <i>tuple</i>, only if your compiler does not support
+      variadic macros. The only advantage an <i>array </i>has over a <i>tuple
+      </i>is that an <i>array </i>can be empty while a <i>tuple </i>always
+      has at least one element and therefore can never have a size of 0.<br>
+      <br>
+      Elements of an <i>array</i> can be extracted with <b>BOOST_PP_ARRAY_ELEM</b>,
+      an <i>array's</i> size can be extracted with <b>BOOST_PP_ARRAY_SIZE</b>,
+      and an <i>array</i> can be converted to the more primitive <i>tuple</i>
+      data structure with <b>BOOST_PP_ARRAY_DATA</b>. </div>
+    <h4>Primitives</h4>
+    <ul>
+      <li><a href="../ref/array_data.html">BOOST_PP_ARRAY_DATA</a></li>
+      <li><a href="../ref/array_elem.html">BOOST_PP_ARRAY_ELEM</a></li>
+      <li><a href="../ref/array_size.html">BOOST_PP_ARRAY_SIZE</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/data/lists.html b/doc/data/lists.html
new file mode 100644
index 0000000..27abf08
--- /dev/null
+++ b/doc/data/lists.html
@@ -0,0 +1,42 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>lists.html</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <h4>Lists</h4>
+    <div> A <i>list</i> is a simple cons-style list with a head and a
+      tail.&nbsp; The head of a <i>list</i> is an element, and the tail is
+      either another <i>list</i> or <b>BOOST_PP_NIL</b>. For example, </div>
+    <div class="code"> (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>)))
+    </div>
+    <div> ...is a <i>list</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
+    </div>
+    <div> This allows macro parameters to be variable in size and allows data
+      states to change size without the user explicitly keeping track of the
+      size independently.<br>
+      <br>
+      A list can be empty and therefore have a size of 0. An empty list is
+      represented by the notation <b>BOOST_PP_NIL.<br>
+        <br>
+      </b></div>
+    <div> Elements of a <i>list</i> can be extracted with <b>BOOST_PP_LIST_FIRST</b>
+      and <b>BOOST_PP_LIST_REST</b>.&nbsp; </div>
+    <h4>Primitives</h4>
+    <ul>
+      <li><a href="../ref/list_first.html">BOOST_PP_LIST_FIRST</a></li>
+      <li><a href="../ref/list_rest.html">BOOST_PP_LIST_REST</a></li>
+      <li><a href="../ref/nil.html">BOOST_PP_NIL</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/data/sequences.html b/doc/data/sequences.html
new file mode 100644
index 0000000..746deb5
--- /dev/null
+++ b/doc/data/sequences.html
@@ -0,0 +1,60 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>sequences.html</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <h4> Sequences </h4>
+    <div> A <i>sequence</i> (abbreviated to <i>seq</i>) is a group of adjacent
+      parenthesized elements. For example, </div>
+    <div class="code"> (<i>a</i>)(<i>b</i>)(<i>c</i>) </div>
+    <div> ...is a <i>seq</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
+    </div>
+    <div> <i>Sequences</i> are data structures that merge the properties of
+      both <i>lists</i> and <i>tuples</i> with the exception that a <i>seq, </i>like
+      a <i>tuple, </i>cannot be empty.&nbsp; Therefore, an "empty" <i>seq</i>
+      is considered a special case scenario that must be handled separately in
+      C++. </div>
+    <div class="code">
+      <pre>#define SEQ (x)(y)(z)
+#define REVERSE(s, state, elem) (elem) state
+   // append to head                  ^
+
+BOOST_PP_SEQ_FOLD_LEFT(REVERSE, BOOST_PP_EMPTY, SEQ)()
+   //                           #1                  #2
+   // 1) placeholder for "empty" seq
+   // 2) remove placeholder
+
+#define SEQ_B (1)(2)(3)
+#define INC(s, state, elem) state (BOOST_PP_INC(elem))
+   // append to tail             ^
+
+BOOST_PP_SEQ_FOLD_RIGHT(INC, BOOST_PP_SEQ_NIL, SEQ)
+   //                        ^
+   // special placeholder that will be "eaten"
+   // by appending to the tail
+</pre> </div>
+    <div> <i>Sequences</i> are extremely efficient.&nbsp; Element access speed
+      approaches random access--even with <i>seqs</i> of up to <i>256</i>
+      elements.&nbsp; This is because element access (among other things) is
+      implemented iteratively rather than recursively.&nbsp; Therefore, elements
+      can be accessed at extremely high indices even on preprocessors with low
+      maximum expansion depths. </div>
+    <div> Elements of a <i>seq</i> can be extracted with <b>BOOST_PP_SEQ_ELEM</b>.
+    </div>
+    <h4> Primitives </h4>
+    <ul>
+      <li> <a href="../ref/seq_elem.html">BOOST_PP_SEQ_ELEM</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/data/tuples.html b/doc/data/tuples.html
new file mode 100644
index 0000000..7a93c9b
--- /dev/null
+++ b/doc/data/tuples.html
@@ -0,0 +1,42 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>tuples.html</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <h4>Tuples</h4>
+    <div> A <i>tuple</i> is a simple comma-separated list of elements inside
+      parenthesis.&nbsp; For example, </div>
+    <div class="code"> (<i>a</i>, <i>b</i>, <i>c</i>) </div>
+    <div> ...is a <i>tuple</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and
+      <i>c</i>.<br>
+      <br>
+      A <i>tuple </i>cannot be empty. The notation '()' as a <i>tuple </i>is
+      a single element <i>tuple </i>of size 1, where the element is empty. </div>
+    <div> <i>Tuples</i> are fast and easy to use.&nbsp; With variadic macro
+      support it is not necessary to know the size of a <i>tuple; </i>without
+      variadic macro support&nbsp;all access to <i>tuples</i> requires
+      knowledge of its size. Use a <i>tuple </i>instead of an <i>array</i> if
+      your compiler supports variadic macros, since a <i>tuple </i>has all of
+      the functionality as an <i>array </i>and is easier syntactically to use.
+      The only functionality an <i>array </i>has which a <i>tuple </i>does
+      not have is that an <i>array </i>can be empty whereas a <i>tuple </i>cannot
+      be empty.</div>
+    <div> Elements of a <i>tuple</i> can be extracted with <b>BOOST_PP_TUPLE_ELEM</b>.
+    </div>
+    <h4>Primitives</h4>
+    <ul>
+      <li><a href="../ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/examples.html b/doc/examples.html
new file mode 100644
index 0000000..24496da
--- /dev/null
+++ b/doc/examples.html
@@ -0,0 +1,27 @@
+<html>
+<head>
+	<title>topics.html</title>
+	<link rel="stylesheet" type="text/css" href="styles.css">
+	<base target="desc">
+</head>
+<body>
+<h4>Examples <small><a href="contents.html" target="index">[back]</a></small></h4>
+<ul>
+	<li><a href="examples/array_arithmetic.c">array_arithmetic.c</a></i>
+	<li><a href="examples/catch_builtin.cpp">catch_builtin.cpp</a></i>
+	<li><a href="examples/delay.c">delay.c</a></i>
+	<li><a href="examples/duffs_device.c">duffs_device.c</a></i>
+	<li><a href="examples/is_integral.cpp">is_integral.cpp</a></li>
+	<li><a href="examples/linear_fib.c">linear_fib.c</a></li>
+</ul>
+
+<!--
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
+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)
+-->
+
+</body>
+</html>
diff --git a/doc/examples/array_arithmetic.c b/doc/examples/array_arithmetic.c
new file mode 100644
index 0000000..ba1efc6
--- /dev/null
+++ b/doc/examples/array_arithmetic.c
@@ -0,0 +1,196 @@
+# /* Copyright (C) 2002
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# /* This example implements over 2200 functions for 1-dimensional arithmetic
+#  * array manipulation in C.  The idea is to use preprocessor data structures,
+#  * lists, and tuples for storing metainformation to be used for generating
+#  * the actual C code.
+#  *
+#  * Who needs templates anyway? :)
+#  * 
+#  * Compile with any C compiler with a standards conforming preprocessor.
+#  */
+#
+# include <boost/preprocessor/comparison/less.hpp>
+# include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/list/at.hpp>
+# include <boost/preprocessor/list/cat.hpp>
+# include <boost/preprocessor/list/for_each_product.hpp>
+# include <boost/preprocessor/logical/or.hpp>
+# include <boost/preprocessor/tuple/to_list.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+#
+# /* Information about C operators */
+#
+# /* Accessors for the operator datatype. */
+# define OP_SYMBOL(O)      BOOST_PP_TUPLE_ELEM(5, 0, O)
+# define OP_NAME(O)        BOOST_PP_TUPLE_ELEM(5, 1, O)
+# define OP_IS_FLOATING(O) BOOST_PP_TUPLE_ELEM(5, 2, O)
+# define OP_IS_LOGICAL(O)  BOOST_PP_TUPLE_ELEM(5, 3, O)
+# define OP_IS_SHIFT(O)    BOOST_PP_TUPLE_ELEM(5, 4, O)
+#
+# /* List of applicative unary operators. */
+# define APPLICATIVE_UNARY_OPS \
+   BOOST_PP_TUPLE_TO_LIST( \
+      3, \
+      ( \
+         ( ! , logical_not, 1, 1, 0), \
+         ( ~ , bitwise_not, 0, 0, 0), \
+         ( - , neg,         1, 0, 0) \
+      ) \
+   ) \
+   /**/
+#
+# /* List of applicative binary operators. */
+# define APPLICATIVE_BINARY_OPS \
+   BOOST_PP_TUPLE_TO_LIST( \
+      18, \
+      ( \
+         ( *  , mul           ,1 ,0 ,0), \
+         ( /  , div           ,1 ,0 ,0), \
+         ( %  , mod           ,0 ,0 ,0), \
+         ( +  , add           ,1 ,0 ,0), \
+         ( -  , sub           ,1 ,0 ,0), \
+         ( << , shift_left    ,0 ,0 ,1), \
+         ( >> , shift_right   ,0 ,0 ,1), \
+         ( <  , less          ,1 ,1 ,0), \
+         ( <= , less_equal    ,1 ,1 ,0), \
+         ( >= , greater_equal ,1 ,1 ,0), \
+         ( >  , greater       ,1 ,1 ,0), \
+         ( == , equal         ,1 ,1 ,0), \
+         ( != , not_equal     ,1 ,1 ,0), \
+         ( &  , bitwise_and   ,0 ,0 ,0), \
+         ( |  , bitwise_or    ,0 ,0 ,0), \
+         ( ^  , bitwise_xor   ,0 ,0 ,0), \
+         ( && , logical_and   ,1 ,1 ,0), \
+         ( || , logical_or    ,1 ,1 ,0) \
+      ) \
+   ) \
+   /**/
+#
+# /* Information about C built-in types. */
+#
+# /* Accessors for the type datatype. */
+# define TYPE_NAME(T)         BOOST_PP_TUPLE_ELEM(4, 0, T)
+# define TYPE_ABBREVIATION(T) BOOST_PP_TUPLE_ELEM(4, 1, T)
+# define TYPE_IS_FLOATING(T)  BOOST_PP_TUPLE_ELEM(4, 2, T)
+# define TYPE_RANK(T)         BOOST_PP_TUPLE_ELEM(4, 3, T)
+#
+# /* List of C built-in types. */
+# define BUILTIN_TYPES \
+   BOOST_PP_TUPLE_TO_LIST( \
+      12, \
+      ( \
+         ( signed char    ,sc, 0, 1), \
+         ( char           ,ch, 0, 1), \
+         ( unsigned char  ,uc, 0, 1), \
+         ( short          ,ss, 0, 2), \
+         ( unsigned short ,us, 0, 2), \
+         TYPE_INT, \
+         ( unsigned       ,ui, 0, 4), \
+         ( long           ,sl, 0, 5), \
+         ( unsigned long  ,ul, 0, 6), \
+         ( float          ,fl, 1, 7), \
+         ( double         ,db, 1, 8), \
+         ( long double    ,ld, 1, 9) \
+      ) \
+   ) \
+   /**/
+#
+# /* Type int is needed in some type computations. */
+# define TYPE_INT (int, si, 0, 3)
+#
+# /* Type computation macros. */
+# define TYPE_OF_INTEGER_PROMOTION(T) \
+   BOOST_PP_IF( \
+      BOOST_PP_LESS(TYPE_RANK(T), TYPE_RANK(TYPE_INT)), \
+      TYPE_INT, T \
+   ) \
+   /**/
+# define TYPE_OF_USUAL_ARITHMETIC_CONVERSION(L, R) \
+   TYPE_OF_INTEGER_PROMOTION( \
+      BOOST_PP_IF( \
+         BOOST_PP_LESS(TYPE_RANK(L), TYPE_RANK(R)), \
+         R, L \
+      ) \
+   ) \
+   /**/
+# define TYPE_OF_UNARY_OP(O, T) \
+   BOOST_PP_IF( \
+      OP_IS_LOGICAL(O), \
+      TYPE_INT, TYPE_OF_INTEGER_PROMOTION(T) \
+   ) \
+   /**/
+# define TYPE_OF_BINARY_OP(O, L, R) \
+   BOOST_PP_IF( \
+      OP_IS_LOGICAL(O), TYPE_INT, \
+      BOOST_PP_IF( \
+         OP_IS_SHIFT(O), \
+         TYPE_OF_INTEGER_PROMOTION(L), \
+         TYPE_OF_USUAL_ARITHMETIC_CONVERSION(L,R) \
+      ) \
+   ) \
+   /**/
+# define IS_VALID_UNARY_OP_AND_TYPE_COMBINATION(O, T) \
+   BOOST_PP_IF( \
+      TYPE_IS_FLOATING(T), \
+      OP_IS_FLOATING(O), 1 \
+   ) \
+   /**/
+# define IS_VALID_BINARY_OP_AND_TYPE_COMBINATION(O, L, R) \
+   BOOST_PP_IF( \
+      BOOST_PP_OR(TYPE_IS_FLOATING(L), TYPE_IS_FLOATING(R)), \
+      OP_IS_FLOATING(O), 1 \
+   ) \
+   /**/
+#
+# /* Generates code for all unary operators and integral types. */
+# define UNARY_ARRAY_OP(_, OT) \
+   BOOST_PP_IF( \
+      IS_VALID_UNARY_OP_AND_TYPE_COMBINATION OT, \
+      UNARY_ARRAY_OP_CODE, BOOST_PP_TUPLE_EAT(2) \
+   ) OT \
+   /**/
+# define UNARY_ARRAY_OP_CODE(O, T) \
+   void BOOST_PP_LIST_CAT(BOOST_PP_TUPLE_TO_LIST(4, (array_, OP_NAME(O), _, TYPE_ABBREVIATION(T)))) \
+   (const TYPE_NAME(T)* in, TYPE_NAME(TYPE_OF_UNARY_OP(O, T))* out, unsigned n) { \
+      do { \
+         *out++ = OP_SYMBOL(O) *in++; \
+      } while (--n); \
+   } \
+   /**/
+
+BOOST_PP_LIST_FOR_EACH_PRODUCT(UNARY_ARRAY_OP, 2, (APPLICATIVE_UNARY_OPS, BUILTIN_TYPES))
+
+# /* Generates code for all binary operators and integral type pairs. */
+# define BINARY_ARRAY_OP(_, OLR) \
+   BOOST_PP_IF( \
+      IS_VALID_BINARY_OP_AND_TYPE_COMBINATION OLR, \
+      BINARY_ARRAY_OP_CODE, BOOST_PP_TUPLE_EAT(3) \
+   ) OLR \
+   /**/
+# define BINARY_ARRAY_OP_CODE(O, L, R) \
+   void BOOST_PP_LIST_CAT( \
+      BOOST_PP_TUPLE_TO_LIST( \
+         6, (array_, OP_NAME(O), _, TYPE_ABBREVIATION(L), _, TYPE_ABBREVIATION(R)) \
+      ) \
+   )(const TYPE_NAME(L)* lhs_in, const TYPE_NAME(R)* rhs_in, TYPE_NAME(TYPE_OF_BINARY_OP(O, L, R))* out, unsigned n) { \
+      do { \
+         *out++ = *lhs_in OP_SYMBOL(O) *rhs_in; \
+         ++lhs_in; \
+         ++rhs_in; \
+      } while (--n); \
+   } \
+   /**/
+
+BOOST_PP_LIST_FOR_EACH_PRODUCT(BINARY_ARRAY_OP, 3, (APPLICATIVE_BINARY_OPS, BUILTIN_TYPES, BUILTIN_TYPES))
diff --git a/doc/examples/catch_builtin.cpp b/doc/examples/catch_builtin.cpp
new file mode 100644
index 0000000..27a27a0
--- /dev/null
+++ b/doc/examples/catch_builtin.cpp
@@ -0,0 +1,51 @@
+# /* Copyright (C) 2002
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# /* This example demonstrates the usage of lists and BOOST_PP_LIST_FOR_EACH(). */
+#
+# include <iostream>
+# include <typeinfo>
+#
+# include <boost/preprocessor/list/for_each.hpp>
+# include <boost/preprocessor/tuple/to_list.hpp>
+#
+# /* List of built-in types.  (Strictly speaking wchar_t should be on the list.) */
+#
+# define BUILTIN_TYPES \
+   BOOST_PP_TUPLE_TO_LIST( \
+      13, \
+      ( \
+         bool, \
+         char, signed char, unsigned char, \
+         unsigned short, short, \
+         int, unsigned, \
+         long, unsigned long, \
+         float, \
+         double, long double \
+      ) \
+   ) \
+   /**/
+#
+# define CATCH(R, _, T) \
+   catch (T t) { \
+      std::cerr << "Caught an " << typeid(t).name() << " = " << t; \
+   } \
+   /**/
+
+int main() {
+   try {
+      throw 10;
+   }
+   BOOST_PP_LIST_FOR_EACH(CATCH, _, BUILTIN_TYPES)
+   return 0;
+}
diff --git a/doc/examples/delay.c b/doc/examples/delay.c
new file mode 100644
index 0000000..9010d76
--- /dev/null
+++ b/doc/examples/delay.c
@@ -0,0 +1,95 @@
+# /* Copyright (C) 2002
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# /* The time complexity of DELAY(N) is O(2^N).
+#  *
+#  * Handy when recompiles are too fast to take a coffee break. :)
+#  *
+#  * Template metaprogramming can be used for implementing similar
+#  * delays. Unfortunately template instantiation consumes memory,
+#  * therefore compilers usually fail to fully compile long template
+#  * based delays, because they run out of memory.
+#  *
+#  * On many compilers (e.g. g++, MSVC++), this macro takes only a
+#  * small amount of memory to preprocess. On some compilers (e.g.
+#  * MWCW), however, this macro seems to consume huge amounts of
+#  * memory.
+#  */
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/control/while.hpp>
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+#
+# ifndef DELAY_MAX
+# define DELAY_MAX 14
+# endif
+#
+# define DELAY(N) BOOST_PP_TUPLE_ELEM(2, 0, (BOOST_PP_EMPTY, BOOST_PP_WHILE(DELAY_C, BOOST_PP_CAT(DELAY_F, N), BOOST_PP_DEC(N))))()
+#
+# define DELAY_C(D, N) N
+#
+# define DELAY_F0(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F1(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F2(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F3(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F4(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F5(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F6(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F7(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F8(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F9(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F10(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F11(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F12(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F13(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F14(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F15(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F16(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F17(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F18(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F19(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F20(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F21(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F22(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F23(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F24(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F25(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F26(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F27(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F28(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F29(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F30(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F31(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F32(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F33(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F34(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F35(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F36(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F37(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F38(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F39(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F40(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F41(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F42(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F43(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F44(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F45(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F46(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F47(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F48(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F49(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+# define DELAY_F50(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
+
+DELAY(DELAY_MAX)
diff --git a/doc/examples/duffs_device.c b/doc/examples/duffs_device.c
new file mode 100644
index 0000000..a457ec4
--- /dev/null
+++ b/doc/examples/duffs_device.c
@@ -0,0 +1,61 @@
+# /* Copyright (C) 2002
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# /* This example uses the preprocessor library to implement a generalized
+#  * macro for implementing Duff's Device.
+#  *
+#  * This example was inspired by an original generalized macro for
+#  * for implementing Duff's Device written by Joerg Walter.
+#  */
+#
+# include <assert.h>
+#
+# include <boost/preprocessor/repetition/repeat.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+#
+# /* Expands to a Duff's Device. */
+# define DUFFS_DEVICE(UNROLLING_FACTOR, COUNTER_TYPE, N, STATEMENT) \
+   do { \
+      COUNTER_TYPE duffs_device_initial_cnt = (N); \
+      if (duffs_device_initial_cnt > 0) { \
+         COUNTER_TYPE duffs_device_running_cnt = (duffs_device_initial_cnt + (UNROLLING_FACTOR - 1)) / UNROLLING_FACTOR; \
+         switch (duffs_device_initial_cnt % UNROLLING_FACTOR) { \
+            do { \
+               BOOST_PP_REPEAT(UNROLLING_FACTOR, DUFFS_DEVICE_C, (UNROLLING_FACTOR, { STATEMENT })) \
+            } while (--duffs_device_running_cnt); \
+         } \
+      } \
+   } while (0) \
+   /**/
+#
+# define DUFFS_DEVICE_C(Z, I, UNROLLING_FACTOR_STATEMENT) \
+   case (I ? BOOST_PP_TUPLE_ELEM(2, 0, UNROLLING_FACTOR_STATEMENT) - I : 0): \
+      BOOST_PP_TUPLE_ELEM(2, 1, UNROLLING_FACTOR_STATEMENT); \
+   /**/
+#
+# ifndef UNROLLING_FACTOR
+# define UNROLLING_FACTOR 16
+# endif
+#
+# ifndef N
+# define N 1000
+# endif
+
+int main(void) {
+   int i = 0;
+   DUFFS_DEVICE(UNROLLING_FACTOR, int, 0, ++i;);
+   assert(i == 0);
+   DUFFS_DEVICE(UNROLLING_FACTOR, int, N, ++i;);
+   assert(i == N);
+   return 0;
+}
diff --git a/doc/examples/is_integral.cpp b/doc/examples/is_integral.cpp
new file mode 100644
index 0000000..d98be3f
--- /dev/null
+++ b/doc/examples/is_integral.cpp
@@ -0,0 +1,49 @@
+# /* Copyright (C) 2002
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# /* This example demonstrates the usage of preprocessor lists for generating C++ code. */
+#
+# include <boost/preprocessor/facilities/empty.hpp>
+# include <boost/preprocessor/list/at.hpp>
+# include <boost/preprocessor/list/for_each_product.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/to_list.hpp>
+#
+# /* List of integral types.  (Strictly speaking, wchar_t should be on the list.) */
+# define INTEGRAL_TYPES \
+   BOOST_PP_TUPLE_TO_LIST( \
+      9, (char, signed char, unsigned char, short, unsigned short, int, unsigned, long, unsigned long) \
+   ) \
+   /**/
+#
+# /* List of invokeable cv-qualifiers */
+# define CV_QUALIFIERS \
+   BOOST_PP_TUPLE_TO_LIST( \
+      4, (BOOST_PP_EMPTY, const BOOST_PP_EMPTY, volatile BOOST_PP_EMPTY, const volatile BOOST_PP_EMPTY) \
+   ) \
+   /**/
+#
+# /* Template for testing whether a type is an integral type. */
+
+template<class T> struct is_integral {
+   enum { value = false };
+};
+
+# /* Macro for defining a specialization of is_integral<> template. */
+# define IS_INTEGRAL_SPECIALIZATION(R, L) \
+   template<> struct is_integral<BOOST_PP_TUPLE_ELEM(2, 0, L)() BOOST_PP_TUPLE_ELEM(2, 1, L)> { \
+      enum { value = true }; \
+   }; \
+   /**/
+
+BOOST_PP_LIST_FOR_EACH_PRODUCT(IS_INTEGRAL_SPECIALIZATION, 2, (CV_QUALIFIERS, INTEGRAL_TYPES))
diff --git a/doc/examples/linear_fib.c b/doc/examples/linear_fib.c
new file mode 100644
index 0000000..2778003
--- /dev/null
+++ b/doc/examples/linear_fib.c
@@ -0,0 +1,91 @@
+# /* Copyright (C) 2002
+#  * Housemarque Oy
+#  * http://www.housemarque.com
+#  *
+#  * 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)
+#  */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# /* This example shows how BOOST_PP_WHILE() can be used for implementing macros. */
+#
+# include <stdio.h>
+#
+# include <boost/preprocessor/arithmetic/add.hpp>
+# include <boost/preprocessor/arithmetic/sub.hpp>
+# include <boost/preprocessor/comparison/less_equal.hpp>
+# include <boost/preprocessor/control/while.hpp>
+# include <boost/preprocessor/list/adt.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+#
+# /* First consider the following C implementation of Fibonacci. */
+
+typedef struct linear_fib_state {
+   int a0, a1, n;
+} linear_fib_state;
+
+static int linear_fib_c(linear_fib_state p) {
+   return p.n;
+}
+
+static linear_fib_state linear_fib_f(linear_fib_state p) {
+   linear_fib_state r = { p.a1, p.a0 + p.a1, p.n - 1 };
+   return r;
+}
+
+static int linear_fib(int n) {
+   linear_fib_state p = { 0, 1, n };
+   while (linear_fib_c(p)) {
+      p = linear_fib_f(p);
+   }
+   return p.a0;
+}
+
+# /* Then consider the following preprocessor implementation of Fibonacci. */
+#
+# define LINEAR_FIB(n) LINEAR_FIB_D(1, n)
+# /* Since the macro is implemented using BOOST_PP_WHILE, the actual
+#  * implementation takes a depth as a parameters so that it can be called
+#  * inside a BOOST_PP_WHILE.  The above easy-to-use version simply uses 1
+#  * as the depth and cannot be called inside a BOOST_PP_WHILE.
+#  */
+#
+# define LINEAR_FIB_D(d, n) \
+   BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_WHILE_ ## d(LINEAR_FIB_C, LINEAR_FIB_F, (0, 1, n)))
+# /*                   ^^^^                 ^^^^^           ^^            ^^   ^^^^^^^
+#  *                    #1                   #2             #3            #3     #4
+#  *
+#  * 1) The state is a 3-element tuple.  After the iteration is finished, the first
+#  *    element of the tuple is the result.
+#  *
+#  * 2) The WHILE primitive is "invoked" directly.  BOOST_PP_WHILE(D, ...)
+#  *    can't be used because it would not be expanded by the preprocessor.
+#  *
+#  * 3) ???_C is the condition and ???_F is the iteration macro.
+#  */
+#
+# define LINEAR_FIB_C(d, p) \
+   /* p.n */ BOOST_PP_TUPLE_ELEM(3, 2, p) \
+   /**/
+#
+# define LINEAR_FIB_F(d, p) \
+   ( \
+      /* p.a1 */ BOOST_PP_TUPLE_ELEM(3, 1, p), \
+      /* p.a0 + p.a1 */ BOOST_PP_ADD_D(d, BOOST_PP_TUPLE_ELEM(3, 0, p), BOOST_PP_TUPLE_ELEM(3, 1, p)), \
+                        /*          ^^ ^ \
+                         * BOOST_PP_ADD() uses BOOST_PP_WHILE().  Therefore we \
+                         * pass the recursion depth explicitly to BOOST_PP_ADD_D(). \
+                         */ \
+      /* p.n - 1 */ BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(3, 2, p)) \
+   ) \
+   /**/
+
+int main() {
+   printf("linear_fib(10) = %d\n", linear_fib(10));
+   printf("LINEAR_FIB(10) = %d\n", LINEAR_FIB(10));
+   return 0;
+}
diff --git a/doc/headers.html b/doc/headers.html
new file mode 100644
index 0000000..58f33db
--- /dev/null
+++ b/doc/headers.html
@@ -0,0 +1,249 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>headers.html</title>
+    <link rel="stylesheet" type="text/css" href="styles.css">
+    <base target="desc">
+    <style>
+				.ps { margin-left: 30px; }
+  </style>
+  </head>
+  <body>
+    <h4> Headers <small><a href="contents.html" target="index">[back]</a></small>
+    </h4>
+    <ul>
+      <li>../</li>
+      <li class="ps"> <a href="headers/preprocessor.html">preprocessor.hpp</a></li>
+      <li><a href="headers/arithmetic.html">arithmetic.hpp</a></li>
+      <li>arithmetic/</li>
+      <li class="ps"><a href="headers/arithmetic/add.html">add.hpp</a></li>
+      <li class="ps"><a href="headers/arithmetic/dec.html">dec.hpp</a></li>
+      <li class="ps"><a href="headers/arithmetic/div.html">div.hpp</a></li>
+      <li class="ps"><a href="headers/arithmetic/inc.html">inc.hpp</a></li>
+      <li class="ps"><a href="headers/arithmetic/mod.html">mod.hpp</a></li>
+      <li class="ps"><a href="headers/arithmetic/mul.html">mul.hpp</a></li>
+      <li class="ps"><a href="headers/arithmetic/sub.html">sub.hpp</a></li>
+      <li><a href="headers/array.html">array.hpp</a></li>
+      <li>array/</li>
+      <li class="ps"><a href="headers/array/data.html">data.hpp</a></li>
+      <li class="ps"><a href="headers/array/elem.html">elem.hpp</a></li>
+      <li class="ps"><a href="headers/array/enum.html">enum.hpp</a></li>
+      <li class="ps"><a href="headers/array/insert.html">insert.hpp</a></li>
+      <li class="ps"><a href="headers/array/pop_back.html">pop_back.hpp</a></li>
+      <li class="ps"><a href="headers/array/pop_front.html">pop_front.hpp</a></li>
+      <li class="ps"><a href="headers/array/push_back.html">push_back.hpp</a></li>
+      <li class="ps"><a href="headers/array/push_front.html">push_front.hpp</a></li>
+      <li class="ps"><a href="headers/array/remove.html">remove.hpp</a></li>
+      <li class="ps"><a href="headers/array/replace.html">replace.hpp</a></li>
+      <li class="ps"><a href="headers/array/reverse.html">reverse.hpp</a></li>
+      <li class="ps"><a href="headers/array/size.html">size.hpp</a></li>
+      <li class="ps"><a href="headers/array/to_list.html">to_list.hpp</a></li>
+      <li class="ps"><a href="headers/array/to_seq.html">to_seq.hpp</a></li>
+      <li class="ps"><a href="headers/array/to_tuple.html">to_tuple.hpp</a></li>
+      <li><a href="headers/assert_msg.html">assert_msg.hpp*</a></li>
+      <li><a href="headers/cat.html">cat.hpp</a></li>
+      <li><a href="headers/comma.html">comma.hpp*</a></li>
+      <li><a href="headers/comma_if.html">comma_if.hpp*</a></li>
+      <li><a href="headers/comparison.html">comparison.hpp</a></li>
+      <li>comparison/</li>
+      <li class="ps"><a href="headers/comparison/equal.html">equal.hpp</a></li>
+      <li class="ps"><a href="headers/comparison/greater.html">greater.hpp</a></li>
+      <li class="ps"><a href="headers/comparison/greater_equal.html">greater_equal.hpp</a></li>
+      <li class="ps"><a href="headers/comparison/less.html">less.hpp</a></li>
+      <li class="ps"><a href="headers/comparison/less_equal.html">less_equal.hpp</a></li>
+      <li class="ps"><a href="headers/comparison/not_equal.html">not_equal.hpp</a></li>
+      <li>config/</li>
+      <li class="ps"><a href="headers/config/limits.html">limits.hpp</a></li>
+      <li class="ps"><a href="headers/config/variadics.html">config.hpp</a></li>
+      <li><a href="headers/control.html">control.hpp</a></li>
+      <li>control/</li>
+      <li class="ps"><a href="headers/control/deduce_d.html">deduce_d.hpp</a></li>
+      <li class="ps"><a href="headers/control/expr_if.html">expr_if.hpp</a></li>
+      <li class="ps"><a href="headers/control/expr_iif.html">expr_iif.hpp</a></li>
+      <li class="ps"><a href="headers/control/if.html">if.hpp</a></li>
+      <li class="ps"><a href="headers/control/iif.html">iif.hpp</a></li>
+      <li class="ps"><a href="headers/control/while.html">while.hpp</a></li>
+      <li><a href="headers/debug.html">debug.hpp</a></li>
+      <li>debug/</li>
+      <li class="ps"><a href="headers/debug/assert.html">assert.hpp</a></li>
+      <li class="ps"><a href="headers/debug/line.html">line.hpp</a></li>
+      <li><a href="headers/dec.html">dec.hpp*</a></li>
+      <li><a href="headers/empty.html">empty.hpp*</a></li>
+      <li><a href="headers/enum.html">enum.hpp*</a></li>
+      <li><a href="headers/enum_params.html">enum_params.hpp*</a></li>
+      <li><a href="headers/epwad.html">enum_params_with_a_default.hpp*</a></li>
+      <li><a href="headers/epwd.html">enum_params_with_defaults.hpp*</a></li>
+      <li><a href="headers/enum_shifted.html">enum_shifted.hpp*</a></li>
+      <li><a href="headers/enum_shifted_params.html">enum_shifted_params.hpp*</a></li>
+      <li><a href="headers/expand.html">expand.hpp*</a></li>
+      <li><a href="headers/expr_if.html">expr_if.hpp*</a></li>
+      <li><a href="headers/facilities.html">facilities.hpp</a></li>
+      <li>facilities/</li>
+      <li class="ps"><a href="headers/facilities/apply.html">apply.hpp</a></li>
+      <li class="ps"><a href="headers/facilities/empty.html">empty.hpp</a></li>
+      <li class="ps"><a href="headers/facilities/expand.html">expand.hpp</a></li>
+      <li class="ps"><a href="headers/facilities/identity.html">identity.hpp</a></li>
+      <li class="ps"><a href="headers/facilities/intercept.html">intercept.hpp</a></li>
+      <li class="ps"><a href="headers/facilities/overload.html">overload.hpp</a>
+        <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="headers/for.html">for.hpp*</a></li>
+      <li><a href="headers/identity.html">identity.hpp*</a></li>
+      <li><a href="headers/if.html">if.hpp*</a></li>
+      <li><a href="headers/inc.html">inc.hpp*</a></li>
+      <li><a href="headers/iterate.html">iterate.hpp*</a></li>
+      <li><a href="headers/iteration.html">iteration.hpp</a></li>
+      <li>iteration/</li>
+      <li class="ps"><a href="headers/iteration/iterate.html">iterate.hpp</a></li>
+      <li class="ps"><a href="headers/iteration/local.html">local.hpp</a></li>
+      <li class="ps"><a href="headers/iteration/self.html">self.hpp</a></li>
+      <li><a href="headers/library.html">library.hpp</a></li>
+      <li><a href="headers/limits.html">limits.hpp*</a></li>
+      <li><a href="headers/list.html">list.hpp</a></li>
+      <li>list/</li>
+      <li class="ps"><a href="headers/list/adt.html">adt.hpp</a></li>
+      <li class="ps"><a href="headers/list/append.html">append.hpp</a></li>
+      <li class="ps"><a href="headers/list/at.html">at.hpp</a></li>
+      <li class="ps"><a href="headers/list/cat.html">cat.hpp</a></li>
+      <li class="ps"><a href="headers/list/enum.html">enum.hpp</a></li>
+      <li class="ps"><a href="headers/list/filter.html">filter.hpp</a></li>
+      <li class="ps"><a href="headers/list/first_n.html">first_n.hpp</a></li>
+      <li class="ps"><a href="headers/list/fold_left.html">fold_left.hpp</a></li>
+      <li class="ps"><a href="headers/list/fold_right.html">fold_right.hpp</a></li>
+      <li class="ps"><a href="headers/list/for_each.html">for_each.hpp</a></li>
+      <li class="ps"><a href="headers/list/for_each_i.html">for_each_i.hpp</a></li>
+      <li class="ps"><a href="headers/list/for_each_product.html">for_each_product.hpp</a></li>
+      <li class="ps"><a href="headers/list/rest_n.html">rest_n.hpp</a></li>
+      <li class="ps"><a href="headers/list/reverse.html">reverse.hpp</a></li>
+      <li class="ps"><a href="headers/list/size.html">size.hpp</a></li>
+      <li class="ps"><a href="headers/list/to_array.html">to_array.hpp</a></li>
+      <li class="ps"><a href="headers/list/to_seq.html">to_seq.hpp</a></li>
+      <li class="ps"><a href="headers/list/to_tuple.html">to_tuple.hpp</a></li>
+      <li class="ps"><a href="headers/list/transform.html">transform.hpp</a></li>
+      <li><a href="headers/logical.html">logical.hpp</a></li>
+      <li>logical/</li>
+      <li class="ps"><a href="headers/logical/and.html">and.hpp</a></li>
+      <li class="ps"><a href="headers/logical/bitand.html">bitand.hpp</a></li>
+      <li class="ps"><a href="headers/logical/bitnor.html">bitnor.hpp</a></li>
+      <li class="ps"><a href="headers/logical/bitor.html">bitor.hpp</a></li>
+      <li class="ps"><a href="headers/logical/bitxor.html">bitxor.hpp</a></li>
+      <li class="ps"><a href="headers/logical/bool.html">bool.hpp</a></li>
+      <li class="ps"><a href="headers/logical/compl.html">compl.hpp</a></li>
+      <li class="ps"><a href="headers/logical/nor.html">nor.hpp</a></li>
+      <li class="ps"><a href="headers/logical/not.html">not.hpp</a></li>
+      <li class="ps"><a href="headers/logical/or.html">or.hpp</a></li>
+      <li class="ps"><a href="headers/logical/xor.html">xor.hpp</a></li>
+      <li><a href="headers/max.html">max.hpp*</a></li>
+      <li><a href="headers/min.html">min.hpp*</a></li>
+      <li><a href="headers/punctuation.html">punctuation.hpp</a></li>
+      <li>punctuation/</li>
+      <li class="ps"><a href="headers/punctuation/comma.html">comma.hpp</a></li>
+      <li class="ps"><a href="headers/punctuation/comma_if.html">comma_if.hpp</a></li>
+      <li class="ps"><a href="headers/punctuation/is_begin_parens.html">is_begin_parens.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/punctuation/paren.html">paren.hpp</a></li>
+      <li class="ps"><a href="headers/punctuation/paren_if.html">paren_if.hpp</a></li>
+      <li class="ps"><a href="headers/punctuation/remove_parens.html">remove_parens.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="headers/repeat.html">repeat.hpp*</a></li>
+      <li><a href="headers/repeat_2nd.html">repeat_2nd.hpp*</a></li>
+      <li><a href="headers/repeat_3rd.html">repeat_3rd.hpp*</a></li>
+      <li><a href="headers/repeat_from_to.html">repeat_from_to.hpp*</a></li>
+      <li><a href="headers/repeat_from_to_2nd.html">repeat_from_to_2nd.hpp*</a></li>
+      <li><a href="headers/repeat_from_to_3rd.html">repeat_from_to_3rd.hpp*</a></li>
+      <li><a href="headers/repetition.html">repetition.hpp</a></li>
+      <li>repetition/</li>
+      <li class="ps"><a href="headers/repetition/deduce_r.html">deduce_r.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/deduce_z.html">deduce_z.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/enum.html">enum.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/enum_binary_params.html">enum_binary_params.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/enum_params.html">enum_params.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/epwad.html">enum_params_with_a_default.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/epwd.html">enum_params_with_defaults.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/esbp.html">enum_shifted_binary_params.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/enum_shifted_params.html">enum_shifted_params.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/enum_shifted.html">enum_shifted.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/enum_trailing.html">enum_trailing.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/etbp.html">enum_trailing_binary_params.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/enum_trailing_params.html">enum_trailing_params.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/for.html">for.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/repeat.html">repeat.hpp</a></li>
+      <li class="ps"><a href="headers/repetition/repeat_from_to.html">repeat_from_to.hpp</a></li>
+      <li><a href="headers/selection.html">selection.hpp</a></li>
+      <li>selection/</li>
+      <li class="ps"><a href="headers/selection/max.html">max.hpp</a></li>
+      <li class="ps"><a href="headers/selection/min.html">min.hpp</a></li>
+      <li><a href="headers/seq.html">seq.hpp</a></li>
+      <li>seq/</li>
+      <li class="ps"><a href="headers/seq/cat.html">cat.hpp</a></li>
+      <li class="ps"><a href="headers/seq/elem.html">elem.hpp</a></li>
+      <li class="ps"><a href="headers/seq/enum.html">enum.hpp</a></li>
+      <li class="ps"><a href="headers/seq/filter.html">filter.hpp</a></li>
+      <li class="ps"><a href="headers/seq/first_n.html">first_n.hpp</a></li>
+      <li class="ps"><a href="headers/seq/fold_left.html">fold_left.hpp</a></li>
+      <li class="ps"><a href="headers/seq/fold_right.html">fold_right.hpp</a></li>
+      <li class="ps"><a href="headers/seq/for_each.html">for_each.hpp</a></li>
+      <li class="ps"><a href="headers/seq/for_each_i.html">for_each_i.hpp</a></li>
+      <li class="ps"><a href="headers/seq/for_each_product.html">for_each_product.hpp</a></li>
+      <li class="ps"><a href="headers/seq/insert.html">insert.hpp</a></li>
+      <li class="ps"><a href="headers/seq/pop_back.html">pop_back.hpp</a></li>
+      <li class="ps"><a href="headers/seq/pop_front.html">pop_front.hpp</a></li>
+      <li class="ps"><a href="headers/seq/push_back.html">push_back.hpp</a></li>
+      <li class="ps"><a href="headers/seq/push_front.html">push_front.hpp</a></li>
+      <li class="ps"><a href="headers/seq/remove.html">remove.hpp</a></li>
+      <li class="ps"><a href="headers/seq/replace.html">replace.hpp</a></li>
+      <li class="ps"><a href="headers/seq/rest_n.html">rest_n.hpp</a></li>
+      <li class="ps"><a href="headers/seq/reverse.html">reverse.hpp</a></li>
+      <li class="ps"><a href="headers/seq/seq.html">seq.hpp</a></li>
+      <li class="ps"><a href="headers/seq/size.html">size.hpp</a></li>
+      <li class="ps"><a href="headers/seq/subseq.html">subseq.hpp</a></li>
+      <li class="ps"><a href="headers/seq/to_array.html">to_array.hpp</a></li>
+      <li class="ps"><a href="headers/seq/to_list.html">to_list.hpp</a></li>
+      <li class="ps"><a href="headers/seq/to_tuple.html">to_tuple.hpp</a></li>
+      <li class="ps"><a href="headers/seq/transform.html">transform.hpp</a></li>
+      <li class="ps"><a href="headers/seq/variadic_seq_to_seq.html">variadic_seq_to_seq.hpp</a></li>
+      <li><a href="headers/slot.html">slot.hpp</a></li>
+      <li>slot/</li>
+      <li class="ps"><a href="headers/slot/counter.html">counter.hpp</a></li>
+      <li class="ps"><a href="headers/slot/slot.html">slot.hpp</a></li>
+      <li><a href="headers/tuple.html">tuple.hpp</a></li>
+      <li>tuple/</li>
+      <li class="ps"><a href="headers/tuple/eat.html">eat.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/elem.html">elem.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/enum.html">enum.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/insert.html">insert.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/pop_back.html">pop_back.hpp</a> <a
+          href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/pop_front.html">pop_front.hpp</a> <a
+          href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/push_back.html">push_back.hpp</a> <a
+          href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/push_front.html">push_front.hpp</a>
+        <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/rem.html">rem.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/remove.html">remove.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/replace.html">replace.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/reverse.html">reverse.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/size.html">size.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/to_array.html">to_array.hpp</a> <a
+          href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/to_list.html">to_list.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/tuple/to_seq.html">to_seq.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="headers/stringize.html">stringize.hpp</a></li>
+      <li><a href="headers/variadic.html">variadic.hpp</a></li>
+      <li>variadic/</li>
+      <li class="ps"><a href="headers/variadic/elem.html">elem.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/variadic/size.html">size.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/variadic/to_array.html">to_array.hpp</a> <a
+          href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/variadic/to_list.html">to_list.hpp</a> <a
+          href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/variadic/to_seq.html">to_seq.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li class="ps"><a href="headers/variadic/to_tuple.html">to_tuple.hpp</a> <a
+          href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="headers/while.html">while.hpp*</a></li>
+      <li><a href="headers/wstringize.html">wstringize.hpp</a></li>
+    </ul>
+    <!--
+© Copyright Housemarque Oy 2002© Copyright Paul Mensonides 2002
+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)-->
+  </body>
+</html>
diff --git a/doc/headers/arithmetic.html b/doc/headers/arithmetic.html
new file mode 100644
index 0000000..8e58a77
--- /dev/null
+++ b/doc/headers/arithmetic.html
@@ -0,0 +1,36 @@
+<html>
+<head>
+	<title>arithmetic.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>arithmetic.hpp</b> includes the headers in the <i>arithmetic</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/arithmetic.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="arithmetic/add.html">&lt;boost/preprocessor/arithmetic/add.hpp&gt;</a></li>
+			<li><a href="arithmetic/dec.html">&lt;boost/preprocessor/arithmetic/dec.hpp&gt;</a></li>
+			<li><a href="arithmetic/div.html">&lt;boost/preprocessor/arithmetic/div.hpp&gt;</a></li>
+			<li><a href="arithmetic/inc.html">&lt;boost/preprocessor/arithmetic/inc.hpp&gt;</a></li>
+			<li><a href="arithmetic/mod.html">&lt;boost/preprocessor/arithmetic/mod.hpp&gt;</a></li>
+			<li><a href="arithmetic/mul.html">&lt;boost/preprocessor/arithmetic/mul.hpp&gt;</a></li>
+			<li><a href="arithmetic/sub.html">&lt;boost/preprocessor/arithmetic/sub.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/arithmetic/add.html b/doc/headers/arithmetic/add.html
new file mode 100644
index 0000000..fd0dbcf
--- /dev/null
+++ b/doc/headers/arithmetic/add.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>arithmetic/add.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>arithmetic/add.hpp</b> header defines macros for addition.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/arithmetic/add.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/add.html">BOOST_PP_ADD</a></li>
+			<li><a href="../../ref/add_d.html">BOOST_PP_ADD_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/arithmetic/dec.html b/doc/headers/arithmetic/dec.html
new file mode 100644
index 0000000..1839c81
--- /dev/null
+++ b/doc/headers/arithmetic/dec.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>arithmetic/dec.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>arithmetic/dec.hpp</b> header defines a decrementation macro.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/arithmetic/dec.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/dec.html">BOOST_PP_DEC</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/arithmetic/div.html b/doc/headers/arithmetic/div.html
new file mode 100644
index 0000000..9484f32
--- /dev/null
+++ b/doc/headers/arithmetic/div.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>arithmetic/div.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>arithmetic/div.hpp</b> header defines macros for division.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/arithmetic/div.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/div.html">BOOST_PP_DIV</a></li>
+			<li><a href="../../ref/div_d.html">BOOST_PP_DIV_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/arithmetic/inc.html b/doc/headers/arithmetic/inc.html
new file mode 100644
index 0000000..1326a79
--- /dev/null
+++ b/doc/headers/arithmetic/inc.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>arithmetic/inc.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>arithmetic/inc.hpp</b> header defines an incrementation macro.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/arithmetic/inc.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/inc.html">BOOST_PP_INC</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/arithmetic/mod.html b/doc/headers/arithmetic/mod.html
new file mode 100644
index 0000000..5a07b1e
--- /dev/null
+++ b/doc/headers/arithmetic/mod.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>arithmetic/mod.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>arithmetic/mod.hpp</b> header defines macros for modulus.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/arithmetic/mod.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/mod.html">BOOST_PP_MOD</a></li>
+			<li><a href="../../ref/mod_d.html">BOOST_PP_MOD_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/arithmetic/mul.html b/doc/headers/arithmetic/mul.html
new file mode 100644
index 0000000..52daf21
--- /dev/null
+++ b/doc/headers/arithmetic/mul.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>arithmetic/mul.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>arithmetic/mul.hpp</b> header defines macros for multiplication.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/arithmetic/mul.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/mul.html">BOOST_PP_MUL</a></li>
+			<li><a href="../../ref/mul_d.html">BOOST_PP_MUL_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/arithmetic/sub.html b/doc/headers/arithmetic/sub.html
new file mode 100644
index 0000000..9b803f8
--- /dev/null
+++ b/doc/headers/arithmetic/sub.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>arithmetic/sub.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>arithmetic/sub.hpp</b> header defines macros for subtraction.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/arithmetic/sub.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/sub.html">BOOST_PP_SUB</a></li>
+			<li><a href="../../ref/sub_d.html">BOOST_PP_SUB_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array.html b/doc/headers/array.html
new file mode 100644
index 0000000..a6d51f4
--- /dev/null
+++ b/doc/headers/array.html
@@ -0,0 +1,43 @@
+<html>
+<head>
+    <title>array.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left: 0px;">
+		The <b>array.hpp</b> includes the headers in the <i>array</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="array/data.html">&lt;boost/preprocessor/array/data.hpp&gt;</a></li>
+			<li><a href="array/elem.html">&lt;boost/preprocessor/array/elem.hpp&gt;</a></li>
+            <li><a href="array/enum.html">&lt;boost/preprocessor/array/enum.hpp&gt;</a></li>
+			<li><a href="array/insert.html">&lt;boost/preprocessor/array/insert.hpp&gt;</a></li>
+			<li><a href="array/pop_back.html">&lt;boost/preprocessor/array/pop_back.hpp&gt;</a></li>
+			<li><a href="array/pop_front.html">&lt;boost/preprocessor/array/pop_front.hpp&gt;</a></li>
+			<li><a href="array/push_back.html">&lt;boost/preprocessor/array/push_back.hpp&gt;</a></li>
+			<li><a href="array/push_front.html">&lt;boost/preprocessor/array/push_front.hpp&gt;</a></li>
+			<li><a href="array/remove.html">&lt;boost/preprocessor/array/remove.hpp&gt;</a></li>
+			<li><a href="array/replace.html">&lt;boost/preprocessor/array/replace.hpp&gt;</a></li>
+			<li><a href="array/reverse.html">&lt;boost/preprocessor/array/reverse.hpp&gt;</a></li>
+			<li><a href="array/size.html">&lt;boost/preprocessor/array/size.hpp&gt;</a></li>
+            <li><a href="array/to_list.html">&lt;boost/preprocessor/array/to_list.hpp&gt;</a></li>
+            <li><a href="array/to_seq.html">&lt;boost/preprocessor/array/to_seq.hpp&gt;</a></li>
+            <li><a href="array/to_tuple.html">&lt;boost/preprocessor/array/to_tuple.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/data.html b/doc/headers/array/data.html
new file mode 100644
index 0000000..fe84607
--- /dev/null
+++ b/doc/headers/array/data.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>array/data.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/data.hpp</b> header defines a macro to extract the <i>tuple</i> data from an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/data.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_data.html">BOOST_PP_ARRAY_DATA</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/elem.html b/doc/headers/array/elem.html
new file mode 100644
index 0000000..1897c7a
--- /dev/null
+++ b/doc/headers/array/elem.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>array/elem.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/elem.hpp</b> header defines a macro to extract elements from an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/elem.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_elem.html">BOOST_PP_ARRAY_ELEM</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/enum.html b/doc/headers/array/enum.html
new file mode 100644
index 0000000..5756a1b
--- /dev/null
+++ b/doc/headers/array/enum.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+  <title>array/enum.hpp</title>
+  <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>array/enum.hpp</b> header
+defines a macro to convert an <i>array</i> to its comma-separated elements. </div>
+<h4>Usage</h4>
+<div class="code"> #include <b>&lt;boost/preprocessor/array/enum.hpp&gt;</b>
+</div>
+<h4>Contents</h4>
+<ul>
+  <li><a href="../../ref/array_enum.html">BOOST_PP_ARRAY_ENUM</a></li>
+</ul>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/headers/array/insert.html b/doc/headers/array/insert.html
new file mode 100644
index 0000000..7b5b28e
--- /dev/null
+++ b/doc/headers/array/insert.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>array/insert.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/insert.hpp</b> header defines macros to insert an element into an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/insert.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_insert.html">BOOST_PP_ARRAY_INSERT</a></li>
+			<li><a href="../../ref/array_insert_d.html">BOOST_PP_ARRAY_INSERT_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/pop_back.html b/doc/headers/array/pop_back.html
new file mode 100644
index 0000000..dce7389
--- /dev/null
+++ b/doc/headers/array/pop_back.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>array/pop_back.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/pop_back.hpp</b> header defines macros to pop an element from the end of an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/pop_back.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_pop_back.html">BOOST_PP_ARRAY_POP_BACK</a></li>
+			<li><a href="../../ref/array_pop_back_z.html">BOOST_PP_ARRAY_POP_BACK_Z</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/pop_front.html b/doc/headers/array/pop_front.html
new file mode 100644
index 0000000..0b752d4
--- /dev/null
+++ b/doc/headers/array/pop_front.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>array/pop_front.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/pop_front.hpp</b> header defines macros to pop an element from the beginning of an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/pop_front.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_pop_front.html">BOOST_PP_ARRAY_POP_FRONT</a></li>
+			<li><a href="../../ref/array_pop_front_z.html">BOOST_PP_ARRAY_POP_FRONT_Z</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/push_back.html b/doc/headers/array/push_back.html
new file mode 100644
index 0000000..6931fad
--- /dev/null
+++ b/doc/headers/array/push_back.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>array/push_back.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/push_back.hpp</b> header defines a macro to append an element to the end of an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/push_back.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_push_back.html">BOOST_PP_ARRAY_PUSH_BACK</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/push_front.html b/doc/headers/array/push_front.html
new file mode 100644
index 0000000..be2c62f
--- /dev/null
+++ b/doc/headers/array/push_front.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>array/push_front.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/push_front.hpp</b> header defines a macro to append an element to the beginning of an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/push_front.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_push_front.html">BOOST_PP_ARRAY_PUSH_FRONT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/remove.html b/doc/headers/array/remove.html
new file mode 100644
index 0000000..518b2ee
--- /dev/null
+++ b/doc/headers/array/remove.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>array/remove.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/remove.hpp</b> header defines macros to remove an element from an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/remove.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_remove.html">BOOST_PP_ARRAY_REMOVE</a></li>
+			<li><a href="../../ref/array_remove_d.html">BOOST_PP_ARRAY_REMOVE_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/replace.html b/doc/headers/array/replace.html
new file mode 100644
index 0000000..524a68e
--- /dev/null
+++ b/doc/headers/array/replace.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>array/replace.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/replace.hpp</b> header defines macros to replace an element in an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/replace.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_replace.html">BOOST_PP_ARRAY_REPLACE</a></li>
+			<li><a href="../../ref/array_replace_d.html">BOOST_PP_ARRAY_REPLACE_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/reverse.html b/doc/headers/array/reverse.html
new file mode 100644
index 0000000..ec4fae2
--- /dev/null
+++ b/doc/headers/array/reverse.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>array/reverse.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/reverse.hpp</b> header defines macros to reverse the elements in an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/reverse.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_reverse.html">BOOST_PP_ARRAY_REVERSE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/size.html b/doc/headers/array/size.html
new file mode 100644
index 0000000..3a4be54
--- /dev/null
+++ b/doc/headers/array/size.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>array/size.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>array/size.hpp</b> header defines a macro that extracts the size of an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/array/size.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/array_size.html">BOOST_PP_ARRAY_SIZE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/array/to_list.html b/doc/headers/array/to_list.html
new file mode 100644
index 0000000..0c2d19a
--- /dev/null
+++ b/doc/headers/array/to_list.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+  <title>array/to_list.hpp</title>
+  <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>array/to_list.hpp</b> header
+defines a macro that converts an <i>array</i> to a <i>list</i>. </div>
+<h4>Usage</h4>
+<div class="code"> #include <b>&lt;boost/preprocessor/array/to_list.hpp&gt;</b>
+</div>
+<h4>Contents</h4>
+<ul>
+  <li><a href="../../ref/array_to_list.html">BOOST_PP_ARRAY_TO_LIST</a></li>
+</ul>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/headers/array/to_seq.html b/doc/headers/array/to_seq.html
new file mode 100644
index 0000000..b3ee7ee
--- /dev/null
+++ b/doc/headers/array/to_seq.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+  <title>array/to_seq.hpp</title>
+  <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>array/to_seq.hpp</b> header
+defines a macro that converts an <i>array</i> to a <i>seq.</i> </div>
+<h4>Usage</h4>
+<div class="code"> #include <b>&lt;boost/preprocessor/array/to_seq.hpp&gt;</b>
+</div>
+<h4>Contents</h4>
+<ul>
+  <li><a href="../../ref/array_to_seq.html">BOOST_PP_ARRAY_TO_SEQ</a></li>
+</ul>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/headers/array/to_tuple.html b/doc/headers/array/to_tuple.html
new file mode 100644
index 0000000..e903a68
--- /dev/null
+++ b/doc/headers/array/to_tuple.html
@@ -0,0 +1,24 @@
+<html>
+  <head>
+  <title>array/to_tuple.hpp</title>
+  <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>array/to_tuple.hpp</b> header
+defines a macro that converts an <i>array </i>to a <i>tuple</i>. </div>
+<h4>Usage</h4>
+<div class="code"> #include <b>&lt;boost/preprocessor/array/to_tuple.hpp&gt;</b>
+</div>
+<h4>Contents</h4>
+<ul>
+  <li><a href="../../ref/array_to_tuple.html">BOOST_PP_ARRAY_TO_TUPLE</a></li>
+</ul>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/headers/assert_msg.html b/doc/headers/assert_msg.html
new file mode 100644
index 0000000..8d62717
--- /dev/null
+++ b/doc/headers/assert_msg.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>assert_msg.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>assert_msg.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/assert_msg.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="debug/assert.html">&lt;boost/preprocessor/debug/assert.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/cat.html b/doc/headers/cat.html
new file mode 100644
index 0000000..406d3d4
--- /dev/null
+++ b/doc/headers/cat.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>cat.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>cat.hpp</b> header defines a concatenation macro.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/cat.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../ref/cat.html">BOOST_PP_CAT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/comma.html b/doc/headers/comma.html
new file mode 100644
index 0000000..966c114
--- /dev/null
+++ b/doc/headers/comma.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>comma.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>comma.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/comma.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="punctuation/comma.html">&lt;boost/preprocessor/punctuation/comma.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/comma_if.html b/doc/headers/comma_if.html
new file mode 100644
index 0000000..6d6d5cf
--- /dev/null
+++ b/doc/headers/comma_if.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>comma_if.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>comma_if.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/comma_if.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="punctuation/comma_if.html">&lt;boost/preprocessor/punctuation/comma_if.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/comparison.html b/doc/headers/comparison.html
new file mode 100644
index 0000000..2420510
--- /dev/null
+++ b/doc/headers/comparison.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+	<title>comparison.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>comparison.hpp</b> includes the headers in the <i>comparison</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/comparison.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="comparison/equal.html">&lt;boost/preprocessor/comparison/equal.hpp&gt;</a></li>
+			<li><a href="comparison/greater.html">&lt;boost/preprocessor/comparison/greater.hpp&gt;</a></li>
+			<li><a href="comparison/greater_equal.html">&lt;boost/preprocessor/comparison/greater_equal.hpp&gt;</a></li>
+			<li><a href="comparison/less.html">&lt;boost/preprocessor/comparison/less.hpp&gt;</a></li>
+			<li><a href="comparison/less_equal.html">&lt;boost/preprocessor/comparison/less_equal.hpp&gt;</a></li>
+			<li><a href="comparison/not_equal.html">&lt;boost/preprocessor/comparison/not_equal.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/comparison/equal.html b/doc/headers/comparison/equal.html
new file mode 100644
index 0000000..5d9cd92
--- /dev/null
+++ b/doc/headers/comparison/equal.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>comparison/equal.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>comparison/equal.hpp</b> header defines macros that compare for equality.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/comparison/equal.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/equal.html">BOOST_PP_EQUAL</a></li>
+			<li><a href="../../ref/equal_d.html">BOOST_PP_EQUAL_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/comparison/greater.html b/doc/headers/comparison/greater.html
new file mode 100644
index 0000000..b7dad2b
--- /dev/null
+++ b/doc/headers/comparison/greater.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>comparison/greater.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>comparison/greater.hpp</b> header defines macros that compare for greater magnitude.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/comparison/greater.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/greater.html">BOOST_PP_GREATER</a></li>
+			<li><a href="../../ref/greater_d.html">BOOST_PP_GREATER_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/comparison/greater_equal.html b/doc/headers/comparison/greater_equal.html
new file mode 100644
index 0000000..ad5ed80
--- /dev/null
+++ b/doc/headers/comparison/greater_equal.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>comparison/greater_equal.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>comparison/greater_equal.hpp</b> header defines macros that compare for equality or greater magnitude.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/comparison/greater_equal.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/greater_equal.html">BOOST_PP_GREATER_EQUAL</a></li>
+			<li><a href="../../ref/greater_equal_d.html">BOOST_PP_GREATER_EQUAL_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/comparison/less.html b/doc/headers/comparison/less.html
new file mode 100644
index 0000000..3233848
--- /dev/null
+++ b/doc/headers/comparison/less.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>comparison/less.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>comparison/less.hpp</b> header defines macros that compare for lesser magnitude.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/comparison/less.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/less.html">BOOST_PP_LESS</a></li>
+			<li><a href="../../ref/less_d.html">BOOST_PP_LESS_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/comparison/less_equal.html b/doc/headers/comparison/less_equal.html
new file mode 100644
index 0000000..f1d846b
--- /dev/null
+++ b/doc/headers/comparison/less_equal.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>comparison/less_equal.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>comparison/less_equal.hpp</b> header defines macros that compare for equality or lesser magnitude.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/comparison/less_equal.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/less_equal.html">BOOST_PP_LESS_EQUAL</a></li>
+			<li><a href="../../ref/less_equal_d.html">BOOST_PP_LESS_EQUAL_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/comparison/not_equal.html b/doc/headers/comparison/not_equal.html
new file mode 100644
index 0000000..b23f499
--- /dev/null
+++ b/doc/headers/comparison/not_equal.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>comparison/not_equal.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>comparison/not_equal.hpp</b> header defines macros that compare for equality.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/comparison/not_equal.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/not_equal.html">BOOST_PP_NOT_EQUAL</a></li>
+			<li><a href="../../ref/not_equal_d.html">BOOST_PP_NOT_EQUAL_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/config/limits.html b/doc/headers/config/limits.html
new file mode 100644
index 0000000..11fde7e
--- /dev/null
+++ b/doc/headers/config/limits.html
@@ -0,0 +1,44 @@
+<html>
+<head>
+    <title>config/limits.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left: 0px;">
+		The <b>config/limits.hpp</b> header defines various library limits.
+	</div>
+	<h4>
+		Usage
+	</h4>
+	<div class="code">
+		#include <b>&lt;boost/preprocessor/config/limits.hpp&gt;</b>
+	</div>
+	<h4>
+		Contents
+	</h4>
+	<ul>
+		<li><a href="../../ref/limit_dim.html">BOOST_PP_LIMIT_DIM</a></li>
+		<li><a href="../../ref/limit_for.html">BOOST_PP_LIMIT_FOR</a></li>
+		<li><a href="../../ref/limit_iteration.html">BOOST_PP_LIMIT_ITERATION</a></li>
+		<li><a href="../../ref/limit_iteration_dim.html">BOOST_PP_LIMIT_ITERATION_DIM</a></li>
+		<li><a href="../../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		<li><a href="../../ref/limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		<li><a href="../../ref/limit_seq.html">BOOST_PP_LIMIT_SEQ</a></li>
+		<li><a href="../../ref/limit_slot_count.html">BOOST_PP_LIMIT_SLOT_COUNT</a></li>
+		<li><a href="../../ref/limit_slot_sig.html">BOOST_PP_LIMIT_SLOT_SIG</a></li>
+		<li><a href="../../ref/limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
+		<li><a href="../../ref/limit_while.html">BOOST_PP_LIMIT_WHILE</a></li>
+        <li><a href="../../ref/limit_variadic.html">BOOST_PP_LIMIT_VARIADIC</a></li>
+	</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/config/variadics.html b/doc/headers/config/variadics.html
new file mode 100644
index 0000000..334f053
--- /dev/null
+++ b/doc/headers/config/variadics.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+  <title>config/config.hpp</title>
+  <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+		<div style="margin-left: 0px;">
+			The <b>config/config.hpp</b>
+header defines internal configuration macros as well as a macro for determining variadic macro support. The file
+is automatically included whenever any Boost PP macros are used. The end-user can manually
+include it in order to use the BOOST_PP_VARIADICS macro, but normally should never have to do so. </div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/config/config.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li><a href="../../ref/variadics.html">BOOST_PP_VARIADICS</a></li></ul>
+	<hr size="1">
+	<div style="margin-left: 0px;"><i>© Copyright Edward Diener 2011,2014</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/control.html b/doc/headers/control.html
new file mode 100644
index 0000000..d79582c
--- /dev/null
+++ b/doc/headers/control.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+	<title>control.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>control.hpp</b> includes the headers in the <i>control</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/control.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="control/deduce_d.html">&lt;boost/preprocessor/control/deduce_d.hpp&gt;</a></li>
+			<li><a href="control/expr_if.html">&lt;boost/preprocessor/control/expr_if.hpp&gt;</a></li>
+			<li><a href="control/expr_iif.html">&lt;boost/preprocessor/control/expr_iif.hpp&gt;</a></li>
+			<li><a href="control/if.html">&lt;boost/preprocessor/control/if.hpp&gt;</a></li>
+			<li><a href="control/iif.html">&lt;boost/preprocessor/control/iif.hpp&gt;</a></li>
+			<li><a href="control/while.html">&lt;boost/preprocessor/control/while.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/control/deduce_d.html b/doc/headers/control/deduce_d.html
new file mode 100644
index 0000000..2988768
--- /dev/null
+++ b/doc/headers/control/deduce_d.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>control/deduce_d.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>control/deduce_d.hpp</b> header defines a macro to manually deduce the current state of the <b>BOOST_PP_WHILE</b> construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/control/deduce_d.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/deduce_d.html">BOOST_PP_DEDUCE_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/control/expr_if.html b/doc/headers/control/expr_if.html
new file mode 100644
index 0000000..26cf712
--- /dev/null
+++ b/doc/headers/control/expr_if.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>control/expr_if.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>control/expr_if.hpp</b> header defines a macro that expands to an expression selectively.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/control/expr_if.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/expr_if.html">BOOST_PP_EXPR_IF</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/control/expr_iif.html b/doc/headers/control/expr_iif.html
new file mode 100644
index 0000000..18a7c1a
--- /dev/null
+++ b/doc/headers/control/expr_iif.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>control/expr_iif.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>control/expr_iif.hpp</b> header defines a macro that expands to an expression selectively.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/control/expr_iif.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/expr_iif.html">BOOST_PP_EXPR_IIF</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/control/if.html b/doc/headers/control/if.html
new file mode 100644
index 0000000..80f1ede
--- /dev/null
+++ b/doc/headers/control/if.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>control/if.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>control/if.hpp</b> header defines a macro that chooses between two alternatives.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/control/if.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/if.html">BOOST_PP_IF</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/control/iif.html b/doc/headers/control/iif.html
new file mode 100644
index 0000000..35756bb
--- /dev/null
+++ b/doc/headers/control/iif.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>control/iif.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>control/iif.hpp</b> header defines a macro that chooses between two alternatives.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/control/iif.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/iif.html">BOOST_PP_IIF</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/control/while.html b/doc/headers/control/while.html
new file mode 100644
index 0000000..6053cd7
--- /dev/null
+++ b/doc/headers/control/while.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>control/while.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>control/while.hpp</b> header defines a looping contruct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/control/while.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/while.html">BOOST_PP_WHILE</a></li>
+			<li><a href="../../ref/while_d.html">BOOST_PP_WHILE_<i>d</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/debug.html b/doc/headers/debug.html
new file mode 100644
index 0000000..451c931
--- /dev/null
+++ b/doc/headers/debug.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>debug.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>debug.hpp</b> includes the headers in the <i>debug</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/debug.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="debug/assert.html">&lt;boost/preprocessor/debug/assert.hpp&gt;</a></li>
+			<li><a href="debug/line.html">&lt;boost/preprocessor/debug/line.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/debug/assert.html b/doc/headers/debug/assert.html
new file mode 100644
index 0000000..7da2122
--- /dev/null
+++ b/doc/headers/debug/assert.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>debug/assert.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>debug/assert.hpp</b> header defines macros for preprocessing-time assertions.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/debug/assert.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/assert.html">BOOST_PP_ASSERT</a></li>
+			<li><a href="../../ref/assert_msg.html">BOOST_PP_ASSERT_MSG</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/debug/line.html b/doc/headers/debug/line.html
new file mode 100644
index 0000000..8dc9969
--- /dev/null
+++ b/doc/headers/debug/line.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>debug/line.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>debug/line.hpp</b> header defines macros for preprocessing-time assertions.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/debug/line.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/line.html">BOOST_PP_LINE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/dec.html b/doc/headers/dec.html
new file mode 100644
index 0000000..68cc019
--- /dev/null
+++ b/doc/headers/dec.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>dec.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>dec.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/dec.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="arithmetic/dec.html">&lt;boost/preprocessor/arithmetic/dec.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/empty.html b/doc/headers/empty.html
new file mode 100644
index 0000000..b50b914
--- /dev/null
+++ b/doc/headers/empty.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>empty.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>empty.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/empty.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="facilities/empty.html">&lt;boost/preprocessor/facilities/empty.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/enum.html b/doc/headers/enum.html
new file mode 100644
index 0000000..24e054d
--- /dev/null
+++ b/doc/headers/enum.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>enum.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>enum.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/enum.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/enum.html">&lt;boost/preprocessor/repetition/enum.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/enum_params.html b/doc/headers/enum_params.html
new file mode 100644
index 0000000..c466b63
--- /dev/null
+++ b/doc/headers/enum_params.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>enum_params.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>enum_params.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/enum_params.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/enum_params.html">&lt;boost/preprocessor/repetition/enum_params.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/enum_shifted.html b/doc/headers/enum_shifted.html
new file mode 100644
index 0000000..c3ae8a4
--- /dev/null
+++ b/doc/headers/enum_shifted.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>enum_shifted.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>enum_shifted.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/enum_shifted.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/enum_shifted.html">&lt;boost/preprocessor/repetition/enum_shifted.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/enum_shifted_params.html b/doc/headers/enum_shifted_params.html
new file mode 100644
index 0000000..b60db4f
--- /dev/null
+++ b/doc/headers/enum_shifted_params.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>enum_shifted_params.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>enum_shifted_params.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/enum_shifted_params.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/enum_shifted_params.html">&lt;boost/preprocessor/repetition/enum_shifted_params.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/epwad.html b/doc/headers/epwad.html
new file mode 100644
index 0000000..ef94d36
--- /dev/null
+++ b/doc/headers/epwad.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>enum_params_with_a_default.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>enum_params_with_a_default.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/enum_params_with_a_default.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/epwad.html">&lt;boost/preprocessor/repetition/enum_params_with_a_default.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/epwd.html b/doc/headers/epwd.html
new file mode 100644
index 0000000..87889ea
--- /dev/null
+++ b/doc/headers/epwd.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>enum_params_with_defaults.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>enum_params_with_defaults.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/enum_params_with_defaults.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/epwd.html">&lt;boost/preprocessor/repetition/enum_params_with_defaults.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/expand.html b/doc/headers/expand.html
new file mode 100644
index 0000000..42776d8
--- /dev/null
+++ b/doc/headers/expand.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>expand.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>expand.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/expand.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="facilities/expand.html">&lt;boost/preprocessor/facilities/expand.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/expr_if.html b/doc/headers/expr_if.html
new file mode 100644
index 0000000..0b13c52
--- /dev/null
+++ b/doc/headers/expr_if.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>expr_if.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>expr_if.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/expr_if.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="control/expr_if.html">&lt;boost/preprocessor/control/expr_if.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/facilities.html b/doc/headers/facilities.html
new file mode 100644
index 0000000..90eaa39
--- /dev/null
+++ b/doc/headers/facilities.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+    <title>facilities.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left: 0px;">
+		The <b>facilities.hpp</b> includes the headers in the <i>facilities</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/facilities.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="facilities/apply.html">&lt;boost/preprocessor/facilities/apply.hpp&gt;</a></li>
+			<li><a href="facilities/empty.html">&lt;boost/preprocessor/facilities/empty.hpp&gt;</a></li>
+			<li><a href="facilities/expand.html">&lt;boost/preprocessor/facilities/expand.hpp&gt;</a></li>
+			<li><a href="facilities/identity.html">&lt;boost/preprocessor/facilities/identity.hpp&gt;</a></li>
+			<li><a href="facilities/intercept.html">&lt;boost/preprocessor/facilities/intercept.hpp&gt;</a></li>
+            <li><a href="facilities/overload.html">&lt;boost/preprocessor/facilities/overload.hpp&gt;</a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/facilities/apply.html b/doc/headers/facilities/apply.html
new file mode 100644
index 0000000..6735dad
--- /dev/null
+++ b/doc/headers/facilities/apply.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>facilities/apply.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>facilities/apply.hpp</b> header defines facilities that abstract the difference between an argument and nothing.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/facilities/apply.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/apply.html">BOOST_PP_APPLY</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/facilities/empty.html b/doc/headers/facilities/empty.html
new file mode 100644
index 0000000..7460e96
--- /dev/null
+++ b/doc/headers/facilities/empty.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>facilities/empty.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>facilities/empty.hpp</b> header defines a nullary macro that expands to nothing.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/facilities/empty.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/empty.html">BOOST_PP_EMPTY</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/facilities/expand.html b/doc/headers/facilities/expand.html
new file mode 100644
index 0000000..9b8fe21
--- /dev/null
+++ b/doc/headers/facilities/expand.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>facilities/expand.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>facilities/expand.hpp</b> header defines a macro that causes double expansion.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/facilities/expand.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/expand.html">BOOST_PP_EXPAND</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/facilities/identity.html b/doc/headers/facilities/identity.html
new file mode 100644
index 0000000..af9034b
--- /dev/null
+++ b/doc/headers/facilities/identity.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+	<title>facilities/identity.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>facilities/identity.hpp</b> header defines utility macros to use with <b>BOOST_PP_IF</b> and <b>BOOST_PP_IIF</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/facilities/identity.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/identity.html">BOOST_PP_IDENTITY</a></li>
+			<li><a href="../../ref/identity_n.html">BOOST_PP_IDENTITY_N</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+		</br><i>© Copyright Edward Diener 2015</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/facilities/intercept.html b/doc/headers/facilities/intercept.html
new file mode 100644
index 0000000..b258090
--- /dev/null
+++ b/doc/headers/facilities/intercept.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>facilities/intercept.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>facilities/intercept.hpp</b> header defines a utility macro to intercept a numeric concatenation.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/facilities/intercept.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/intercept.html">BOOST_PP_INTERCEPT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/facilities/overload.html b/doc/headers/facilities/overload.html
new file mode 100644
index 0000000..0dc33c2
--- /dev/null
+++ b/doc/headers/facilities/overload.html
@@ -0,0 +1,28 @@
+<html>
+  <head>
+    <title>facilities/overload.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+	<div style="margin-left: 0px;">
+		The <b>facilities/overload.hpp</b> header defines variadic macros that overload non-variadic macros to accept different numbers of parameters.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/facilities/overload.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/overload.html">BOOST_PP_OVERLOAD</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011,2013</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/headers/for.html b/doc/headers/for.html
new file mode 100644
index 0000000..f31eb40
--- /dev/null
+++ b/doc/headers/for.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>for.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>for.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/for.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/for.html">&lt;boost/preprocessor/repetition/for.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/identity.html b/doc/headers/identity.html
new file mode 100644
index 0000000..79579df
--- /dev/null
+++ b/doc/headers/identity.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>identity.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>identity.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/identity.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="facilities/identity.html">&lt;boost/preprocessor/facilities/identity.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/if.html b/doc/headers/if.html
new file mode 100644
index 0000000..1128991
--- /dev/null
+++ b/doc/headers/if.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>if.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>if.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/if.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="control/if.html">&lt;boost/preprocessor/control/if.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/inc.html b/doc/headers/inc.html
new file mode 100644
index 0000000..97c029f
--- /dev/null
+++ b/doc/headers/inc.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>inc.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>inc.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/inc.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="arithmetic/inc.html">&lt;boost/preprocessor/arithmetic/inc.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/iterate.html b/doc/headers/iterate.html
new file mode 100644
index 0000000..e1cd09f
--- /dev/null
+++ b/doc/headers/iterate.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>iterate.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>iterate.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/iterate.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/iteration.html b/doc/headers/iteration.html
new file mode 100644
index 0000000..50cd379
--- /dev/null
+++ b/doc/headers/iteration.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+	<title>iteration.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>iteration.hpp</b> includes the headers in the <i>iteration</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/iteration.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a></li>
+			<li><a href="iteration/local.html">&lt;boost/preprocessor/iteration/local.hpp&gt;</a></li>
+			<li><a href="iteration/self.html">&lt;boost/preprocessor/iteration/self.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/iteration/iterate.html b/doc/headers/iteration/iterate.html
new file mode 100644
index 0000000..90138e9
--- /dev/null
+++ b/doc/headers/iteration/iterate.html
@@ -0,0 +1,43 @@
+<html>
+<head>
+	<title>iteration/iterate.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>iteration/iterate.hpp</b> header defines a macros to interface with the <i>file-iteration</i> mechanism.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/iteration/iterate.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/frame_finish.html">BOOST_PP_FRAME_FINISH</a></li>
+			<li><a href="../../ref/frame_flags.html">BOOST_PP_FRAME_FLAGS</a></li>
+			<li><a href="../../ref/frame_iteration.html">BOOST_PP_FRAME_ITERATION</a></li>
+			<li><a href="../../ref/frame_start.html">BOOST_PP_FRAME_START</a></li>
+			<li><a href="../../ref/iterate.html">BOOST_PP_ITERATE</a></li>
+			<li><a href="../../ref/iteration.html">BOOST_PP_ITERATION</a></li>
+			<li><a href="../../ref/iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a></li>
+			<li><a href="../../ref/iteration_finish.html">BOOST_PP_ITERATION_FINISH</a></li>
+			<li><a href="../../ref/iteration_flags.html">BOOST_PP_ITERATION_FLAGS</a></li>
+			<li><a href="../../ref/iteration_start.html">BOOST_PP_ITERATION_START</a></li>
+			<li><a href="../../ref/relative_finish.html">BOOST_PP_RELATIVE_FINISH</a></li>
+			<li><a href="../../ref/relative_flags.html">BOOST_PP_RELATIVE_FLAGS</a></li>
+			<li><a href="../../ref/relative_iteration.html">BOOST_PP_RELATIVE_ITERATION</a></li>
+			<li><a href="../../ref/relative_start.html">BOOST_PP_RELATIVE_START</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/iteration/local.html b/doc/headers/iteration/local.html
new file mode 100644
index 0000000..efcec99
--- /dev/null
+++ b/doc/headers/iteration/local.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>iteration/local.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>iteration/local.hpp</b> header defines a macro to interface with the <i>local-iteration</i> mechanism.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/iteration/local.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/local_iterate.html">BOOST_PP_LOCAL_ITERATE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/iteration/self.html b/doc/headers/iteration/self.html
new file mode 100644
index 0000000..7821009
--- /dev/null
+++ b/doc/headers/iteration/self.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>iteration/self.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>iteration/self.hpp</b> header defines a macro to facilitate self-inclusion.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/iteration/self.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/include_self.html">BOOST_PP_INCLUDE_SELF</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/library.html b/doc/headers/library.html
new file mode 100644
index 0000000..2f2a819
--- /dev/null
+++ b/doc/headers/library.html
@@ -0,0 +1,26 @@
+<html>
+<head>
+	<title>library.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>library.hpp</b> includes the entire library.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/library.hpp&gt;</b>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/limits.html b/doc/headers/limits.html
new file mode 100644
index 0000000..3a46c0a
--- /dev/null
+++ b/doc/headers/limits.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>limits.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>limits.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/limits.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list.html b/doc/headers/list.html
new file mode 100644
index 0000000..cc4783a
--- /dev/null
+++ b/doc/headers/list.html
@@ -0,0 +1,47 @@
+<html>
+<head>
+    <title>list.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left: 0px;">
+		The <b>list.hpp</b> includes the headers in the <i>list</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="list/adt.html">&lt;boost/preprocessor/list/adt.hpp&gt;</a></li>
+			<li><a href="list/append.html">&lt;boost/preprocessor/list/append.hpp&gt;</a></li>
+			<li><a href="list/at.html">&lt;boost/preprocessor/list/at.hpp&gt;</a></li>
+			<li><a href="list/cat.html">&lt;boost/preprocessor/list/cat.hpp&gt;</a></li>
+			<li><a href="list/enum.html">&lt;boost/preprocessor/list/enum.hpp&gt;</a></li>
+			<li><a href="list/filter.html">&lt;boost/preprocessor/list/filter.hpp&gt;</a></li>
+			<li><a href="list/first_n.html">&lt;boost/preprocessor/list/first_n.hpp&gt;</a></li>
+			<li><a href="list/fold_left.html">&lt;boost/preprocessor/list/fold_left.hpp&gt;</a></li>
+			<li><a href="list/fold_right.html">&lt;boost/preprocessor/list/fold_right.hpp&gt;</a></li>
+			<li><a href="list/for_each.html">&lt;boost/preprocessor/list/for_each.hpp&gt;</a></li>
+			<li><a href="list/for_each_i.html">&lt;boost/preprocessor/list/for_each_i.hpp&gt;</a></li>
+			<li><a href="list/for_each_product.html">&lt;boost/preprocessor/list/for_each_product.hpp&gt;</a></li>
+			<li><a href="list/rest_n.html">&lt;boost/preprocessor/list/rest_n.hpp&gt;</a></li>
+			<li><a href="list/reverse.html">&lt;boost/preprocessor/list/reverse.hpp&gt;</a></li>
+			<li><a href="list/size.html">&lt;boost/preprocessor/list/size.hpp&gt;</a></li>
+            <li><a href="list/to_array.html">&lt;boost/preprocessor/list/to_array.hpp&gt;</a></li>
+            <li><a href="list/to_seq.html">&lt;boost/preprocessor/list/to_seq.hpp&gt;</a></li>
+			<li><a href="list/to_tuple.html">&lt;boost/preprocessor/list/to_tuple.hpp&gt;</a></li>
+			<li><a href="list/transform.html">&lt;boost/preprocessor/list/transform.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/adt.html b/doc/headers/list/adt.html
new file mode 100644
index 0000000..919e729
--- /dev/null
+++ b/doc/headers/list/adt.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+	<title>list/adt.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/adt.hpp</b> header defines basic operations for manipulating <i>lists</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/adt.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_cons.html">BOOST_PP_LIST_CONS</a></li>
+			<li><a href="../../ref/list_first.html">BOOST_PP_LIST_FIRST</a></li>
+			<li><a href="../../ref/list_is_cons.html">BOOST_PP_LIST_IS_CONS</a></li>
+			<li><a href="../../ref/list_is_nil.html">BOOST_PP_LIST_IS_NIL</a></li>
+			<li><a href="../../ref/list_nil.html">BOOST_PP_LIST_NIL</a></li>
+			<li><a href="../../ref/list_rest.html">BOOST_PP_LIST_REST</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/append.html b/doc/headers/list/append.html
new file mode 100644
index 0000000..bbf40a4
--- /dev/null
+++ b/doc/headers/list/append.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/append.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/append.hpp</b> header defines macros for appending one <i>list</i> to another.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/append.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_append.html">BOOST_PP_LIST_APPEND</a></li>
+			<li><a href="../../ref/list_append_d.html">BOOST_PP_LIST_APPEND_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/at.html b/doc/headers/list/at.html
new file mode 100644
index 0000000..cf20fdc
--- /dev/null
+++ b/doc/headers/list/at.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/at.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/at.hpp</b> header defines macros for extracting an element from a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/at.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_at.html">BOOST_PP_LIST_AT</a></li>
+			<li><a href="../../ref/list_at_d.html">BOOST_PP_LIST_AT_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/cat.html b/doc/headers/list/cat.html
new file mode 100644
index 0000000..34c058a
--- /dev/null
+++ b/doc/headers/list/cat.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/cat.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/cat.hpp</b> header defines macros for concatenating all elements in a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/cat.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_cat.html">BOOST_PP_LIST_CAT</a></li>
+			<li><a href="../../ref/list_cat_d.html">BOOST_PP_LIST_CAT_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/enum.html b/doc/headers/list/enum.html
new file mode 100644
index 0000000..fa18f11
--- /dev/null
+++ b/doc/headers/list/enum.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/enum.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/enum.hpp</b> header defines macros to convert a <i>list</i> to a comma-separated list.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/enum.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_enum.html">BOOST_PP_LIST_ENUM</a></li>
+			<li><a href="../../ref/list_enum_r.html">BOOST_PP_LIST_ENUM_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/filter.html b/doc/headers/list/filter.html
new file mode 100644
index 0000000..5a882ad
--- /dev/null
+++ b/doc/headers/list/filter.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/filter.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/filter.hpp</b> header defines macros to filter a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/filter.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_filter.html">BOOST_PP_LIST_FILTER</a></li>
+			<li><a href="../../ref/list_filter_d.html">BOOST_PP_LIST_FILTER_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/first_n.html b/doc/headers/list/first_n.html
new file mode 100644
index 0000000..bc6c0da
--- /dev/null
+++ b/doc/headers/list/first_n.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/first_n.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/first_n.hpp</b> header defines macros for extracting a group of elements from the beginning of a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/first_n.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_first_n.html">BOOST_PP_LIST_FIRST_N</a></li>
+			<li><a href="../../ref/list_first_n_d.html">BOOST_PP_LIST_FIRST_N_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/fold_left.html b/doc/headers/list/fold_left.html
new file mode 100644
index 0000000..077f3eb
--- /dev/null
+++ b/doc/headers/list/fold_left.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>list/fold_left.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/fold_left.hpp</b> header defines folding (or accumulating) a <i>list</i> left-to-right.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/fold_left.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a></li>
+			<li><a href="../../ref/list_fold_left_2nd.html">BOOST_PP_LIST_FOLD_LEFT_2ND</a></li>
+			<li><a href="../../ref/list_fold_left_2nd_d.html">BOOST_PP_LIST_FOLD_LEFT_2ND_D</a></li>
+			<li><a href="../../ref/list_fold_left_d.html">BOOST_PP_LIST_FOLD_LEFT_<i>d</i></a></li>
+			<li><a href="../../ref/list_fold_left_d_old.html">BOOST_PP_LIST_FOLD_LEFT_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/fold_right.html b/doc/headers/list/fold_right.html
new file mode 100644
index 0000000..827de4a
--- /dev/null
+++ b/doc/headers/list/fold_right.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>list/fold_right.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/fold_right.hpp</b> header defines folding (or accumulating) a <i>list</i> right-to-left.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/fold_right.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a></li>
+			<li><a href="../../ref/list_fold_right_2nd.html">BOOST_PP_LIST_FOLD_RIGHT_2ND</a></li>
+			<li><a href="../../ref/list_fold_right_2nd_d.html">BOOST_PP_LIST_FOLD_RIGHT_2ND_D</a></li>
+			<li><a href="../../ref/list_fold_right_d.html">BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></a></li>
+			<li><a href="../../ref/list_fold_right_d_old.html">BOOST_PP_LIST_FOLD_RIGHT_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/for_each.html b/doc/headers/list/for_each.html
new file mode 100644
index 0000000..ebfa15d
--- /dev/null
+++ b/doc/headers/list/for_each.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/for_each.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/for_each.hpp</b> header defines macros to repeat a macro for each element in a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/for_each.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_for_each.html">BOOST_PP_LIST_FOR_EACH</a></li>
+			<li><a href="../../ref/list_for_each_r.html">BOOST_PP_LIST_FOR_EACH_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/for_each_i.html b/doc/headers/list/for_each_i.html
new file mode 100644
index 0000000..d25c7c1
--- /dev/null
+++ b/doc/headers/list/for_each_i.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/for_each_i.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/for_each_i.hpp</b> header defines macros to repeat a macro for each element in a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/for_each_i.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_for_each_i.html">BOOST_PP_LIST_FOR_EACH_I</a></li>
+			<li><a href="../../ref/list_for_each_i_r.html">BOOST_PP_LIST_FOR_EACH_I_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/for_each_product.html b/doc/headers/list/for_each_product.html
new file mode 100644
index 0000000..1d77142
--- /dev/null
+++ b/doc/headers/list/for_each_product.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/for_each_product.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/for_each_product.hpp</b> header defines macros to repeat a macro for each cartesian product of several <i>lists</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/for_each_product.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_for_each_product.html">BOOST_PP_LIST_FOR_EACH_PRODUCT</a></li>
+			<li><a href="../../ref/list_for_each_product_r.html">BOOST_PP_LIST_FOR_EACH_PRODUCT_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/rest_n.html b/doc/headers/list/rest_n.html
new file mode 100644
index 0000000..20cf6c8
--- /dev/null
+++ b/doc/headers/list/rest_n.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/rest_n.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/rest_n.hpp</b> header defines macros for extracting a group of elements from the end of a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/rest_n.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_rest_n.html">BOOST_PP_LIST_REST_N</a></li>
+			<li><a href="../../ref/list_rest_n_d.html">BOOST_PP_LIST_REST_N_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/reverse.html b/doc/headers/list/reverse.html
new file mode 100644
index 0000000..852ed13
--- /dev/null
+++ b/doc/headers/list/reverse.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/reverse.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/reverse.hpp</b> header defines macros to reverse a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/reverse.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_reverse.html">BOOST_PP_LIST_REVERSE</a></li>
+			<li><a href="../../ref/list_reverse_d.html">BOOST_PP_LIST_REVERSE_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/size.html b/doc/headers/list/size.html
new file mode 100644
index 0000000..9d9bfd6
--- /dev/null
+++ b/doc/headers/list/size.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/size.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/size.hpp</b> header defines macros to calculate the size of a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/size.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_size.html">BOOST_PP_LIST_SIZE</a></li>
+			<li><a href="../../ref/list_size_d.html">BOOST_PP_LIST_SIZE_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/to_array.html b/doc/headers/list/to_array.html
new file mode 100644
index 0000000..6910601
--- /dev/null
+++ b/doc/headers/list/to_array.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+  <title>list/to_array.hpp</title>
+  <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left: 0px;">
+		The <b>list/to_array.hpp</b> header defines a macro to convert a <i>list</i> to an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/to_array.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_to_array.html">BOOST_PP_LIST_TO_ARRAY</a></li>
+			<li><a href="../../ref/list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/to_seq.html b/doc/headers/list/to_seq.html
new file mode 100644
index 0000000..c90de90
--- /dev/null
+++ b/doc/headers/list/to_seq.html
@@ -0,0 +1,25 @@
+<html><head>
+  <title>list/to_seq.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+	<div style="margin-left: 0px;">
+		The <b>list/to_seq.hpp</b> header defines a macro to convert a <i>list</i> to a <i>seq</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/to_seq.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_to_seq.html">BOOST_PP_LIST_TO_SEQ</a></li>
+			<li><a href="../../ref/list_to_seq.html">BOOST_PP_LIST_TO_SEQ_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/list/to_tuple.html b/doc/headers/list/to_tuple.html
new file mode 100644
index 0000000..a8cb42d
--- /dev/null
+++ b/doc/headers/list/to_tuple.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/to_tuple.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/to_tuple.hpp</b> header defines macros to convert a <i>list</i> to a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/to_tuple.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_to_tuple.html">BOOST_PP_LIST_TO_TUPLE</a></li>
+			<li><a href="../../ref/list_to_tuple_r.html">BOOST_PP_LIST_TO_TUPLE_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/list/transform.html b/doc/headers/list/transform.html
new file mode 100644
index 0000000..bcd93b7
--- /dev/null
+++ b/doc/headers/list/transform.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>list/transform.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>list/transform.hpp</b> header defines macros to transform a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/list/transform.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/list_transform.html">BOOST_PP_LIST_TRANSFORM</a></li>
+			<li><a href="../../ref/list_transform_d.html">BOOST_PP_LIST_TRANSFORM_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical.html b/doc/headers/logical.html
new file mode 100644
index 0000000..041abfa
--- /dev/null
+++ b/doc/headers/logical.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+	<title>logical.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical.hpp</b> includes the headers in the <i>logical</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="logical/and.html">&lt;boost/preprocessor/logical/and.hpp&gt;</a></li>
+			<li><a href="logical/bitand.html">&lt;boost/preprocessor/logical/bitand.hpp&gt;</a></li>
+			<li><a href="logical/bitnor.html">&lt;boost/preprocessor/logical/bitnor.hpp&gt;</a></li>
+			<li><a href="logical/bitor.html">&lt;boost/preprocessor/logical/bitor.hpp&gt;</a></li>
+			<li><a href="logical/bitxor.html">&lt;boost/preprocessor/logical/bitxor.hpp&gt;</a></li>
+			<li><a href="logical/bool.html">&lt;boost/preprocessor/logical/bool.hpp&gt;</a></li>
+			<li><a href="logical/compl.html">&lt;boost/preprocessor/logical/compl.hpp&gt;</a></li>
+			<li><a href="logical/nor.html">&lt;boost/preprocessor/logical/nor.hpp&gt;</a></li>
+			<li><a href="logical/not.html">&lt;boost/preprocessor/logical/not.hpp&gt;</a></li>
+			<li><a href="logical/or.html">&lt;boost/preprocessor/logical/or.hpp&gt;</a></li>
+			<li><a href="logical/xor.html">&lt;boost/preprocessor/logical/xor.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/and.html b/doc/headers/logical/and.html
new file mode 100644
index 0000000..cc1f37d
--- /dev/null
+++ b/doc/headers/logical/and.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/and.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/and.hpp</b> header defines a macro that expands to the logical <i>AND</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/and.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/and.html">BOOST_PP_AND</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/bitand.html b/doc/headers/logical/bitand.html
new file mode 100644
index 0000000..305694c
--- /dev/null
+++ b/doc/headers/logical/bitand.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/bitand.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/bitand.hpp</b> header defines a macro that expands to the bitwise <i>AND</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/bitand.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/bitand.html">BOOST_PP_BITAND</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/bitnor.html b/doc/headers/logical/bitnor.html
new file mode 100644
index 0000000..1b1b078
--- /dev/null
+++ b/doc/headers/logical/bitnor.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/bitnor.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/bitnor.hpp</b> header defines a macro that expands to the bitwise <i>NOR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/bitnor.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/bitnor.html">BOOST_PP_BITNOR</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/bitor.html b/doc/headers/logical/bitor.html
new file mode 100644
index 0000000..1c2aec8
--- /dev/null
+++ b/doc/headers/logical/bitor.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/bitor.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/bitor.hpp</b> header defines a macro that expands to the bitwise <i>OR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/bitor.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/bitor.html">BOOST_PP_BITOR</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/bitxor.html b/doc/headers/logical/bitxor.html
new file mode 100644
index 0000000..3bfa14d
--- /dev/null
+++ b/doc/headers/logical/bitxor.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/bitxor.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/bitxor.hpp</b> header defines a macro that expands to the bitwise <i>XOR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/bitxor.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/bitxor.html">BOOST_PP_BITXOR</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/bool.html b/doc/headers/logical/bool.html
new file mode 100644
index 0000000..9145606
--- /dev/null
+++ b/doc/headers/logical/bool.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/bool.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/bool.hpp</b> header defines a macro that performs a boolean conversion on its operand.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/bool.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/bool.html">BOOST_PP_BOOL</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/compl.html b/doc/headers/logical/compl.html
new file mode 100644
index 0000000..1d7503e
--- /dev/null
+++ b/doc/headers/logical/compl.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/compl.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/compl.hpp</b> header defines a macro that performs a bitwise inversion on its operand.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/compl.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/compl.html">BOOST_PP_COMPL</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/nor.html b/doc/headers/logical/nor.html
new file mode 100644
index 0000000..d58eae3
--- /dev/null
+++ b/doc/headers/logical/nor.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/nor.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/nor.hpp</b> header defines a macro that expands to the logical <i>NOR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/nor.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/nor.html">BOOST_PP_NOR</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/not.html b/doc/headers/logical/not.html
new file mode 100644
index 0000000..57347be
--- /dev/null
+++ b/doc/headers/logical/not.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/not.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/not.hpp</b> header defines a macro that performs a logical <i>NOT</i> on its operand.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/not.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/not.html">BOOST_PP_NOT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/or.html b/doc/headers/logical/or.html
new file mode 100644
index 0000000..f588b8c
--- /dev/null
+++ b/doc/headers/logical/or.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/or.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/or.hpp</b> header defines a macro that expands to the logical <i>OR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/or.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/or.html">BOOST_PP_OR</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/logical/xor.html b/doc/headers/logical/xor.html
new file mode 100644
index 0000000..67c8962
--- /dev/null
+++ b/doc/headers/logical/xor.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>logical/xor.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>logical/xor.hpp</b> header defines a macro that expands to the logical <i>XOR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/logical/xor.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/xor.html">BOOST_PP_XOR</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/max.html b/doc/headers/max.html
new file mode 100644
index 0000000..95d8bb6
--- /dev/null
+++ b/doc/headers/max.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>max.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>max.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/max.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="selection/max.html">&lt;boost/preprocessor/selection/max.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/min.html b/doc/headers/min.html
new file mode 100644
index 0000000..44498a4
--- /dev/null
+++ b/doc/headers/min.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>min.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>min.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/min.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="selection/min.html">&lt;boost/preprocessor/selection/min.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/preprocessor.html b/doc/headers/preprocessor.html
new file mode 100644
index 0000000..889b8cc
--- /dev/null
+++ b/doc/headers/preprocessor.html
@@ -0,0 +1,26 @@
+<html>
+<head>
+	<title>preprocessor.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>preprocessor.hpp</b> includes the entire library.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor.hpp&gt;</b>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/punctuation.html b/doc/headers/punctuation.html
new file mode 100644
index 0000000..28b4632
--- /dev/null
+++ b/doc/headers/punctuation.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+	<title>punctuation.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>punctuation.hpp</b> includes the headers in the <i>punctuation</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/punctuation.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="punctuation/comma.html">&lt;boost/preprocessor/punctuation/comma.hpp&gt;</a></li>
+			<li><a href="punctuation/comma_if.html">&lt;boost/preprocessor/punctuation/comma_if.hpp&gt;</a></li>
+			<li><a href="punctuation/paren.html">&lt;boost/preprocessor/punctuation/paren.hpp&gt;</a></li>
+			<li><a href="punctuation/paren_if.html">&lt;boost/preprocessor/punctuation/paren_if.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/punctuation/comma.html b/doc/headers/punctuation/comma.html
new file mode 100644
index 0000000..1be2eba
--- /dev/null
+++ b/doc/headers/punctuation/comma.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>punctuation/comma.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>punctuation/comma.hpp</b> header defines a macro that expands to a comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/punctuation/comma.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/comma.html">BOOST_PP_COMMA</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/punctuation/comma_if.html b/doc/headers/punctuation/comma_if.html
new file mode 100644
index 0000000..8dc1edc
--- /dev/null
+++ b/doc/headers/punctuation/comma_if.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>punctuation/comma_if.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>punctuation/comma_if.hpp</b> header defines a macro that conditionally expands to a comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/punctuation/comma_if.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/comma_if.html">BOOST_PP_COMMA_IF</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/punctuation/is_begin_parens.html b/doc/headers/punctuation/is_begin_parens.html
new file mode 100644
index 0000000..4897623
--- /dev/null
+++ b/doc/headers/punctuation/is_begin_parens.html
@@ -0,0 +1,26 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>punctuation/is_begin_parens.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>punctuation/is_begin_parens.hpp</b>
+      header defines a macro that determines if variadic data begins with a
+      parenthesis.</div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/punctuation/is_begin_parens.hpp&gt;</b>
+    </div>
+    <h4>Contents</h4>
+    <ul>
+      <li><a href="../../ref/is_begin_parens.html">BOOST_PP_IS_BEGIN_PARENS</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2014</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/punctuation/paren.html b/doc/headers/punctuation/paren.html
new file mode 100644
index 0000000..645ea99
--- /dev/null
+++ b/doc/headers/punctuation/paren.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>punctuation/paren.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>punctuation/paren.hpp</b> header defines macros that expand to left and right parentheses.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/punctuation/paren.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/lparen.html">BOOST_PP_LPAREN</a></li>
+			<li><a href="../../ref/rparen.html">BOOST_PP_RPAREN</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/punctuation/paren_if.html b/doc/headers/punctuation/paren_if.html
new file mode 100644
index 0000000..67c5300
--- /dev/null
+++ b/doc/headers/punctuation/paren_if.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>punctuation/paren_if.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>punctuation/paren_if.hpp</b> header defines macros that conditionally expand to left and right parentheses.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/punctuation/paren_if.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/lparen_if.html">BOOST_PP_LPAREN_IF</a></li>
+			<li><a href="../../ref/rparen_if.html">BOOST_PP_RPAREN_IF</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/punctuation/remove_parens.html b/doc/headers/punctuation/remove_parens.html
new file mode 100644
index 0000000..f2b6e46
--- /dev/null
+++ b/doc/headers/punctuation/remove_parens.html
@@ -0,0 +1,26 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>punctuation/remove_parens.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>punctuation/remove_parens.hpp</b>
+      header defines a macro that removes the beginning parenthesis from its
+      input if it exists.</div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/punctuation/remove_parens.hpp&gt;</b>
+    </div>
+    <h4>Contents</h4>
+    <ul>
+      <li><a href="../../ref/remove_parens.html">BOOST_PP_REMOVE_PARENS</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2014</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/repeat.html b/doc/headers/repeat.html
new file mode 100644
index 0000000..e057d9a
--- /dev/null
+++ b/doc/headers/repeat.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repeat.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repeat.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repeat.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/repeat.html">&lt;boost/preprocessor/repetition/repeat.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repeat_2nd.html b/doc/headers/repeat_2nd.html
new file mode 100644
index 0000000..e3bcadd
--- /dev/null
+++ b/doc/headers/repeat_2nd.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repeat_2nd.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repeat_2nd.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repeat_2nd.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/repeat.html">&lt;boost/preprocessor/repetition/repeat.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repeat_3rd.html b/doc/headers/repeat_3rd.html
new file mode 100644
index 0000000..e172031
--- /dev/null
+++ b/doc/headers/repeat_3rd.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repeat_3rd.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repeat_3rd.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repeat_3rd.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/repeat.html">&lt;boost/preprocessor/repetition/repeat.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repeat_from_to.html b/doc/headers/repeat_from_to.html
new file mode 100644
index 0000000..3cc9d68
--- /dev/null
+++ b/doc/headers/repeat_from_to.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repeat_from_to.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repeat_from_to.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repeat_from_to.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repeat_from_to_2nd.html b/doc/headers/repeat_from_to_2nd.html
new file mode 100644
index 0000000..8bdf152
--- /dev/null
+++ b/doc/headers/repeat_from_to_2nd.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repeat_from_to_2nd.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repeat_from_to_2nd.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repeat_from_to_2nd.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repeat_from_to_3rd.html b/doc/headers/repeat_from_to_3rd.html
new file mode 100644
index 0000000..5de4146f2
--- /dev/null
+++ b/doc/headers/repeat_from_to_3rd.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repeat_from_to_3rd.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repeat_from_to_3rd.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repeat_from_to_3rd.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition.html b/doc/headers/repetition.html
new file mode 100644
index 0000000..30675e3
--- /dev/null
+++ b/doc/headers/repetition.html
@@ -0,0 +1,44 @@
+<html>
+<head>
+	<title>repetition.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition.hpp</b> includes the headers in the <i>repetition</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="repetition/deduce_r.html">&lt;boost/preprocessor/repetition/deduce_r.hpp&gt;</a></li>
+			<li><a href="repetition/deduce_z.html">&lt;boost/preprocessor/repetition/deduce_z.hpp&gt;</a></li>
+			<li><a href="repetition/enum.html">&lt;boost/preprocessor/repetition/enum.hpp&gt;</a></li>
+			<li><a href="repetition/enum_binary_params.html">&lt;boost/preprocessor/repetition/enum_binary_params.hpp&gt;</a></li>
+			<li><a href="repetition/enum_params.html">&lt;boost/preprocessor/repetition/enum_params.hpp&gt;</a></li>
+			<li><a href="repetition/epwad.html">&lt;boost/preprocessor/repetition/enum_params_with_a_default.hpp&gt;</a></li>
+			<li><a href="repetition/epwd.html">&lt;boost/preprocessor/repetition/enum_params_with_defaults.hpp&gt;</a></li>
+			<li><a href="repetition/enum_shifted_params.html">&lt;boost/preprocessor/repetition/enum_shifted_params.hpp&gt;</a></li>
+			<li><a href="repetition/enum_shifted.html">&lt;boost/preprocessor/repetition/enum_shifted.hpp&gt;</a></li>
+			<li><a href="repetition/enum_trailing.html">&lt;boost/preprocessor/repetition/enum_trailing.hpp&gt;</a></li>
+			<li><a href="repetition/etbp.html">&lt;boost/preprocessor/repetition/enum_trailing_binary_params.hpp&gt;</a></li>
+			<li><a href="repetition/enum_trailing_params.html">&lt;boost/preprocessor/repetition/enum_trailing_params.hpp&gt;</a></li>
+			<li><a href="repetition/for.html">&lt;boost/preprocessor/repetition/for.hpp&gt;</a></li>
+			<li><a href="repetition/repeat.html">&lt;boost/preprocessor/repetition/repeat.hpp&gt;</a></li>
+			<li><a href="repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/deduce_r.html b/doc/headers/repetition/deduce_r.html
new file mode 100644
index 0000000..d8f3957
--- /dev/null
+++ b/doc/headers/repetition/deduce_r.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>control/deduce_r.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/deduce_r.hpp</b> header defines a macro to manually deduce the current state of the <b>BOOST_PP_FOR</b> construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/deduce_r.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/deduce_r.html">BOOST_PP_DEDUCE_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/deduce_z.html b/doc/headers/repetition/deduce_z.html
new file mode 100644
index 0000000..9512af9
--- /dev/null
+++ b/doc/headers/repetition/deduce_z.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>control/deduce_z.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/deduce_z.hpp</b> header defines a macro to manually deduce the current state of the <b>BOOST_PP_REPEAT</b> construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/deduce_z.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/deduce_z.html">BOOST_PP_DEDUCE_Z</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/enum.html b/doc/headers/repetition/enum.html
new file mode 100644
index 0000000..83319a1
--- /dev/null
+++ b/doc/headers/repetition/enum.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/enum.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum.hpp</b> header defines a construct that produces a comma-separated list.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/enum.html">BOOST_PP_ENUM</a></li>
+			<li><a href="../../ref/enum_z.html">BOOST_PP_ENUM_<i>z</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/enum_binary_params.html b/doc/headers/repetition/enum_binary_params.html
new file mode 100644
index 0000000..7a4b5ae
--- /dev/null
+++ b/doc/headers/repetition/enum_binary_params.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/enum_binary_params.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_binary_params.hpp</b> header defines a construct that produces a comma-separated list of binary parameters.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_binary_params.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a></li>
+			<li><a href="../../ref/enum_binary_params_z.html">BOOST_PP_ENUM_BINARY_PARAMS_Z</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/enum_params.html b/doc/headers/repetition/enum_params.html
new file mode 100644
index 0000000..e5f2fdf
--- /dev/null
+++ b/doc/headers/repetition/enum_params.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/enum_params.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_params.hpp</b> header defines a construct that produces a comma-separated list of parameters.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_params.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/enum_params.html">BOOST_PP_ENUM_PARAMS</a></li>
+			<li><a href="../../ref/enum_params_z.html">BOOST_PP_ENUM_PARAMS_Z</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/enum_shifted.html b/doc/headers/repetition/enum_shifted.html
new file mode 100644
index 0000000..d53c7e3
--- /dev/null
+++ b/doc/headers/repetition/enum_shifted.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/enum_shifted.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_shifted.hpp</b> header defines a construct that produces a comma-separated, shifted list.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_shifted.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/enum_shifted.html">BOOST_PP_ENUM_SHIFTED</a></li>
+			<li><a href="../../ref/enum_shifted_z.html">BOOST_PP_ENUM_SHIFTED_<i>z</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/enum_shifted_params.html b/doc/headers/repetition/enum_shifted_params.html
new file mode 100644
index 0000000..db2fd2c
--- /dev/null
+++ b/doc/headers/repetition/enum_shifted_params.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/enum_shifted_params.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_shifted_params.hpp</b> header defines a construct that produces a comma-separated list of parameters.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_shifted_params.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/enum_shifted_params.html">BOOST_PP_ENUM_SHIFTED_PARAMS</a></li>
+			<li><a href="../../ref/enum_shifted_params_z.html">BOOST_PP_ENUM_SHIFTED_PARAMS_<i>z</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/enum_trailing.html b/doc/headers/repetition/enum_trailing.html
new file mode 100644
index 0000000..4d0161d
--- /dev/null
+++ b/doc/headers/repetition/enum_trailing.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/enum_trailing.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_trailing.hpp</b> header defines a construct that produces a comma-separated list with a leading comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_trailing.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/enum_trailing.html">BOOST_PP_ENUM_TRAILING</a></li>
+			<li><a href="../../ref/enum_trailing_z.html">BOOST_PP_ENUM_TRAILING_<i>z</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/enum_trailing_params.html b/doc/headers/repetition/enum_trailing_params.html
new file mode 100644
index 0000000..f1cb16e
--- /dev/null
+++ b/doc/headers/repetition/enum_trailing_params.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/enum_trailing_params.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_trailing_params.hpp</b> header defines a construct that produces a comma-separated list of parameters with a leading comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_trailing_params.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/enum_trailing_params.html">BOOST_PP_ENUM_TRAILING_PARAMS</a></li>
+			<li><a href="../../ref/enum_trailing_params_z.html">BOOST_PP_ENUM_TRAILING_PARAMS_Z</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/epwad.html b/doc/headers/repetition/epwad.html
new file mode 100644
index 0000000..9ef3577
--- /dev/null
+++ b/doc/headers/repetition/epwad.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>repetition/enum_params_with_a_default.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_params_with_a_default.hpp</b> header defines a construct that produces a comma-separated list of parameters with a default argument.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_params_with_a_default.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/enum_params_with_a_default.html">BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/epwd.html b/doc/headers/repetition/epwd.html
new file mode 100644
index 0000000..b57c077
--- /dev/null
+++ b/doc/headers/repetition/epwd.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>repetition/enum_params_with_defaults.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_params_with_defaults.hpp</b> header defines a construct that produces a comma-separated list of parameters with default arguments.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_params_with_defaults.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/enum_params_with_defaults.html">BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/esbp.html b/doc/headers/repetition/esbp.html
new file mode 100644
index 0000000..67501a6
--- /dev/null
+++ b/doc/headers/repetition/esbp.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/enum_shifted_binary_params.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_shifted_binary_params.hpp</b> header defines a construct that produces a comma-separated list of binary parameters.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_shifted_binary_params.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/esbp.html">BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS</a></li>
+			<li><a href="../../ref/esbpz.html">BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/etbp.html b/doc/headers/repetition/etbp.html
new file mode 100644
index 0000000..a78f1dc
--- /dev/null
+++ b/doc/headers/repetition/etbp.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/enum_trailing_binary_params.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/enum_trailing_binary_params.hpp</b> header defines a construct that produces a comma-separated list of binary parameters with a leading comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/enum_trailing_binary_params.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/etbp.html">BOOST_PP_ENUM_TRAILING_BINARY_PARAMS</a></li>
+			<li><a href="../../ref/etbpz.html">BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/for.html b/doc/headers/repetition/for.html
new file mode 100644
index 0000000..672b875
--- /dev/null
+++ b/doc/headers/repetition/for.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>repetition/for.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/for.hpp</b> header defines a generalized horizontal repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/for.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/for.html">BOOST_PP_FOR</a></li>
+			<li><a href="../../ref/for_r.html">BOOST_PP_FOR_<i>r</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/repeat.html b/doc/headers/repetition/repeat.html
new file mode 100644
index 0000000..7382645
--- /dev/null
+++ b/doc/headers/repetition/repeat.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>repetition/repeat.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/repeat.hpp</b> header defines a fast horizontal repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/repeat.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/repeat.html">BOOST_PP_REPEAT</a></li>
+			<li><a href="../../ref/repeat_1st.html">BOOST_PP_REPEAT_1ST</a></li>
+			<li><a href="../../ref/repeat_2nd.html">BOOST_PP_REPEAT_2ND</a></li>
+			<li><a href="../../ref/repeat_3rd.html">BOOST_PP_REPEAT_3RD</a></li>
+			<li><a href="../../ref/repeat_z.html">BOOST_PP_REPEAT_<i>z</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/repetition/repeat_from_to.html b/doc/headers/repetition/repeat_from_to.html
new file mode 100644
index 0000000..5890b82
--- /dev/null
+++ b/doc/headers/repetition/repeat_from_to.html
@@ -0,0 +1,36 @@
+<html>
+<head>
+	<title>repetition/repeat_from_to.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>repetition/repeat_from_to.hpp</b> header defines a horizontal repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/repeat_from_to.html">BOOST_PP_REPEAT_FROM_TO</a></li>
+			<li><a href="../../ref/repeat_from_to_1st.html">BOOST_PP_REPEAT_FROM_TO_1ST</a></li>
+			<li><a href="../../ref/repeat_from_to_2nd.html">BOOST_PP_REPEAT_FROM_TO_2ND</a></li>
+			<li><a href="../../ref/repeat_from_to_3rd.html">BOOST_PP_REPEAT_FROM_TO_3RD</a></li>
+			<li><a href="../../ref/repeat_from_to_d.html">BOOST_PP_REPEAT_FROM_TO_D</a></li>
+			<li><a href="../../ref/repeat_from_to_d_z.html">BOOST_PP_REPEAT_FROM_TO_D_<i>z</i></a></li>
+			<li><a href="../../ref/repeat_from_to_z.html">BOOST_PP_REPEAT_FROM_TO_<i>z</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/selection.html b/doc/headers/selection.html
new file mode 100644
index 0000000..0fd0eaf
--- /dev/null
+++ b/doc/headers/selection.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>selection.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>selection.hpp</b> includes the headers in the <i>selection</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/selection.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="selection/max.html">&lt;boost/preprocessor/selection/max.hpp&gt;</a></li>
+			<li><a href="selection/min.html">&lt;boost/preprocessor/selection/min.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/selection/max.html b/doc/headers/selection/max.html
new file mode 100644
index 0000000..b1b33eb
--- /dev/null
+++ b/doc/headers/selection/max.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>selection/max.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>selection/max.hpp</b> header defines a macro that returns the greater of two elements.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/selection/max.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/max.html">BOOST_PP_MAX</a></li>
+			<li><a href="../../ref/max_d.html">BOOST_PP_MAX_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/selection/min.html b/doc/headers/selection/min.html
new file mode 100644
index 0000000..37802fe
--- /dev/null
+++ b/doc/headers/selection/min.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>selection/min.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>selection/min.hpp</b> header defines a macro that returns the lesser of two elements.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/selection/min.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/min.html">BOOST_PP_MIN</a></li>
+			<li><a href="../../ref/min_d.html">BOOST_PP_MIN_D</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/seq.html b/doc/headers/seq.html
new file mode 100644
index 0000000..9e2ba8c
--- /dev/null
+++ b/doc/headers/seq.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+    <title>seq.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left: 0px;">
+		The <b>seq.hpp</b> includes the headers in the <i>seq</i> folder.
+	</div>
+	<h4>
+		Usage
+	</h4>
+	<div class="code">
+		#include <b>&lt;boost/preprocessor/seq.hpp&gt;</b>
+	</div>
+	<h4>
+		Includes
+	</h4>
+	<ul>
+		<li>
+			<a href="seq/cat.html">&lt;boost/preprocessor/seq/cat.hpp&gt;</a></li>
+		<li>
+			<a href="seq/elem.html">&lt;boost/preprocessor/seq/elem.hpp&gt;</a></li>
+		<li>
+			<a href="seq/enum.html">&lt;boost/preprocessor/seq/enum.hpp&gt;</a></li>
+		<li>
+			<a href="seq/filter.html">&lt;boost/preprocessor/seq/filter.hpp&gt;</a></li>
+		<li>
+			<a href="seq/first_n.html">&lt;boost/preprocessor/seq/first_n.hpp&gt;</a></li>
+		<li>
+			<a href="seq/fold_left.html">&lt;boost/preprocessor/seq/fold_left.hpp&gt;</a></li>
+		<li>
+			<a href="seq/fold_right.html">&lt;boost/preprocessor/seq/fold_right.hpp&gt;</a></li>
+		<li>
+			<a href="seq/for_each.html">&lt;boost/preprocessor/seq/for_each.hpp&gt;</a></li>
+		<li>
+			<a href="seq/for_each_i.html">&lt;boost/preprocessor/seq/for_each_i.hpp&gt;</a></li>
+		<li>
+			<a href="seq/for_each_product.html">&lt;boost/preprocessor/seq/for_each_product.hpp&gt;</a></li>
+		<li>
+			<a href="seq/insert.html">&lt;boost/preprocessor/seq/insert.hpp&gt;</a></li>
+		<li>
+			<a href="seq/pop_back.html">&lt;boost/preprocessor/seq/pop_back.hpp&gt;</a></li>
+		<li>
+			<a href="seq/pop_front.html">&lt;boost/preprocessor/seq/pop_front.hpp&gt;</a></li>
+		<li>
+			<a href="seq/push_back.html">&lt;boost/preprocessor/seq/push_back.hpp&gt;</a></li>
+		<li>
+			<a href="seq/push_front.html">&lt;boost/preprocessor/seq/push_front.hpp&gt;</a></li>
+		<li>
+			<a href="seq/remove.html">&lt;boost/preprocessor/seq/remove.hpp&gt;</a></li>
+		<li>
+			<a href="seq/replace.html">&lt;boost/preprocessor/seq/replace.hpp&gt;</a></li>
+		<li>
+			<a href="seq/rest_n.html">&lt;boost/preprocessor/seq/rest_n.hpp&gt;</a></li>
+		<li>
+			<a href="seq/reverse.html">&lt;boost/preprocessor/seq/reverse.hpp&gt;</a></li>
+		<li>
+			<a href="seq/seq.html">&lt;boost/preprocessor/seq/seq.hpp&gt;</a></li>
+		<li>
+			<a href="seq/size.html">&lt;boost/preprocessor/seq/size.hpp&gt;</a></li>
+		<li>
+			<a href="seq/subseq.html">&lt;boost/preprocessor/seq/subseq.hpp&gt;</a></li>
+		<li>
+			<a href="seq/to_array.html">&lt;boost/preprocessor/seq/to_array.hpp&gt;</a></li>
+        <li>
+            <a href="seq/to_list.html">&lt;boost/preprocessor/seq/to_list.hpp&gt;</a></li>
+		<li>
+			<a href="seq/to_tuple.html">&lt;boost/preprocessor/seq/to_tuple.hpp&gt;</a></li>
+		<li>
+			<a href="seq/transform.html">&lt;boost/preprocessor/seq/transform.hpp&gt;</a></li>
+		<li>
+			<a href="seq/variadic_seq_to_seq.html">&lt;boost/preprocessor/seq/variadic_seq_to_seq.hpp&gt;</a></li>
+	</ul>
+<hr size="1">
+<div style="margin-left: 0px;">
+	<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+	<br><i>© Copyright Paul Mensonides 2002</i>
+</div>
+<div style="margin-left: 0px;">
+	<p><small>Distributed under the Boost Software License, Version 1.0. (See
+	accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+	copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/headers/seq/cat.html b/doc/headers/seq/cat.html
new file mode 100644
index 0000000..9b2ecd1
--- /dev/null
+++ b/doc/headers/seq/cat.html
@@ -0,0 +1,38 @@
+<html>
+	<head>
+		<title>seq/cat.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/cat.hpp</b> header defines macros for concatenating all elements in 
+			a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/cat.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_cat.html">BOOST_PP_SEQ_CAT</a></li>
+			<li>
+				<a href="../../ref/seq_cat_s.html">BOOST_PP_SEQ_CAT_S</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/elem.html b/doc/headers/seq/elem.html
new file mode 100644
index 0000000..fcacbf7
--- /dev/null
+++ b/doc/headers/seq/elem.html
@@ -0,0 +1,35 @@
+<html>
+	<head>
+		<title>seq/elem.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/elem.hpp</b> header defines a macro to extract an element from a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/elem.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_elem.html">BOOST_PP_SEQ_ELEM</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/enum.html b/doc/headers/seq/enum.html
new file mode 100644
index 0000000..bda1e08
--- /dev/null
+++ b/doc/headers/seq/enum.html
@@ -0,0 +1,35 @@
+<html>
+	<head>
+		<title>seq/enum.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/enum.hpp</b> header defines a macro to enumerate the elements in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/enum.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_enum.html">BOOST_PP_SEQ_ENUM</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/filter.html b/doc/headers/seq/filter.html
new file mode 100644
index 0000000..7435e92
--- /dev/null
+++ b/doc/headers/seq/filter.html
@@ -0,0 +1,37 @@
+<html>
+	<head>
+		<title>seq/filter.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/filter.hpp</b> header defines macros to filter a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/filter.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_filter.html">BOOST_PP_SEQ_FILTER</a></li>
+			<li>
+				<a href="../../ref/seq_filter_s.html">BOOST_PP_SEQ_FILTER_S</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/first_n.html b/doc/headers/seq/first_n.html
new file mode 100644
index 0000000..c3183af
--- /dev/null
+++ b/doc/headers/seq/first_n.html
@@ -0,0 +1,36 @@
+<html>
+	<head>
+		<title>seq/first_n.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/first_n.hpp</b> header defines a macro that returns the first <i>N</i>
+			elements of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/first_n.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/fold_left.html b/doc/headers/seq/fold_left.html
new file mode 100644
index 0000000..0172dda
--- /dev/null
+++ b/doc/headers/seq/fold_left.html
@@ -0,0 +1,38 @@
+<html>
+	<head>
+		<title>seq/fold_left.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/fold_left.hpp</b> header defines macros for folding (or 
+			accumulating) a <i>seq</i> left-to-right.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/fold_left.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a></li>
+			<li>
+				<a href="../../ref/seq_fold_left_s.html">BOOST_PP_SEQ_FOLD_LEFT_<i>s</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/fold_right.html b/doc/headers/seq/fold_right.html
new file mode 100644
index 0000000..5e841bb
--- /dev/null
+++ b/doc/headers/seq/fold_right.html
@@ -0,0 +1,38 @@
+<html>
+	<head>
+		<title>seq/fold_right.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/fold_right.hpp</b> header defines macros for folding (or 
+			accumulating) a <i>seq</i> right-to-left.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/fold_right.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_fold_right.html">BOOST_PP_SEQ_FOLD_RIGHT</a></li>
+			<li>
+				<a href="../../ref/seq_fold_right_s.html">BOOST_PP_SEQ_FOLD_RIGHT_<i>s</i></a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/for_each.html b/doc/headers/seq/for_each.html
new file mode 100644
index 0000000..2e03493
--- /dev/null
+++ b/doc/headers/seq/for_each.html
@@ -0,0 +1,38 @@
+<html>
+	<head>
+		<title>seq/for_each.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/for_each.hpp</b> header defines macros to repeat a macro for each 
+			element in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/for_each.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_for_each.html">BOOST_PP_SEQ_FOR_EACH</a></li>
+			<li>
+				<a href="../../ref/seq_for_each_r.html">BOOST_PP_SEQ_FOR_EACH_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/for_each_i.html b/doc/headers/seq/for_each_i.html
new file mode 100644
index 0000000..5136182
--- /dev/null
+++ b/doc/headers/seq/for_each_i.html
@@ -0,0 +1,38 @@
+<html>
+	<head>
+		<title>seq/for_each_i.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/for_each_i.hpp</b> header defines macros to repeat a macro for each 
+			element in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/for_each_i.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_for_each_i.html">BOOST_PP_SEQ_FOR_EACH_I</a></li>
+			<li>
+				<a href="../../ref/seq_for_each_i_r.html">BOOST_PP_SEQ_FOR_EACH_I_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/for_each_product.html b/doc/headers/seq/for_each_product.html
new file mode 100644
index 0000000..88f9536
--- /dev/null
+++ b/doc/headers/seq/for_each_product.html
@@ -0,0 +1,38 @@
+<html>
+	<head>
+		<title>seq/for_each_product.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/for_each_product.hpp</b> header defines macros to repeat a macro for 
+			each cartesian product of several <i>seqs</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/for_each_product.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_for_each_product.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT</a></li>
+			<li>
+				<a href="../../ref/seq_for_each_product_r.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/insert.html b/doc/headers/seq/insert.html
new file mode 100644
index 0000000..bc13cfa
--- /dev/null
+++ b/doc/headers/seq/insert.html
@@ -0,0 +1,35 @@
+<html>
+	<head>
+		<title>seq/insert.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/insert.hpp</b> header defines a macro to insert an element into a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/insert.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_insert.html">BOOST_PP_SEQ_INSERT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/pop_back.html b/doc/headers/seq/pop_back.html
new file mode 100644
index 0000000..3e56e0d
--- /dev/null
+++ b/doc/headers/seq/pop_back.html
@@ -0,0 +1,36 @@
+<html>
+	<head>
+		<title>seq/pop_back.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/pop_back.hpp</b> header defines a macro to pop the last element off 
+			a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/pop_back.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_pop_back.html">BOOST_PP_SEQ_POP_BACK</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/pop_front.html b/doc/headers/seq/pop_front.html
new file mode 100644
index 0000000..b9a47fc
--- /dev/null
+++ b/doc/headers/seq/pop_front.html
@@ -0,0 +1,36 @@
+<html>
+	<head>
+		<title>seq/pop_front.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/pop_front.hpp</b> header defines a macro to pop the first element 
+			off a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/pop_front.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_pop_front.html">BOOST_PP_SEQ_POP_FRONT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/push_back.html b/doc/headers/seq/push_back.html
new file mode 100644
index 0000000..9366b54
--- /dev/null
+++ b/doc/headers/seq/push_back.html
@@ -0,0 +1,35 @@
+<html>
+	<head>
+		<title>seq/push_back.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/push_back.hpp</b> header defines a macro to append an element to a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/push_back.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/push_front.html b/doc/headers/seq/push_front.html
new file mode 100644
index 0000000..8e56078
--- /dev/null
+++ b/doc/headers/seq/push_front.html
@@ -0,0 +1,35 @@
+<html>
+	<head>
+		<title>seq/push_front.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/push_front.hpp</b> header defines a macro to prepend an element to a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/push_front.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/remove.html b/doc/headers/seq/remove.html
new file mode 100644
index 0000000..024057a
--- /dev/null
+++ b/doc/headers/seq/remove.html
@@ -0,0 +1,35 @@
+<html>
+	<head>
+		<title>seq/remove.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/remove.hpp</b> header defines a macro to remove an element from a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/remove.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_remove.html">BOOST_PP_SEQ_REMOVE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/replace.html b/doc/headers/seq/replace.html
new file mode 100644
index 0000000..b945045
--- /dev/null
+++ b/doc/headers/seq/replace.html
@@ -0,0 +1,35 @@
+<html>
+	<head>
+		<title>seq/replace.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/replace.hpp</b> header defines a macro to replace an element in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/replace.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_replace.html">BOOST_PP_SEQ_REPLACE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/rest_n.html b/doc/headers/seq/rest_n.html
new file mode 100644
index 0000000..e42601a
--- /dev/null
+++ b/doc/headers/seq/rest_n.html
@@ -0,0 +1,36 @@
+<html>
+	<head>
+		<title>seq/rest_n.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/rest_n.hpp</b> header defines a macro for extracting a group of 
+			elements from the end of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/rest_n.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_rest_n.html">BOOST_PP_SEQ_REST_N</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/reverse.html b/doc/headers/seq/reverse.html
new file mode 100644
index 0000000..1e86b2c
--- /dev/null
+++ b/doc/headers/seq/reverse.html
@@ -0,0 +1,37 @@
+<html>
+	<head>
+		<title>seq/reverse.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/reverse.hpp</b> header defines macros to reverse a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/reverse.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_reverse.html">BOOST_PP_SEQ_REVERSE</a></li>
+			<li>
+				<a href="../../ref/seq_reverse_s.html">BOOST_PP_SEQ_REVERSE_S</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/seq.html b/doc/headers/seq/seq.html
new file mode 100644
index 0000000..7e72ae2
--- /dev/null
+++ b/doc/headers/seq/seq.html
@@ -0,0 +1,39 @@
+<html>
+	<head>
+		<title>seq/seq.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/seq.hpp</b> header defines basic primitives for manipulating <i>seqs</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/seq.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_head.html">BOOST_PP_SEQ_HEAD</a></li>
+			<li>
+				<a href="../../ref/seq_nil.html">BOOST_PP_SEQ_NIL</a></li>
+			<li>
+				<a href="../../ref/seq_tail.html">BOOST_PP_SEQ_TAIL</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/size.html b/doc/headers/seq/size.html
new file mode 100644
index 0000000..f882ed7
--- /dev/null
+++ b/doc/headers/seq/size.html
@@ -0,0 +1,35 @@
+<html>
+	<head>
+		<title>seq/size.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/size.hpp</b> header defines a macro to calculate the size of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/size.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_size.html">BOOST_PP_SEQ_SIZE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/subseq.html b/doc/headers/seq/subseq.html
new file mode 100644
index 0000000..283d8f9
--- /dev/null
+++ b/doc/headers/seq/subseq.html
@@ -0,0 +1,35 @@
+<html>
+	<head>
+		<title>seq/subseq.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/subseq.hpp</b> header defines a macro that extracts a subseq from a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/subseq.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_subseq.html">BOOST_PP_SEQ_SUBSEQ</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/to_array.html b/doc/headers/seq/to_array.html
new file mode 100644
index 0000000..dfd1d0e
--- /dev/null
+++ b/doc/headers/seq/to_array.html
@@ -0,0 +1,36 @@
+<html>
+	<head>
+		<title>seq/to_array.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/to_array.hpp</b> header defines a macro that converts a <i>seq</i> to 
+			an <i>array</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/to_array.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_to_array.html">BOOST_PP_SEQ_TO_ARRAY</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/to_list.html b/doc/headers/seq/to_list.html
new file mode 100644
index 0000000..bf70d57
--- /dev/null
+++ b/doc/headers/seq/to_list.html
@@ -0,0 +1,30 @@
+<html><head>
+  <title>seq/to_list.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+		<div style="margin-left: 0px;">
+			The <b>seq/to_list.hpp</b> header defines a macro that converts a <i>seq</i> to 
+			a <i>list</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/to_list.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_to_list.html">BOOST_PP_SEQ_TO_LIST</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body></html>
diff --git a/doc/headers/seq/to_tuple.html b/doc/headers/seq/to_tuple.html
new file mode 100644
index 0000000..eefb183
--- /dev/null
+++ b/doc/headers/seq/to_tuple.html
@@ -0,0 +1,36 @@
+<html>
+	<head>
+		<title>seq/to_tuple.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/to_tuple.hpp</b> header defines a macro that converts a <i>seq</i> to 
+			an <i>tuple</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/to_tuple.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_to_tuple.html">BOOST_PP_SEQ_TO_TUPLE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/transform.html b/doc/headers/seq/transform.html
new file mode 100644
index 0000000..e3ba5b1
--- /dev/null
+++ b/doc/headers/seq/transform.html
@@ -0,0 +1,37 @@
+<html>
+	<head>
+		<title>seq/transform.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/transform.hpp</b> header defines macros to transform a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/transform.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/seq_transform.html">BOOST_PP_SEQ_TRANSFORM</a></li>
+			<li>
+				<a href="../../ref/seq_transform_s.html">BOOST_PP_SEQ_TRANSFORM_S</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/seq/variadic_seq_to_seq.html b/doc/headers/seq/variadic_seq_to_seq.html
new file mode 100644
index 0000000..3c3457e
--- /dev/null
+++ b/doc/headers/seq/variadic_seq_to_seq.html
@@ -0,0 +1,34 @@
+<html>
+	<head>
+		<title>seq/variadic_seq_to_seq.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>seq/variadic_seq_to_seq.hpp</b> header defines a macro that converts a <i>variadic seq</i> into a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/seq/variadic_seq_to_seq.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/variadic_seq_to_seq.html">BOOST_PP_VARIADIC_SEQ_TO_SEQ</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright Paul Mensonides 2012</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/headers/slot.html b/doc/headers/slot.html
new file mode 100644
index 0000000..5de2bc1
--- /dev/null
+++ b/doc/headers/slot.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>slot.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>slot.hpp</b> includes the headers in the <i>slot</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/slot.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="slot/slot.html">&lt;boost/preprocessor/slot/slot.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/slot/counter.html b/doc/headers/slot/counter.html
new file mode 100644
index 0000000..35e80df
--- /dev/null
+++ b/doc/headers/slot/counter.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>slot/counter.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>slot/counter.hpp</b> header defines macros used to generate numbers that are unique within a translation unit.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/slot/counter.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/counter.html">BOOST_PP_COUNTER</a></li>
+			<li><a href="../../ref/update_counter.html">BOOST_PP_UPDATE_COUNTER</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/slot/slot.html b/doc/headers/slot/slot.html
new file mode 100644
index 0000000..b93e359
--- /dev/null
+++ b/doc/headers/slot/slot.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>slot/slot.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>slot/slot.hpp</b> header defines macros to manipulate <i>slots</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/slot/slot.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/assign_slot.html">BOOST_PP_ASSIGN_SLOT</a></li>
+			<li><a href="../../ref/slot.html">BOOST_PP_SLOT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/stringize.html b/doc/headers/stringize.html
new file mode 100644
index 0000000..7b6b3d4
--- /dev/null
+++ b/doc/headers/stringize.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>stringize.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>stringize.hpp</b> header defines a stringizing macro.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/stringize.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../ref/stringize.html">BOOST_PP_STRINGIZE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/tuple.html b/doc/headers/tuple.html
new file mode 100644
index 0000000..96da3cb
--- /dev/null
+++ b/doc/headers/tuple.html
@@ -0,0 +1,59 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>tuple.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left: 0px;"> The <b>tuple.hpp</b> includes the headers
+      in the <i>tuple</i> folder. </div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/tuple.hpp&gt;</b> </div>
+    <h4>Includes</h4>
+    <ul>
+      <li><a href="tuple/eat.html">&lt;boost/preprocessor/tuple/eat.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+      <li><a href="tuple/elem.html">&lt;boost/preprocessor/tuple/elem.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+      <li><a href="tuple/enum.html">&lt;boost/preprocessor/tuple/enum.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+      <li><a href="tuple/insert.html">&lt;boost/preprocessor/tuple/insert.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="tuple/pop_back.html">&lt;boost/preprocessor/tuple/pop_back.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="tuple/pop_front.html">&lt;boost/preprocessor/tuple/pop_front.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="tuple/push_back.html">&lt;boost/preprocessor/tuple/push_back.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="tuple/push_front.html">&lt;boost/preprocessor/tuple/push_front.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="tuple/rem.html">&lt;boost/preprocessor/tuple/rem.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+      <li><a href="tuple/remove.html">&lt;boost/preprocessor/tuple/remove.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="tuple/replace.html">&lt;boost/preprocessor/tuple/replace.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="tuple/reverse.html">&lt;boost/preprocessor/tuple/reverse.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+      <li><a href="tuple/size.html">&lt;boost/preprocessor/tuple/size.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+      <li><a href="tuple/to_array.html">&lt;boost/preprocessor/tuple/to_array.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+      <li><a href="tuple/to_list.html">&lt;boost/preprocessor/tuple/to_list.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+      <li><a href="tuple/to_seq.html">&lt;boost/preprocessor/tuple/to_seq.hpp&gt;</a>
+        <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002<br>
+      </i><i>© Copyright Edward Diener 2013</i><br>
+    </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/tuple/eat.html b/doc/headers/tuple/eat.html
new file mode 100644
index 0000000..d74af35
--- /dev/null
+++ b/doc/headers/tuple/eat.html
@@ -0,0 +1,25 @@
+<html><head><title>tuple/eat.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+	<div style="margin-left: 0px;">
+		The <b>tuple/eat.hpp</b> header defines a macro eats a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/tuple/eat.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/tuple_eat.html">BOOST_PP_TUPLE_EAT</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/tuple/elem.html b/doc/headers/tuple/elem.html
new file mode 100644
index 0000000..ab35f10
--- /dev/null
+++ b/doc/headers/tuple/elem.html
@@ -0,0 +1,25 @@
+<html><head><title>tuple/elem.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+	<div style="margin-left: 0px;">
+		The <b>tuple/elem.hpp</b> header defines a macro to extract elements from a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/tuple/elem.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/tuple/enum.html b/doc/headers/tuple/enum.html
new file mode 100644
index 0000000..5f9a11d
--- /dev/null
+++ b/doc/headers/tuple/enum.html
@@ -0,0 +1,25 @@
+<html><head>
+  <title>tuple/enum.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+	<div style="margin-left: 0px;">
+		The <b>tuple/enum.hpp</b> header defines a macro to convert a <i>tuple</i> to its comma-separated elements.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/tuple/enum.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/tuple_enum.html">BOOST_PP_TUPLE_ENUM</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011,2013</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/tuple/insert.html b/doc/headers/tuple/insert.html
new file mode 100644
index 0000000..2af84b4
--- /dev/null
+++ b/doc/headers/tuple/insert.html
@@ -0,0 +1,27 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>tuple/insert.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>tuple/insert.hpp</b> header defines
+      macros to insert an element into an <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/tuple/insert.hpp&gt;</b>
+    </div>
+    <h4>Contents</h4>
+    <ul>
+      <li><a href="../../ref/tuple_insert.html">BOOST_PP_TUPLE_INSERT</a> <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="../../ref/tuple_insert_d.html">BOOST_PP_TUPLE_INSERT_D</a> <a
+          href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/tuple/pop_back.html b/doc/headers/tuple/pop_back.html
new file mode 100644
index 0000000..e6edefc
--- /dev/null
+++ b/doc/headers/tuple/pop_back.html
@@ -0,0 +1,28 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>tuple/pop_back.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>tuple/pop_back.hpp</b> header
+      defines macros to pop an element from the end of an <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/tuple/pop_back.hpp&gt;</b>
+    </div>
+    <h4>Contents</h4>
+    <ul>
+      <li><a href="../../ref/tuple_pop_back.html">BOOST_PP_TUPLE_POP_BACK</a> <a
+          href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="../../ref/tuple_pop_back_z.html">BOOST_PP_TUPLE_POP_BACK_Z</a>
+        <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/tuple/pop_front.html b/doc/headers/tuple/pop_front.html
new file mode 100644
index 0000000..633acdb
--- /dev/null
+++ b/doc/headers/tuple/pop_front.html
@@ -0,0 +1,28 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>tuple/pop_front.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>tuple/pop_front.hpp</b> header
+      defines macros to pop an element from the beginning of an <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/tuple/pop_front.hpp&gt;</b>
+    </div>
+    <h4>Contents</h4>
+    <ul>
+      <li><a href="../../ref/tuple_pop_front.html">BOOST_PP_TUPLE_POP_FRONT</a>
+        <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="../../ref/tuple_pop_front_z.html">BOOST_PP_TUPLE_POP_FRONT_Z</a>
+        <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/tuple/push_back.html b/doc/headers/tuple/push_back.html
new file mode 100644
index 0000000..9cedd21
--- /dev/null
+++ b/doc/headers/tuple/push_back.html
@@ -0,0 +1,26 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>tuple/push_back.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>tuple/push_back.hpp</b> header
+      defines a macro to append an element to the end of an <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/tuple/push_back.hpp&gt;</b>
+    </div>
+    <h4>Contents</h4>
+    <ul>
+      <li><a href="../../ref/tuple_push_back.html">BOOST_PP_TUPLE_PUSH_BACK</a>
+        <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/tuple/push_front.html b/doc/headers/tuple/push_front.html
new file mode 100644
index 0000000..7d5510b
--- /dev/null
+++ b/doc/headers/tuple/push_front.html
@@ -0,0 +1,26 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>tuple/push_front.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>tuple/push_front.hpp</b> header
+      defines a macro to append an element to the beginning of an <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/tuple/push_front.hpp&gt;</b>
+    </div>
+    <h4>Contents</h4>
+    <ul>
+      <li><a href="../../ref/tuple_push_front.html">BOOST_PP_TUPLE_PUSH_FRONT</a>
+        <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/tuple/rem.html b/doc/headers/tuple/rem.html
new file mode 100644
index 0000000..c90fa29
--- /dev/null
+++ b/doc/headers/tuple/rem.html
@@ -0,0 +1,27 @@
+<html><head><title>tuple/rem.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+	<div style="margin-left: 0px;">
+		The <b>tuple/rem.hpp</b> header defines a macro that removes the parentheses from a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/tuple/rem.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/tuple_rem.html">BOOST_PP_TUPLE_REM</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+			<li><a href="../../ref/tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/tuple/remove.html b/doc/headers/tuple/remove.html
new file mode 100644
index 0000000..651113c
--- /dev/null
+++ b/doc/headers/tuple/remove.html
@@ -0,0 +1,27 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>tuple/remove.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>tuple/remove.hpp</b> header defines
+      macros to remove an element from an <i>array</i>. </div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/tuple/remove.hpp&gt;</b>
+    </div>
+    <h4>Contents</h4>
+    <ul>
+      <li><a href="../../ref/tuple_remove.html">BOOST_PP_TUPLE_REMOVE</a> <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="../../ref/tuple_remove_d.html">BOOST_PP_TUPLE_REMOVE_D</a> <a
+          href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/tuple/replace.html b/doc/headers/tuple/replace.html
new file mode 100644
index 0000000..03ca25d
--- /dev/null
+++ b/doc/headers/tuple/replace.html
@@ -0,0 +1,28 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>tuple/replace.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>tuple/replace.hpp</b> header
+      defines macros to replace an element in an <i>array</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> #include <b>&lt;boost/preprocessor/tuple/replace.hpp&gt;</b>
+    </div>
+    <h4>Contents</h4>
+    <ul>
+      <li><a href="../../ref/tuple_replace.html">BOOST_PP_TUPLE_REPLACE</a> <a
+          href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="../../ref/tuple_replace_d.html">BOOST_PP_TUPLE_REPLACE_D</a>
+        <a href="../../topics/variadic_macros.html#VNotation">(v)</a></li>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/headers/tuple/reverse.html b/doc/headers/tuple/reverse.html
new file mode 100644
index 0000000..785e393
--- /dev/null
+++ b/doc/headers/tuple/reverse.html
@@ -0,0 +1,25 @@
+<html><head><title>tuple/reverse.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+	<div style="margin-left: 0px;">
+		The <b>tuple/reverse.hpp</b> header defines a macro that reverses a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/tuple/reverse.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/tuple/size.html b/doc/headers/tuple/size.html
new file mode 100644
index 0000000..264a9d7
--- /dev/null
+++ b/doc/headers/tuple/size.html
@@ -0,0 +1,25 @@
+<html><head>
+  <title>tuple/size.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+	<div style="margin-left: 0px;">
+		The <b>tuple/size.hpp</b> header defines a variadic macro that gives the number of elements in the <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/tuple/size.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/tuple_size.html">BOOST_PP_TUPLE_SIZE</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011,2013</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/tuple/to_array.html b/doc/headers/tuple/to_array.html
new file mode 100644
index 0000000..c7530b5
--- /dev/null
+++ b/doc/headers/tuple/to_array.html
@@ -0,0 +1,25 @@
+<html><head>
+  <title>tuple/to_array.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+	<div style="margin-left: 0px;">
+		The <b>tuple/to_array.hpp</b> header defines a macro that converts a <i>tuple</i> to an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/tuple/to_array.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011,2013</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/tuple/to_list.html b/doc/headers/tuple/to_list.html
new file mode 100644
index 0000000..2d42284
--- /dev/null
+++ b/doc/headers/tuple/to_list.html
@@ -0,0 +1,25 @@
+<html><head><title>tuple/to_list.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+	<div style="margin-left: 0px;">
+		The <b>tuple/to_list.hpp</b> header defines a macro that converts a <i>tuple</i> to a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/tuple/to_list.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../../ref/tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><sup><br>
+    </sup></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/tuple/to_seq.html b/doc/headers/tuple/to_seq.html
new file mode 100644
index 0000000..b3420e3
--- /dev/null
+++ b/doc/headers/tuple/to_seq.html
@@ -0,0 +1,31 @@
+<html><head><title>tuple/to_seq.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+		<div style="margin-left: 0px;">
+			The <b>tuple/to_seq.hpp</b> header defines a macro that converts a <i>tuple</i> 
+			to a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/tuple/to_seq.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body></html>
diff --git a/doc/headers/variadic.html b/doc/headers/variadic.html
new file mode 100644
index 0000000..0acc99c
--- /dev/null
+++ b/doc/headers/variadic.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+  <title>variadic.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left: 0px;">
+		The <b>variadic.hpp</b> includes the headers in the <i>variadic</i> folder. 
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/variadic.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="variadic/elem.html">&lt;boost/preprocessor/variadic/elem.hpp&gt;</a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+			<li><a href="variadic/size.html">&lt;boost/preprocessor/variadic/size.hpp&gt;</a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+			<li><a href="variadic/to_array.html">&lt;boost/preprocessor/variadic/to_array.hpp&gt;</a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+			<li><a href="variadic/to_list.html">&lt;boost/preprocessor/variadic/to_list.hpp&gt;</a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+			<li><a href="variadic/to_seq.html">&lt;boost/preprocessor/variadic/to_seq.hpp&gt;</a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+            <li><a href="variadic/to_tuple.html">&lt;boost/preprocessor/variadic/to_tuple.hpp&gt;</a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011,2013</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/variadic/elem.html b/doc/headers/variadic/elem.html
new file mode 100644
index 0000000..f37fe22
--- /dev/null
+++ b/doc/headers/variadic/elem.html
@@ -0,0 +1,29 @@
+<html>
+  <head>
+    <title>variadic/elem.hpp
+    </title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css">
+  </head>
+  <body>
+  <div style="margin-left: 0px;">
+    The <b>variadic/elem.hpp</b> header defines a variadic macro to extract an element from <i>variadic data</i>.
+  </div>
+  				<h4>Usage</h4>
+  						<div class="code">
+  									#include <b>&lt;boost/preprocessor/variadic/elem.hpp&gt;</b>
+  											</div>
+  												<h4>Contents</h4>
+  														<ul>
+			<li><a href="../../ref/variadic_elem.html">BOOST_PP_VARIADIC_ELEM</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011,2013</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body></html>
diff --git a/doc/headers/variadic/size.html b/doc/headers/variadic/size.html
new file mode 100644
index 0000000..dec4e93
--- /dev/null
+++ b/doc/headers/variadic/size.html
@@ -0,0 +1,25 @@
+<html><head>
+  <title>variadic/size.hpp</title>
+  <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+   <div style="margin-left: 0px;">
+   The <b>variadic/size.hpp</b> header defines a variadic macro that gives the number of comma-separated elements in the <i>variadic data</i>.
+   </div>
+   <h4>Usage</h4>
+   <div class="code">
+   #include <b>&lt;boost/preprocessor/variadic/size.hpp&gt;</b>
+   </div>
+   <h4>Contents</h4>
+   <ul>
+   <li><a href="../../ref/variadic_size.html">BOOST_PP_VARIADIC_SIZE</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+   </li>
+   </ul>
+   <hr size="1">
+   <div style="margin-left: 0px;">
+   <i></i><i>© Copyright Edward Diener 2011,2013</i>
+   </div>
+   <div style="margin-left: 0px;">
+   <p><small>Distributed under the Boost Software License, Version 1.0. (See
+   accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+   copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+   </div>
+   </body></html>
\ No newline at end of file
diff --git a/doc/headers/variadic/to_array.html b/doc/headers/variadic/to_array.html
new file mode 100644
index 0000000..26525ef
--- /dev/null
+++ b/doc/headers/variadic/to_array.html
@@ -0,0 +1,25 @@
+<html><head>
+  <title>variadic/to_array.hpp</title>
+    <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+    <div style="margin-left: 0px;">
+        The <b>variadic/to_array.hpp</b> header defines a variadic macro that converts <i>variadic data</i> to an <i>array</i>.
+    </div>
+    <h4>Usage</h4>
+        <div class="code">
+            #include <b>&lt;boost/preprocessor/variadic/to_array.hpp&gt;</b>
+        </div>
+    <h4>Contents</h4>
+        <ul>
+            <li><a href="../../ref/variadic_to_array.html">BOOST_PP_VARIADIC_TO_ARRAY</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+        </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;">
+        <i></i><i>© Copyright Edward Diener 2011,2013</i>
+    </div>
+    <div style="margin-left: 0px;">
+        <p><small>Distributed under the Boost Software License, Version 1.0. (See
+        accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+        copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+</body></html>
\ No newline at end of file
diff --git a/doc/headers/variadic/to_list.html b/doc/headers/variadic/to_list.html
new file mode 100644
index 0000000..1a6bc85
--- /dev/null
+++ b/doc/headers/variadic/to_list.html
@@ -0,0 +1,25 @@
+<html><head>
+  <title>variadic/to_list.hpp</title>
+      <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+       <div style="margin-left: 0px;">
+        The <b>variadic/to_list.hpp</b> header defines a variadic macro that converts <i>variadic data </i>to a <i>list</i>.
+     </div>
+    <h4>Usage</h4>
+     <div class="code">
+      #include <b>&lt;boost/preprocessor/variadic/to_list.hpp&gt;</b>
+      </div>
+    <h4>Contents</h4>
+        <ul>
+            <li><a href="../../ref/variadic_to_list.html">BOOST_PP_VARIADIC_TO_LIST</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+        </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;">
+        <i></i><i>© Copyright Edward Diener 2011,2013</i>
+    </div>
+    <div style="margin-left: 0px;">
+        <p><small>Distributed under the Boost Software License, Version 1.0. (See
+        accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+        copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+</body></html>
\ No newline at end of file
diff --git a/doc/headers/variadic/to_seq.html b/doc/headers/variadic/to_seq.html
new file mode 100644
index 0000000..64022dd
--- /dev/null
+++ b/doc/headers/variadic/to_seq.html
@@ -0,0 +1,30 @@
+<html><head>
+  <title>variadic/to_seq.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+		<div style="margin-left: 0px;">
+			The <b>variadic/to_seq.hpp</b> header defines a variadic macro that converts <i>variadic data </i>to a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/variadic/to_seq.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/variadic_to_seq.html">BOOST_PP_VARIADIC_TO_SEQ</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011,2013</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body></html>
diff --git a/doc/headers/variadic/to_tuple.html b/doc/headers/variadic/to_tuple.html
new file mode 100644
index 0000000..ee55807
--- /dev/null
+++ b/doc/headers/variadic/to_tuple.html
@@ -0,0 +1,31 @@
+<html><head>
+  <title>variadic/to_tuple.hpp</title>
+		<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+		<div style="margin-left: 0px;">
+			The <b>variadic/to_tuple.hpp</b> header defines a variadic macro that converts <i>variadic data</i> 
+			to a <i>tuple</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/variadic/to_tuple.hpp&gt;</b>
+		</div>
+		<h4>
+			Contents
+		</h4>
+		<ul>
+			<li>
+				<a href="../../ref/variadic_to_tuple.html">BOOST_PP_VARIADIC_TO_TUPLE</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a><br>
+</li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i></i><i>© Copyright Edward Diener 2011,2013</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body></html>
diff --git a/doc/headers/while.html b/doc/headers/while.html
new file mode 100644
index 0000000..8f0d59b
--- /dev/null
+++ b/doc/headers/while.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+	<title>while.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>while.hpp</b> is a jumper header for backwards compatibility.&nbsp;
+		This header is deprecated.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/while.hpp&gt;</b>
+		</div>
+	<h4>Includes</h4>
+		<ul>
+			<li><a href="control/while.html">&lt;boost/preprocessor/control/while.hpp&gt;</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/headers/wstringize.html b/doc/headers/wstringize.html
new file mode 100644
index 0000000..1b7d6d0
--- /dev/null
+++ b/doc/headers/wstringize.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+	<title>wstringize.hpp</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>wstringize.hpp</b> header defines a wide stringizing macro.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>&lt;boost/preprocessor/wstringize.hpp&gt;</b>
+		</div>
+	<h4>Contents</h4>
+		<ul>
+			<li><a href="../ref/wstringize.html">BOOST_PP_WSTRINGIZE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/index.html b/doc/index.html
new file mode 100644
index 0000000..4aedc19
--- /dev/null
+++ b/doc/index.html
@@ -0,0 +1,23 @@
+<html>
+	<head>
+		<title>Boost.Preprocessor</title>
+	</head>
+	<frameset rows="65,*" frameborder="0">
+		<frame name="top" src="top.html" scrolling="no" noresize>
+		<frameset cols="350,*" frameborder="0" border="3">
+			<frame name="index" src="contents.html" scrolling="auto">
+			<frame name="desc" src="title.html" scrolling="auto">
+		</frameset>
+		<noframes>
+			..</noframes>
+	</frameset>
+
+<!--
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
+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)
+-->
+
+</html>
diff --git a/doc/miscellanea.html b/doc/miscellanea.html
new file mode 100644
index 0000000..87a5526
--- /dev/null
+++ b/doc/miscellanea.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+	<title>miscellanea.html</title>
+	<link rel="stylesheet" type="text/css" href="styles.css">
+	<base target="desc">
+</head>
+<body>
+<h4>Miscellanea <small><a href="contents.html" target="index">[back]</a></small></h4>
+<ul>
+	<li><a href="syntax.html">syntax highlighting</a></li>
+	<li><a href="acknowledgements.html">acknowledgements</a></li>
+	<li><a href="bibliography.html">bibliography</a></li>
+</ul>
+
+<!--
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
+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)
+-->
+
+</body>
+</html>
diff --git a/doc/ref.html b/doc/ref.html
new file mode 100644
index 0000000..102325a
--- /dev/null
+++ b/doc/ref.html
@@ -0,0 +1,319 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>ref.html</title>
+    <link rel="stylesheet" type="text/css" href="styles.css">
+    <base target="desc">
+  </head>
+  <body>
+    <h4> Reference <small><a href="contents.html" target="index">[back]</a></small>
+    </h4>
+    <ul>
+      <!-- A -->
+      <li><a href="ref/add.html">ADD</a></li>
+      <li><a href="ref/add_d.html">ADD_D</a></li>
+      <li><a href="ref/and.html">AND</a></li>
+      <li><a href="ref/apply.html">APPLY</a></li>
+      <li><a href="ref/array_data.html">ARRAY_DATA</a></li>
+      <li><a href="ref/array_elem.html">ARRAY_ELEM</a></li>
+      <li><a href="ref/array_enum.html">ARRAY_ENUM</a></li>
+      <li><a href="ref/array_insert.html">ARRAY_INSERT</a></li>
+      <li><a href="ref/array_insert_d.html">ARRAY_INSERT_D</a></li>
+      <li><a href="ref/array_pop_back.html">ARRAY_POP_BACK</a></li>
+      <li><a href="ref/array_pop_back_z.html">ARRAY_POP_BACK_Z</a></li>
+      <li><a href="ref/array_pop_front.html">ARRAY_POP_FRONT</a></li>
+      <li><a href="ref/array_pop_front_z.html">ARRAY_POP_FRONT_Z</a></li>
+      <li><a href="ref/array_push_back.html">ARRAY_PUSH_BACK</a></li>
+      <li><a href="ref/array_push_front.html">ARRAY_PUSH_FRONT</a></li>
+      <li><a href="ref/array_remove.html">ARRAY_REMOVE</a></li>
+      <li><a href="ref/array_remove_d.html">ARRAY_REMOVE_D</a></li>
+      <li><a href="ref/array_replace.html">ARRAY_REPLACE</a></li>
+      <li><a href="ref/array_replace_d.html">ARRAY_REPLACE_D</a></li>
+      <li><a href="ref/array_reverse.html">ARRAY_REVERSE</a></li>
+      <li><a href="ref/array_size.html">ARRAY_SIZE</a></li>
+      <li><a href="ref/array_to_list.html">ARRAY_TO_LIST</a></li>
+      <li><a href="ref/array_to_seq.html">ARRAY_TO_SEQ</a></li>
+      <li><a href="ref/array_to_tuple.html">ARRAY_TO_TUPLE</a></li>
+      <li><a href="ref/assert.html">ASSERT</a></li>
+      <li><a href="ref/assert_msg.html">ASSERT_MSG</a></li>
+      <li><a href="ref/assign_slot.html">ASSIGN_SLOT</a></li>
+      <!-- B -->
+      <li><a href="ref/bitand.html">BITAND</a></li>
+      <li><a href="ref/bitnor.html">BITNOR</a></li>
+      <li><a href="ref/bitor.html">BITOR</a></li>
+      <li><a href="ref/bitxor.html">BITXOR</a></li>
+      <li><a href="ref/bool.html">BOOL</a></li>
+      <!-- C -->
+      <li><a href="ref/cat.html">CAT</a></li>
+      <li><a href="ref/comma.html">COMMA</a></li>
+      <li><a href="ref/comma_if.html">COMMA_IF</a></li>
+      <li><a href="ref/compl.html">COMPL</a></li>
+      <li><a href="ref/config_extended_line_info.html">CONFIG_EXTENDED_LINE_INFO</a></li>
+      <li><a href="ref/counter.html">COUNTER</a></li>
+      <!-- D -->
+      <li><a href="ref/dec.html">DEC</a></li>
+      <li><a href="ref/deduce_d.html">DEDUCE_D</a></li>
+      <li><a href="ref/deduce_r.html">DEDUCE_R</a></li>
+      <li><a href="ref/deduce_z.html">DEDUCE_Z</a></li>
+      <li><a href="ref/div.html">DIV</a></li>
+      <li><a href="ref/div_d.html">DIV_D</a></li>
+      <!-- E -->
+      <li><a href="ref/empty.html">EMPTY</a></li>
+      <li><a href="ref/enum.html">ENUM</a></li>
+      <li><a href="ref/enum_binary_params.html">ENUM_BINARY_PARAMS</a></li>
+      <li><a href="ref/enum_binary_params_z.html">ENUM_BINARY_PARAMS_Z</a></li>
+      <li><a href="ref/enum_params.html">ENUM_PARAMS</a></li>
+      <li><a href="ref/enum_params_with_a_default.html">ENUM_PARAMS_WITH_A_DEFAULT*</a></li>
+      <li><a href="ref/enum_params_with_defaults.html">ENUM_PARAMS_WITH_DEFAULTS*</a></li>
+      <li><a href="ref/enum_params_z.html">ENUM_PARAMS_Z</a></li>
+      <li><a href="ref/enum_shifted.html">ENUM_SHIFTED</a></li>
+      <li><a href="ref/esbp.html">ENUM_SHIFTED_BINARY_PARAMS</a></li>
+      <li><a href="ref/esbpz.html">ENUM_SHIFTED_BINARY_PARAMS_Z</a></li>
+      <li><a href="ref/enum_shifted_params.html">ENUM_SHIFTED_PARAMS</a></li>
+      <li><a href="ref/enum_shifted_params_z.html">ENUM_SHIFTED_PARAMS_Z</a></li>
+      <li><a href="ref/enum_shifted_z.html">ENUM_SHIFTED_<i>z</i></a></li>
+      <li><a href="ref/enum_trailing.html">ENUM_TRAILING</a></li>
+      <li><a href="ref/etbp.html">ENUM_TRAILING_BINARY_PARAMS</a></li>
+      <li><a href="ref/etbpz.html">ENUM_TRAILING_BINARY_PARAMS_Z</a></li>
+      <li><a href="ref/enum_trailing_params.html">ENUM_TRAILING_PARAMS</a></li>
+      <li><a href="ref/enum_trailing_params_z.html">ENUM_TRAILING_PARAMS_Z</a></li>
+      <li><a href="ref/enum_trailing_z.html">ENUM_TRAILING_<i>z</i></a></li>
+      <li><a href="ref/enum_z.html">ENUM_<i>z</i></a></li>
+      <li><a href="ref/equal.html">EQUAL</a></li>
+      <li><a href="ref/equal_d.html">EQUAL_D*</a></li>
+      <li><a href="ref/expand.html">EXPAND</a></li>
+      <li><a href="ref/expr_if.html">EXPR_IF</a></li>
+      <li><a href="ref/expr_iif.html">EXPR_IIF</a></li>
+      <!-- F -->
+      <li><a href="ref/filename_x.html">FILENAME_<i>x</i></a></li>
+      <li><a href="ref/for.html">FOR</a></li>
+      <li><a href="ref/for_r.html">FOR_<i>r</i></a></li>
+      <li><a href="ref/frame_finish.html">FRAME_FINISH</a></li>
+      <li><a href="ref/frame_flags.html">FRAME_FLAGS</a></li>
+      <li><a href="ref/frame_iteration.html">FRAME_ITERATION</a></li>
+      <li><a href="ref/frame_start.html">FRAME_START</a></li>
+      <!-- G -->
+      <li><a href="ref/greater.html">GREATER</a></li>
+      <li><a href="ref/greater_d.html">GREATER_D</a></li>
+      <li><a href="ref/greater_equal.html">GREATER_EQUAL</a></li>
+      <li><a href="ref/greater_equal_d.html">GREATER_EQUAL_D</a></li>
+      <!-- I -->
+      <li><a href="ref/identity.html">IDENTITY</a></li>
+      <li><a href="ref/identity_n.html">IDENTITY_N</a></li>
+      <li><a href="ref/if.html">IF</a></li>
+      <li><a href="ref/iif.html">IIF</a></li>
+      <li><a href="ref/inc.html">INC</a></li>
+      <li><a href="ref/include_self.html">INCLUDE_SELF</a></li>
+      <li><a href="ref/indirect_self.html">INDIRECT_SELF</a></li>
+      <li><a href="ref/intercept.html">INTERCEPT</a></li>
+      <li><a href="ref/is_begin_parens.html">IS_BEGIN_PARENS</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/is_iterating.html">IS_ITERATING</a></li>
+      <li><a href="ref/is_selfish.html">IS_SELFISH</a></li>
+      <li><a href="ref/iterate.html">ITERATE</a></li>
+      <li><a href="ref/iteration.html">ITERATION</a></li>
+      <li><a href="ref/iteration_depth.html">ITERATION_DEPTH</a></li>
+      <li><a href="ref/iteration_finish.html">ITERATION_FINISH</a></li>
+      <li><a href="ref/iteration_flags.html">ITERATION_FLAGS</a></li>
+      <li><a href="ref/iteration_limits.html">ITERATION_LIMITS</a></li>
+      <li><a href="ref/iteration_params_x.html">ITERATION_PARAMS_<i>x</i></a></li>
+      <li><a href="ref/iteration_start.html">ITERATION_START</a></li>
+      <!-- L -->
+      <li><a href="ref/less.html">LESS</a></li>
+      <li><a href="ref/less_d.html">LESS_D</a></li>
+      <li><a href="ref/less_equal.html">LESS_EQUAL</a></li>
+      <li><a href="ref/less_equal_d.html">LESS_EQUAL_D</a></li>
+      <li><a href="ref/limit_dim.html">LIMIT_DIM</a></li>
+      <li><a href="ref/limit_for.html">LIMIT_FOR</a></li>
+      <li><a href="ref/limit_iteration.html">LIMIT_ITERATION</a></li>
+      <li><a href="ref/limit_iteration_dim.html">LIMIT_ITERATION_DIM</a></li>
+      <li><a href="ref/limit_mag.html">LIMIT_MAG</a></li>
+      <li><a href="ref/limit_repeat.html">LIMIT_REPEAT</a></li>
+      <li><a href="ref/limit_seq.html">LIMIT_SEQ</a></li>
+      <li><a href="ref/limit_slot_count.html">LIMIT_SLOT_COUNT</a></li>
+      <li><a href="ref/limit_slot_sig.html">LIMIT_SLOT_SIG</a></li>
+      <li><a href="ref/limit_tuple.html">LIMIT_TUPLE</a></li>
+      <li><a href="ref/limit_variadic.html">LIMIT_VARIADIC</a></li>
+      <li><a href="ref/limit_while.html">LIMIT_WHILE</a></li>
+      <li><a href="ref/line.html">LINE</a></li>
+      <li><a href="ref/list_append.html">LIST_APPEND</a></li>
+      <li><a href="ref/list_append_d.html">LIST_APPEND_D</a></li>
+      <li><a href="ref/list_at.html">LIST_AT</a></li>
+      <li><a href="ref/list_at_d.html">LIST_AT_D</a></li>
+      <li><a href="ref/list_cat.html">LIST_CAT</a></li>
+      <li><a href="ref/list_cat_d.html">LIST_CAT_D</a></li>
+      <li><a href="ref/list_cons.html">LIST_CONS*</a></li>
+      <li><a href="ref/list_enum.html">LIST_ENUM</a></li>
+      <li><a href="ref/list_enum_r.html">LIST_ENUM_R</a></li>
+      <li><a href="ref/list_filter.html">LIST_FILTER</a></li>
+      <li><a href="ref/list_filter_d.html">LIST_FILTER_D</a></li>
+      <li><a href="ref/list_first.html">LIST_FIRST</a></li>
+      <li><a href="ref/list_first_n.html">LIST_FIRST_N</a></li>
+      <li><a href="ref/list_first_n_d.html">LIST_FIRST_N_D</a></li>
+      <li><a href="ref/list_fold_left.html">LIST_FOLD_LEFT</a></li>
+      <li><a href="ref/list_fold_left_2nd.html">LIST_FOLD_LEFT_2ND*</a></li>
+      <li><a href="ref/list_fold_left_2nd_d.html">LIST_FOLD_LEFT_2ND_D*</a></li>
+      <li><a href="ref/list_fold_left_d.html">LIST_FOLD_LEFT_<i>d</i></a></li>
+      <li><a href="ref/list_fold_left_d_old.html">LIST_FOLD_LEFT_D*</a></li>
+      <li><a href="ref/list_fold_right.html">LIST_FOLD_RIGHT</a></li>
+      <li><a href="ref/list_fold_right_2nd.html">LIST_FOLD_RIGHT_2ND*</a></li>
+      <li><a href="ref/list_fold_right_2nd_d.html">LIST_FOLD_RIGHT_2ND_D*</a></li>
+      <li><a href="ref/list_fold_right_d.html">LIST_FOLD_RIGHT_<i>d</i></a></li>
+      <li><a href="ref/list_fold_right_d_old.html">LIST_FOLD_RIGHT_D*</a></li>
+      <li><a href="ref/list_for_each.html">LIST_FOR_EACH</a></li>
+      <li><a href="ref/list_for_each_i.html">LIST_FOR_EACH_I</a></li>
+      <li><a href="ref/list_for_each_i_r.html">LIST_FOR_EACH_I_R</a></li>
+      <li><a href="ref/list_for_each_product.html">LIST_FOR_EACH_PRODUCT</a></li>
+      <li><a href="ref/list_for_each_product_r.html">LIST_FOR_EACH_PRODUCT_R</a></li>
+      <li><a href="ref/list_for_each_r.html">LIST_FOR_EACH_R</a></li>
+      <li><a href="ref/list_is_cons.html">LIST_IS_CONS</a></li>
+      <li><a href="ref/list_is_nil.html">LIST_IS_NIL</a></li>
+      <li><a href="ref/list_nil.html">LIST_NIL*</a></li>
+      <li><a href="ref/list_rest.html">LIST_REST</a></li>
+      <li><a href="ref/list_rest_n.html">LIST_REST_N</a></li>
+      <li><a href="ref/list_rest_n_d.html">LIST_REST_N_D</a></li>
+      <li><a href="ref/list_reverse.html">LIST_REVERSE</a></li>
+      <li><a href="ref/list_reverse_d.html">LIST_REVERSE_D</a></li>
+      <li><a href="ref/list_size.html">LIST_SIZE</a></li>
+      <li><a href="ref/list_size_d.html">LIST_SIZE_D</a></li>
+      <li><a href="ref/list_to_array.html">LIST_TO_ARRAY</a></li>
+      <li><a href="ref/list_to_array_d.html">LIST_TO_ARRAY_D</a></li>
+      <li><a href="ref/list_to_seq.html">LIST_TO_SEQ</a></li>
+      <li><a href="ref/list_to_seq_r.html">LIST_TO_SEQ_R</a></li>
+      <li><a href="ref/list_to_tuple.html">LIST_TO_TUPLE</a></li>
+      <li><a href="ref/list_to_tuple_r.html">LIST_TO_TUPLE_R</a></li>
+      <li><a href="ref/list_transform.html">LIST_TRANSFORM</a></li>
+      <li><a href="ref/list_transform_d.html">LIST_TRANSFORM_D</a></li>
+      <li><a href="ref/local_iterate.html">LOCAL_ITERATE</a></li>
+      <li><a href="ref/local_limits.html">LOCAL_LIMITS</a></li>
+      <li><a href="ref/local_macro.html">LOCAL_MACRO</a></li>
+      <li><a href="ref/lparen.html">LPAREN</a></li>
+      <li><a href="ref/lparen_if.html">LPAREN_IF</a></li>
+      <!-- M -->
+      <li><a href="ref/max.html">MAX</a></li>
+      <li><a href="ref/max_d.html">MAX_D</a></li>
+      <li><a href="ref/min.html">MIN</a></li>
+      <li><a href="ref/min_d.html">MIN_D</a></li>
+      <li><a href="ref/mod.html">MOD</a></li>
+      <li><a href="ref/mod_d.html">MOD_D</a></li>
+      <li><a href="ref/mul.html">MUL</a></li>
+      <li><a href="ref/mul_d.html">MUL_D</a></li>
+      <!-- N -->
+      <li><a href="ref/nil.html">NIL</a></li>
+      <li><a href="ref/nor.html">NOR</a></li>
+      <li><a href="ref/not.html">NOT</a></li>
+      <li><a href="ref/not_equal.html">NOT_EQUAL</a></li>
+      <li><a href="ref/not_equal_d.html">NOT_EQUAL_D*</a></li>
+      <!-- O -->
+      <li><a href="ref/or.html">OR</a></li>
+      <li><a href="ref/overload.html">OVERLOAD</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <!-- R -->
+      <li><a href="ref/relative_finish.html">RELATIVE_FINISH</a></li>
+      <li><a href="ref/relative_flags.html">RELATIVE_FLAGS</a></li>
+      <li><a href="ref/relative_iteration.html">RELATIVE_ITERATION</a></li>
+      <li><a href="ref/relative_start.html">RELATIVE_START</a></li>
+      <li><a href="ref/remove_parens.html">REMOVE_PARENS</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/repeat.html">REPEAT</a></li>
+      <li><a href="ref/repeat_1st.html">REPEAT_1ST*</a></li>
+      <li><a href="ref/repeat_2nd.html">REPEAT_2ND*</a></li>
+      <li><a href="ref/repeat_3rd.html">REPEAT_3RD*</a></li>
+      <li><a href="ref/repeat_from_to.html">REPEAT_FROM_TO</a></li>
+      <li><a href="ref/repeat_from_to_1st.html">REPEAT_FROM_TO_1ST*</a></li>
+      <li><a href="ref/repeat_from_to_2nd.html">REPEAT_FROM_TO_2ND*</a></li>
+      <li><a href="ref/repeat_from_to_3rd.html">REPEAT_FROM_TO_3RD*</a></li>
+      <li><a href="ref/repeat_from_to_d.html">REPEAT_FROM_TO_D</a></li>
+      <li><a href="ref/repeat_from_to_d_z.html">REPEAT_FROM_TO_D_<i>z</i></a></li>
+      <li><a href="ref/repeat_from_to_z.html">REPEAT_FROM_TO_<i>z</i></a></li>
+      <li><a href="ref/repeat_z.html">REPEAT_<i>z</i></a></li>
+      <li><a href="ref/rparen.html">RPAREN</a></li>
+      <li><a href="ref/rparen_if.html">RPAREN_IF</a></li>
+      <!-- S -->
+      <li><a href="ref/seq_cat.html">SEQ_CAT</a></li>
+      <li><a href="ref/seq_cat_s.html">SEQ_CAT_S</a></li>
+      <li><a href="ref/seq_elem.html">SEQ_ELEM</a></li>
+      <li><a href="ref/seq_enum.html">SEQ_ENUM</a></li>
+      <li><a href="ref/seq_filter.html">SEQ_FILTER</a></li>
+      <li><a href="ref/seq_filter_s.html">SEQ_FILTER_S</a></li>
+      <li><a href="ref/seq_first_n.html">SEQ_FIRST_N</a></li>
+      <li><a href="ref/seq_fold_left.html">SEQ_FOLD_LEFT</a></li>
+      <li><a href="ref/seq_fold_left_s.html">SEQ_FOLD_LEFT_<i>s</i></a></li>
+      <li><a href="ref/seq_fold_right.html">SEQ_FOLD_RIGHT</a></li>
+      <li><a href="ref/seq_fold_right_s.html">SEQ_FOLD_RIGHT_<i>s</i></a></li>
+      <li><a href="ref/seq_for_each.html">SEQ_FOR_EACH</a></li>
+      <li><a href="ref/seq_for_each_i.html">SEQ_FOR_EACH_I</a></li>
+      <li><a href="ref/seq_for_each_i_r.html">SEQ_FOR_EACH_I_R</a></li>
+      <li><a href="ref/seq_for_each_product.html">SEQ_FOR_EACH_PRODUCT</a></li>
+      <li><a href="ref/seq_for_each_product_r.html">SEQ_FOR_EACH_PRODUCT_R</a></li>
+      <li><a href="ref/seq_for_each_r.html">SEQ_FOR_EACH_R</a></li>
+      <li><a href="ref/seq_head.html">SEQ_HEAD</a></li>
+      <li><a href="ref/seq_insert.html">SEQ_INSERT</a></li>
+      <li><a href="ref/seq_nil.html">SEQ_NIL</a></li>
+      <li><a href="ref/seq_pop_back.html">SEQ_POP_BACK</a></li>
+      <li><a href="ref/seq_pop_front.html">SEQ_POP_FRONT</a></li>
+      <li><a href="ref/seq_push_back.html">SEQ_PUSH_BACK</a></li>
+      <li><a href="ref/seq_push_front.html">SEQ_PUSH_FRONT</a></li>
+      <li><a href="ref/seq_remove.html">SEQ_REMOVE</a></li>
+      <li><a href="ref/seq_replace.html">SEQ_REPLACE</a></li>
+      <li><a href="ref/seq_rest_n.html">SEQ_REST_N</a></li>
+      <li><a href="ref/seq_reverse.html">SEQ_REVERSE</a></li>
+      <li><a href="ref/seq_reverse_s.html">SEQ_REVERSE_S</a></li>
+      <li><a href="ref/seq_size.html">SEQ_SIZE</a></li>
+      <li><a href="ref/seq_subseq.html">SEQ_SUBSEQ</a></li>
+      <li><a href="ref/seq_tail.html">SEQ_TAIL</a></li>
+      <li><a href="ref/seq_to_array.html">SEQ_TO_ARRAY</a></li>
+      <li><a href="ref/seq_to_list.html">SEQ_TO_LIST</a></li>
+      <li><a href="ref/seq_to_tuple.html">SEQ_TO_TUPLE</a></li>
+      <li><a href="ref/seq_transform.html">SEQ_TRANSFORM</a></li>
+      <li><a href="ref/seq_transform_s.html">SEQ_TRANSFORM_S</a></li>
+      <li><a href="ref/slot.html">SLOT</a></li>
+      <li><a href="ref/stringize.html">STRINGIZE</a></li>
+      <li><a href="ref/sub.html">SUB</a></li>
+      <li><a href="ref/sub_d.html">SUB_D</a></li>
+      <!-- T -->
+      <li><a href="ref/tuple_eat.html">TUPLE_EAT</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_elem.html">TUPLE_ELEM</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_enum.html">TUPLE_ENUM</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><span style="color: gray;"></span><a href="ref/tuple_insert.html">TUPLE_INSERT</a>
+        <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_insert_d.html">TUPLE_INSERT_D</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_pop_back.html">TUPLE_POP_BACK</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_pop_back_z.html">TUPLE_POP_BACK_Z</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_pop_front.html">TUPLE_POP_FRONT</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_pop_front_z.html">TUPLE_POP_FRONT_Z</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_push_back.html">TUPLE_PUSH_BACK</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_push_front.html">TUPLE_PUSH_FRONT</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_rem.html">TUPLE_REM</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_rem_ctor.html">TUPLE_REM_CTOR</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_remove.html">TUPLE_REMOVE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_remove_d.html">TUPLE_REMOVE_D</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_replace.html">TUPLE_REPLACE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_replace_d.html">TUPLE_REPLACE_D</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_reverse.html">TUPLE_REVERSE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_size.html">TUPLE_SIZE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_to_array.html">TUPLE_TO_ARRAY</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_to_list.html">TUPLE_TO_LIST</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/tuple_to_seq.html">TUPLE_TO_SEQ</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <!-- U -->
+      <li><a href="ref/update_counter.html">UPDATE_COUNTER</a></li>
+      <!-- V -->
+      <li><a href="ref/value.html">VALUE</a></li>
+      <li><a href="ref/variadics.html">VARIADICS</a></li>
+      <li><a href="ref/variadic_elem.html">VARIADIC_ELEM</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/variadic_seq_to_seq.html">VARIADIC_SEQ_TO_SEQ</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/variadic_size.html">VARIADIC_SIZE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/variadic_to_array.html">VARIADIC_TO_ARRAY</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/variadic_to_list.html">VARIADIC_TO_LIST</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/variadic_to_seq.html">VARIADIC_TO_SEQ</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <li><a href="ref/variadic_to_tuple.html">VARIADIC_TO_TUPLE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
+      <!-- W -->
+      <li><a href="ref/while.html">WHILE</a></li>
+      <li><a href="ref/while_d.html">WHILE_<i>d</i></a></li>
+      <li><a href="ref/wstringize.html">WSTRINGIZE</a></li>
+      <!-- X -->
+      <li><a href="ref/xor.html">XOR</a></li>
+    </ul>
+    <!--
+© Copyright Housemarque Oy 2002© Copyright Paul Mensonides 2002
+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)-->
+  </body>
+</html>
diff --git a/doc/ref/add.html b/doc/ref/add.html
new file mode 100644
index 0000000..569f07e
--- /dev/null
+++ b/doc/ref/add.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+	<title>BOOST_PP_ADD</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ADD</b> macro expands to the sum of its arguments.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ADD</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The first addend of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The second addend of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If the sum of <i>x</i> and <i>y</i> is greater than <b>BOOST_PP_LIMIT_MAG</b>, the result is saturated to <b>BOOST_PP_LIMIT_MAG</b>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_ADD_D</b> in such a situation.
+		</div>
+		<div>
+			This macro is the most efficient when <i>x</i> is greater than or equal to <i>y</i>.&nbsp;
+			However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.&nbsp;
+			In other words, <i>x</i> should be the addend that is <i>most likely</i> to be the largest of the two operands.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="add_d.html">BOOST_PP_ADD_D</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/add.html">&lt;boost/preprocessor/arithmetic/add.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include <a href="../headers/arithmetic/add.html">&lt;boost/preprocessor/arithmetic/add.hpp&gt;</a>
+
+<a href="add.html">BOOST_PP_ADD</a>(4, 3) // expands to 7
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/add_d.html b/doc/ref/add_d.html
new file mode 100644
index 0000000..26c46a0
--- /dev/null
+++ b/doc/ref/add_d.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+	<title>BOOST_PP_ADD_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ADD_D</b> macro expands to the sum of its second and third arguments.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ADD_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The first addend of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The second addend of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If the sum of <i>x</i> and <i>y</i> is greater than <b>BOOST_PP_LIMIT_MAG</b>, the result is saturated to <b>BOOST_PP_LIMIT_MAG</b>.
+		</div>
+		<div>
+			This macro is the most efficient when <i>x</i> is greater than or equal to <i>y</i>.&nbsp;
+			However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.&nbsp;
+			In other words, <i>x</i> should be the addend that is <i>most likely</i> to be the largest of the two operands.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="add.html">BOOST_PP_ADD</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/add.html">&lt;boost/preprocessor/arithmetic/add.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>&gt;
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/control/while.html">boost/preprocessor/control/while.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define PRED(d, data) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, data)
+
+#define OP(d, data) \
+   ( \
+      <a href="dec.html">BOOST_PP_DEC</a>( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, data) \
+      ), \
+      <a href="add_d.html">BOOST_PP_ADD_D</a>( \
+         d, \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, data), \
+         2 \
+      ) \
+   ) \
+   /**/
+
+// increment 'x' by 2 'n' times
+#define STRIDE(x, n) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, <a href="while.html">BOOST_PP_WHILE</a>(PRED, OP, (n, x)))
+
+STRIDE(10, 2) // expands to 14
+STRIDE(51, 6) // expands to 63
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/and.html b/doc/ref/and.html
new file mode 100644
index 0000000..84a555e
--- /dev/null
+++ b/doc/ref/and.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_AND</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_AND</b> macro expands to the logical <i>AND</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_AND</b>(<i>p</i>, <i>q</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>p</dt>
+			<dd>
+				The left operand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>q</dt>
+			<dd>
+				The right operand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If both <i>p</i> and <i>q</i> are non-zero, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro performs a boolean conversion on each operand before performing the logical <i>AND</i> operation.&nbsp;
+			If that conversion is not necessary, use <b>BOOST_PP_BITAND</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="bitand.html">BOOST_PP_BITAND</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/and.html">&lt;boost/preprocessor/logical/and.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/and.html">boost/preprocessor/logical/and.hpp</a>&gt;
+
+<a href="and.html">BOOST_PP_AND</a>(4, 3) // expands to 1
+<a href="and.html">BOOST_PP_AND</a>(5, 0) // expands to 0
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/apply.html b/doc/ref/apply.html
new file mode 100644
index 0000000..6ea531b
--- /dev/null
+++ b/doc/ref/apply.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_APPLY</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_APPLY</b> macro abstracts the difference between an argument and nothing.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_APPLY</b>(<i>x</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The abstracted argument.&nbsp;
+				This argument must be either <b>BOOST_PP_NIL</b> or a <i>tuple</i> with one element--such as <i>(arg)</i> or <i>((a, b))</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is <b>BOOST_PP_NIL</b>, this macro expands to nothing.&nbsp;
+			If <i>x</i> is a one element <i>tuple</i>, it expands to the contents of that <i>tuple</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="nil.html">BOOST_PP_NIL</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/facilities/apply.html">&lt;boost/preprocessor/facilities/apply.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/facilities/apply.html">boost/preprocessor/facilities/apply.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define CV(i) \
+   <a href="apply.html">BOOST_PP_APPLY</a>( \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>( \
+         4, i, \
+         (<a href="nil.html">BOOST_PP_NIL</a>, (const), (volatile), (const volatile)) \
+      ) \
+   ) \
+   /**/
+
+CV(0) // expands to nothing
+CV(1) // expands to const
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_data.html b/doc/ref/array_data.html
new file mode 100644
index 0000000..559a642
--- /dev/null
+++ b/doc/ref/array_data.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_DATA</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_DATA</b> macro extracts the <i>tuple</i> data from an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_DATA</b>(<i>array</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>array</dt>
+			<dd>
+				An <i>array</i> to be converted to a <i>tuple</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the data portion of an <i>array</i> which is a <i>tuple</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/data.html">&lt;boost/preprocessor/array/data.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/data.html">boost/preprocessor/array/data.hpp</a>&gt;
+
+#define ARRAY (3, (x, y, z))
+
+<a href="array_data.html">BOOST_PP_ARRAY_DATA</a>(ARRAY) // expands to (x, y, z)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_elem.html b/doc/ref/array_elem.html
new file mode 100644
index 0000000..38e5a28
--- /dev/null
+++ b/doc/ref/array_elem.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_ELEM</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_ELEM</b> macro extracts an element from a <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_ELEM</b>(<i>i</i>, <i>array</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The zero-based index into the <i>array</i> of the element to be extracted.&nbsp;
+			</dd>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> from which an element is to be extracted.&nbsp;
+				This <i>array</i> must contain at least <i>i</i> + <i>1</i> elements.
+			</dd>
+		</dl>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/elem.html">&lt;boost/preprocessor/array/elem.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/elem.html">boost/preprocessor/array/elem.hpp</a>&gt;
+
+#define ARRAY (4, (a, b, c, d))
+
+<a href="array_elem.html">BOOST_PP_ARRAY_ELEM</a>(0, ARRAY) // expands to a
+<a href="array_elem.html">BOOST_PP_ARRAY_ELEM</a>(3, ARRAY) // expands to d
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_enum.html b/doc/ref/array_enum.html
new file mode 100644
index 0000000..674d788
--- /dev/null
+++ b/doc/ref/array_enum.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+  <title>BOOST_PP_ARRAY_ENUM</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+  <div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_ENUM</b> macro converts an <i>array</i> to its comma-separated elements. The comma-separated elements are in the form of <i>variadic data</i>.<br>
+  </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_ARRAY_ENUM</b>(<i>array</i>) </div>
+<h4> Arguments </h4>
+<dl>
+  <dt>array</dt>
+  <dd> The <i>array</i> whose elements are to be converted. </dd>
+</dl>
+<h4> Remarks </h4>
+<div> This macro expands to a comma-separated list of the elements in <i>array</i>.&nbsp;
+For example, <b>BOOST_PP_ARRAY_ENUM</b>((3,(<i>x,</i><i>y,</i><i>z</i>)))
+expands to...
+<div> <i>x</i>, <i>y</i>, <i>z</i> </div>
+</div>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/array/enum.html">&lt;boost/preprocessor/array/enum.hpp&gt;</a>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;<a href="../headers/array/enum.html">boost/preprocessor/array/enum.hpp</a>&gt;<br><br>#define ARRAY (5,(B,O,O,S,T))<br><br><a href="array_enum.html">BOOST_PP_ARRAY_ENUM</a>(ARRAY) // expands to B, O, O, S, T<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/array_insert.html b/doc/ref/array_insert.html
new file mode 100644
index 0000000..4f605d0
--- /dev/null
+++ b/doc/ref/array_insert.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_INSERT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_INSERT</b> macro inserts an element into an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_INSERT</b>(<i>array</i>, <i>i</i>, <i>elem</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> into which an element is to be inserted.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based position in <i>array</i> where an element is to be inserted.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>).
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The element to insert.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro inserts <i>elem</i> before the element at index <i>i</i>.
+		</div>
+		<div>
+			If the operation attempts to create an <i>array</i> that is larger than <b>BOOST_PP_LIMIT_TUPLE</b>,
+			the result is undefined.
+		</div>
+		<div>
+			This macro uses <b>BOOST_PP_WHILE</b> interally.&nbsp;
+			Therefore, to use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
+			see <b>BOOST_PP_ARRAY_INSERT_D</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="array_insert_d.html">BOOST_PP_ARRAY_INSERT_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/insert.html">&lt;boost/preprocessor/array/insert.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/insert.html">boost/preprocessor/array/insert.hpp</a>&gt;
+
+#define ARRAY (3, (a, b, d))
+
+<a href="array_insert.html">BOOST_PP_ARRAY_INSERT</a>(ARRAY, 2, c) // expands to (4, (a, b, c, d))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_insert_d.html b/doc/ref/array_insert_d.html
new file mode 100644
index 0000000..10fb6d8
--- /dev/null
+++ b/doc/ref/array_insert_d.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_INSERT_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_INSERT_D</b> macro inserts an element into an <i>array</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_INSERT_D</b>(<i>d</i>, <i>array</i>, <i>i</i>, <i>elem</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> into which an element is to be inserted.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based position in <i>array</i> where an element is to be inserted.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>).
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The element to insert.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro inserts <i>elem</i> before the element at index <i>i</i>.
+		</div>
+		<div>
+			If the operation attempts to create an <i>array</i> that is larger than <b>BOOST_PP_LIMIT_TUPLE</b>,
+			the result is undefined.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="array_insert.html">BOOST_PP_ARRAY_INSERT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/insert.html">&lt;boost/preprocessor/array/insert.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_pop_back.html b/doc/ref/array_pop_back.html
new file mode 100644
index 0000000..3dfcbaf
--- /dev/null
+++ b/doc/ref/array_pop_back.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_POP_BACK</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_POP_BACK</b> macro pops an element from the end of an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_POP_BACK</b>(<i>array</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> to pop an element from.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro returns <i>array</i> after removing the last element.&nbsp;
+			If <i>array</i> has no elements, the result of applying this macro is undefined.
+		</div>
+		<div>
+			This macro uses <b>BOOST_PP_REPEAT</b> internally.&nbsp;
+			Therefore, to use the <i>z</i> parameter passed from other macros that use
+			<b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ARRAY_POP_BACK_Z</b>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="array_pop_back_z.html">BOOST_PP_ARRAY_POP_BACK_Z</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/pop_back.html">&lt;boost/preprocessor/array/pop_back.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/pop_back.html">boost/preprocessor/array/pop_back.hpp</a>&gt;
+
+#define ARRAY (3, (a, b, c))
+
+<a href="array_pop_back.html">BOOST_PP_ARRAY_POP_BACK</a>(ARRAY) // expands to (2, (a, b))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_pop_back_z.html b/doc/ref/array_pop_back_z.html
new file mode 100644
index 0000000..a1a33bf
--- /dev/null
+++ b/doc/ref/array_pop_back_z.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_POP_BACK_Z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_POP_BACK_Z</b> macro pops an element from the end of an <i>array</i>.&nbsp;
+		It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_POP_BACK_Z</b>(<i>z</i>, <i>array</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> to pop an element from.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro returns <i>array</i> after removing the last element.&nbsp;
+			If <i>array</i> has no elements, the result of applying this macro is undefined.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="array_pop_back.html">BOOST_PP_ARRAY_POP_BACK</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/pop_back.html">&lt;boost/preprocessor/array/pop_back.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_pop_front.html b/doc/ref/array_pop_front.html
new file mode 100644
index 0000000..0c3718d
--- /dev/null
+++ b/doc/ref/array_pop_front.html
@@ -0,0 +1,51 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_ARRAY_POP_FRONT</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_ARRAY_POP_FRONT</b> macro
+      pops an element from the beginning of an <i>array</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_ARRAY_POP_FRONT</b>(<i>array</i>) </div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>array</dt>
+      <dd> The <i>array</i> to pop an element from. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro returns <i>array</i> after removing the first
+      element.&nbsp; If <i>array</i> has no elements, the result of applying
+      this macro is undefined. </div>
+    <div> This macro uses <b>BOOST_PP_REPEAT</b> internally.&nbsp; Therefore,
+      to use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>,
+      see <b>BOOST_PP_ARRAY_POP_FRONT_Z</b> </div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="array_pop_front_z.html">BOOST_PP_ARRAY_POP_FRONT_Z</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/array/pop_front.html">&lt;boost/preprocessor/array/pop_front.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/array/pop_front.html">boost/preprocessor/array/pop_front.hpp</a>&gt;
+
+#define ARRAY (3, (a, b, c))
+
+<a href="array_pop_front.html">BOOST_PP_ARRAY_POP_FRONT</a>(ARRAY) // expands to (2, (b, c))
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002<br>
+      </i><i>© Copyright Edward Diener 2013</i><br>
+    </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/array_pop_front_z.html b/doc/ref/array_pop_front_z.html
new file mode 100644
index 0000000..d654640
--- /dev/null
+++ b/doc/ref/array_pop_front_z.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_POP_FRONT_Z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_POP_FRONT_Z</b> macro pops an element from the beginning of an <i>array</i>.&nbsp;
+		It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_POP_FRONT_Z</b>(<i>z</i>, <i>array</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> to pop an element from.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro returns <i>array</i> after removing the first element.&nbsp;
+			If <i>array</i> has no elements, the result of applying this macro is undefined.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="array_pop_front.html">BOOST_PP_ARRAY_POP_FRONT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/pop_front.html">&lt;boost/preprocessor/array/pop_front.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_push_back.html b/doc/ref/array_push_back.html
new file mode 100644
index 0000000..0183ed3
--- /dev/null
+++ b/doc/ref/array_push_back.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_PUSH_BACK</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_PUSH_BACK</b> macro appends an element to the end of an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_PUSH_BACK</b>(<i>array</i>, <i>elem</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> to append an element to.
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The element to append.
+			</dd>
+		</dl>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/push_back.html">&lt;boost/preprocessor/array/push_back.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/push_back.html">boost/preprocessor/array/push_back.hpp</a>&gt;
+
+#define ARRAY (3, (a, b, c))
+
+<a href="array_push_back.html">BOOST_PP_ARRAY_PUSH_BACK</a>(ARRAY, d) // expands to (4, (a, b, c, d))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_push_front.html b/doc/ref/array_push_front.html
new file mode 100644
index 0000000..8f65000
--- /dev/null
+++ b/doc/ref/array_push_front.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_PUSH_FRONT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_PUSH_FRONT</b> macro appends an element to the beginning of an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_PUSH_FRONT</b>(<i>array</i>, <i>elem</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> to append an element to.
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The element to append.
+			</dd>
+		</dl>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/push_front.html">&lt;boost/preprocessor/array/push_front.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/push_front.html">boost/preprocessor/array/push_front.hpp</a>&gt;
+
+#define ARRAY (3, (b, c, d))
+
+<a href="array_push_front.html">BOOST_PP_ARRAY_PUSH_FRONT</a>(ARRAY, a) // expands to (4, (a, b, c, d))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_remove.html b/doc/ref/array_remove.html
new file mode 100644
index 0000000..0bd96fb
--- /dev/null
+++ b/doc/ref/array_remove.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_REMOVE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_REMOVE</b> macro removes an element from an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_REMOVE</b>(<i>array</i>, <i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> from which an element is to be removed.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based position in <i>array</i> of the element to be removed.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>) - <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro uses <b>BOOST_PP_WHILE</b> interally.&nbsp;
+			Therefore, to use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
+			see <b>BOOST_PP_ARRAY_REMOVE_D</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="array_remove_d.html">BOOST_PP_ARRAY_REMOVE_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/remove.html">&lt;boost/preprocessor/array/remove.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/remove.html">boost/preprocessor/array/remove.hpp</a>&gt;
+
+#define ARRAY (3, (a, b, d))
+
+<a href="array_remove.html">BOOST_PP_ARRAY_REMOVE</a>(ARRAY, 2) // expands to (2, (a, b))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_remove_d.html b/doc/ref/array_remove_d.html
new file mode 100644
index 0000000..0e9a811
--- /dev/null
+++ b/doc/ref/array_remove_d.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_REMOVE_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_REMOVE_D</b> macro removes an element from an <i>array</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_REMOVE_D</b>(<i>d</i>, <i>array</i>, <i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> from which an element is to be removed.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based position in <i>array</i> of the element to be removed.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>) - <i>1</i>.
+			</dd>
+		</dl>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="array_remove.html">BOOST_PP_ARRAY_REMOVE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/remove.html">&lt;boost/preprocessor/array/remove.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_replace.html b/doc/ref/array_replace.html
new file mode 100644
index 0000000..330077b
--- /dev/null
+++ b/doc/ref/array_replace.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_REPLACE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_REPLACE</b> macro replaces an element in an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_REPLACE</b>(<i>array</i>, <i>i</i>, <i>elem</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>array</dt>
+			<dd>
+				An <i>array</i> to replace an element in.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based position in <i>array</i> of the element to be replaced.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>) - <i>1</i>.
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The replacement element.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro uses <b>BOOST_PP_WHILE</b> interally.&nbsp;
+			Therefore, to use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
+			see <b>BOOST_PP_ARRAY_REPLACE_D</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="array_replace_d.html">BOOST_PP_ARRAY_REPLACE_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/replace.html">&lt;boost/preprocessor/array/replace.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/replace.html">boost/preprocessor/array/replace.hpp</a>&gt;
+
+#define ARRAY (3, (a, x, c))
+
+<a href="array_replace.html">BOOST_PP_ARRAY_REPLACE</a>(ARRAY, 1, b) // expands to (3, (a, b, c))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_replace_d.html b/doc/ref/array_replace_d.html
new file mode 100644
index 0000000..e638cce
--- /dev/null
+++ b/doc/ref/array_replace_d.html
@@ -0,0 +1,55 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_REPLACE_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_REPLACE_D</b> macro replaces an element in an <i>array</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_REPLACE_D</b>(<i>d</i>, <i>array</i>, <i>i</i>, <i>elem</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>array</dt>
+			<dd>
+				An <i>array</i> to replace an element in.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based position in <i>array</i> of the element to be replaced.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>) - <i>1</i>.
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The replacement element.
+			</dd>
+		</dl>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="array_replace.html">BOOST_PP_ARRAY_REPLACE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/replace.html">&lt;boost/preprocessor/array/replace.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_reverse.html b/doc/ref/array_reverse.html
new file mode 100644
index 0000000..5a26eeb
--- /dev/null
+++ b/doc/ref/array_reverse.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_REVERSE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_REVERSE</b> macro reverses the elements in an <i>array</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_REVERSE</b>(<i>array</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>array</dt>
+			<dd>
+				The <i>array</i> whose elements are to be reversed.
+			</dd>
+		</dl>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/reverse.html">&lt;boost/preprocessor/array/reverse.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/reverse.html">boost/preprocessor/array/reverse.hpp</a>&gt;
+
+#define ARRAY (3, (a, b, c))
+
+<a href="array_reverse.html">BOOST_PP_ARRAY_REVERSE</a>(ARRAY) // expands to (3, (c, b, a))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_size.html b/doc/ref/array_size.html
new file mode 100644
index 0000000..e4d4390
--- /dev/null
+++ b/doc/ref/array_size.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+	<title>BOOST_PP_ARRAY_SIZE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ARRAY_SIZE</b> macro expands to the size of the <i>array</i> passed to it.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ARRAY_SIZE</b>(<i>array</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>array</dt>
+			<dd>
+				An <i>array</i> whose size is to be extracted.
+			</dd>
+		</dl>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/array/size.html">&lt;boost/preprocessor/array/size.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/size.html">boost/preprocessor/array/size.hpp</a>&gt;
+
+#define ARRAY (3, (x, y, z))
+
+<a href="array_size.html">BOOST_PP_ARRAY_SIZE</a>(ARRAY) // expands to 3
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/array_to_list.html b/doc/ref/array_to_list.html
new file mode 100644
index 0000000..2fdd247
--- /dev/null
+++ b/doc/ref/array_to_list.html
@@ -0,0 +1,41 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_ARRAY_TO_LIST</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_LIST</b> macro
+      converts an <i>array</i> to a <i>list</i>. </div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_ARRAY_TO_LIST</b>(<i>array</i>) </div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>array</dt>
+      <dd> The <i>array</i> to be converted.</dd>
+    </dl>
+    <ul>
+    </ul>
+    <h4>Remarks</h4>
+    <p>&nbsp;&nbsp;&nbsp; If the <i>array</i> to be converted is empty, as
+      represented by '( 0, () )', the resulting <i>list</i> is empty, as
+      represented by 'BOOST_PP_NIL'.</p>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/array/to_list.html">&lt;boost/preprocessor/array/to_list.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/array/to_list.html">boost/preprocessor/array/to_list.hpp</a>&gt;<br><br><a
+href="array_to_list.html">BOOST_PP_ARRAY_TO_LIST</a>((3, (x, y, z)))<br>   // expands to (x, (y, (z, <a
+href="nil.html">BOOST_PP_NIL</a>)))</pre>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2011</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+    s
+  </body>
+</html>
diff --git a/doc/ref/array_to_seq.html b/doc/ref/array_to_seq.html
new file mode 100644
index 0000000..bf3518e
--- /dev/null
+++ b/doc/ref/array_to_seq.html
@@ -0,0 +1,37 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_ARRAY_TO_SEQ</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_SEQ</b> macro
+      converts an <i>array</i> to a <i>seq</i>. </div>
+    <h4> Usage </h4>
+    <div class="code"> <b>BOOST_PP_ARRAY_TO_SEQ</b>(<i>array</i>) </div>
+    <h4> Arguments </h4>
+    <dl>
+      <dt>array</dt>
+      <dd> The <i>array</i> to be converted.</dd>
+    </dl>
+    <h4>Remarks</h4>
+    <p>&nbsp;&nbsp;&nbsp; If the <i>array</i> to be converted is empty, as
+      represented by '( 0, () )', the resulting <i>seq</i> is undefined since a
+      <i>seq</i> cannot be empty.</p>
+    <h4>Requirements </h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/array/to_seq.html">&lt;boost/preprocessor/array/to_seq.hpp&gt;</a>
+    </div>
+    <h4> Sample Code </h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/array/to_seq.html">boost/preprocessor/array/to_seq.hpp</a>&gt;<br><br><a
+href="array_to_seq.html">BOOST_PP_ARRAY_TO_SEQ</a>((3, (a, b, c))) // expands to (a)(b)(c)</pre>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2011</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/array_to_tuple.html b/doc/ref/array_to_tuple.html
new file mode 100644
index 0000000..8f9c958
--- /dev/null
+++ b/doc/ref/array_to_tuple.html
@@ -0,0 +1,39 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_ARRAY_TO_TUPLE</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_TUPLE</b> macro
+      converts an <i>array</i> to an <i>tuple</i>. </div>
+    <h4> Usage </h4>
+    <div class="code"> <b>BOOST_PP_ARRAY_TO_TUPLE</b>(<i>array</i>) </div>
+    <h4> Arguments </h4>
+    <dl>
+      <dt>array</dt>
+      <dd> The <i>array</i> to be converted.</dd>
+    </dl>
+    <h4>Remarks</h4>
+    <p>&nbsp;&nbsp;&nbsp; If the <i>array</i> to be converted is empty, as
+      represented by '( 0, () )', the resulting <i>tuple</i> is undefined
+      since a <i>tuple</i> cannot be empty.</p>
+    <h4>Requirements </h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/array/to_tuple.html">&lt;boost/preprocessor/array/to_tuple.hpp&gt;</a>
+    </div>
+    <h4> Sample Code </h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/array/to_tuple.html">boost/preprocessor/array/to_tuple.hpp</a>&gt;<br><br>#define ARRAY (3,(a, b, c))<br><br><a
+
+href="array_to_tuple.html">BOOST_PP_ARRAY_TO_TUPLE</a>(ARRAY) // expands to (a, b, c)</pre>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i>
+    </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/assert.html b/doc/ref/assert.html
new file mode 100644
index 0000000..6bdbd32
--- /dev/null
+++ b/doc/ref/assert.html
@@ -0,0 +1,114 @@
+<html>
+<head>
+	<title>BOOST_PP_ASSERT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ASSERT</b> macro conditionally causes a preprocessing error.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ASSERT</b>(<i>cond</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>cond</dt>
+			<dd>
+				A condition that determines whether an assertion occurs.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>cond</i> expands to <i>0</i>, this macro causes a preprocessing error.&nbsp;
+			Otherwise, it expands to nothing.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="assert_msg.html">BOOST_PP_ASSERT_MSG</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/debug/assert.html">&lt;boost/preprocessor/debug/assert.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/debug/assert.html">boost/preprocessor/debug/assert.hpp</a>&gt;
+#include &lt;<a href="../headers/logical/bitnor.html">boost/preprocessor/logical/bitnor.hpp</a>&gt;
+#include &lt;<a href="../headers/logical/compl.html">boost/preprocessor/logical/compl.hpp</a>&gt;
+
+// The is BOOST_PP_IS_NULLARY macro is not part of
+// the public interface of the library because it
+// doesn't work on Borland preprocessors.  It is
+// only used here to illustrate assertions.  In
+// effect, it detects whether an argument is empty
+// parenthesis or some text.
+
+#include &lt;boost/preprocessor/detail/is_nullary.hpp&gt;
+
+#define IS_EDISON_DESIGN_GROUP() \
+   <a href="compl.html">BOOST_PP_COMPL</a>( \
+      BOOST_PP_IS_NULLARY( \
+         <a href="cat.html">BOOST_PP_CAT</a>(IS_EDG_CHECK, __EDG_VERSION) \
+      ) \
+   ) \
+   /**/
+#define IS_EDG_CHECK__EDG_VERSION ()
+
+#define IS_METROWERKS() \
+   <a href="compl.html">BOOST_PP_COMPL</a>( \
+      BOOST_PP_IS_NULLARY( \
+         <a href="cat.html">BOOST_PP_CAT</a>(IS_MWERKS_CHECK, __MWERKS__) \
+      ) \
+   ) \
+   /**/
+#define IS_MWERKS_CHECK__MWERKS__ ()
+
+#define IS_MICROSOFT() \
+   <a href="bitnor.html">BOOST_PP_BITNOR</a>( \
+      IS_MICROSOFT_ROOT(), \
+      IS_EDISON_DESIGN_GROUP() \
+   ) \
+   /**/
+#define IS_MICROSOFT_ROOT() \
+   BOOST_PP_IS_NULLARY( \
+      <a href="cat.html">BOOST_PP_CAT</a>(IS_MSVC_CHECK, _MSC_VER) \
+   ) \
+   /**/
+#define IS_MSVC_CHECK_MS_VER ()
+
+// this macro doesn't work on EDG...
+// (this is just an example)
+
+#define MACRO(n) \
+   <a href="cat.html">BOOST_PP_CAT</a>( \
+      MACRO_, \
+      IS_EDISON_DESIGN_GROUP() \
+   )(n) \
+   /**/
+
+#define MACRO_1(n) \
+   <a href="assert.html">BOOST_PP_ASSERT</a>(0) \
+   "Edison Design Group is not supported" \
+   /**/
+
+#define MACRO_0(n) normal mode: n
+
+MACRO(10)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/assert_msg.html b/doc/ref/assert_msg.html
new file mode 100644
index 0000000..55ac14a
--- /dev/null
+++ b/doc/ref/assert_msg.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+	<title>BOOST_PP_ASSERT_MSG</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ASSERT_MSG</b> macro conditionally inserts debugging text.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ASSERT_MSG</b>(<i>cond</i>, <i>msg</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>cond</dt>
+			<dd>
+				A condition that determines whether an assertion occurs.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>msg</dt>
+			<dd>
+				A message to display if <i>cond</i> evaluates to <i>0</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>cond</i> expands to <i>0</i>, this macro expands to <i>msg</i>.&nbsp;
+			Otherwise, it expands to nothing.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="assert_msg.html">BOOST_PP_ASSERT_MSG</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/debug/assert.html">&lt;boost/preprocessor/debug/assert.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/equal.html">boost/preprocessor/comparison/equal.hpp</a>&gt;
+#include &lt;<a href="../headers/debug/assert.html">boost/preprocessor/debug/assert.hpp</a>&gt;
+
+// lines are supposed to be counted
+// in translation phase 1
+
+#line 9
+<a href="assert_msg.html">BOOST_PP_ASSERT_MSG</a>( \
+   BOOST_PP_EQUAL(__LINE__, 9), \
+   "incorrect line numbering detected" \
+)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/assign_slot.html b/doc/ref/assign_slot.html
new file mode 100644
index 0000000..bfc20f0
--- /dev/null
+++ b/doc/ref/assign_slot.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+	<title>BOOST_PP_ASSIGN_SLOT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ASSIGN_SLOT</b> macro fully evaluates a numeric macro or expression.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>BOOST_PP_ASSIGN_SLOT</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The <i>slot</i> index that is to be assigned.&nbsp;
+				This value must be in the range of <i>1</i> to <b>BOOST_PP_LIMIT_SLOT_COUNT</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Prior to use, the <i>named external argument</i> <b>BOOST_PP_VALUE</b> must be defined.&nbsp;
+			Also, it must expand to a numeric value that is in the range of <i>0</i> to <i>2</i>^<i>32</i> - <i>1</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_slot_count.html">BOOST_PP_LIMIT_SLOT_COUNT</a></li>
+			<li><a href="value.html">BOOST_PP_VALUE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/slot/slot.html">&lt;boost/preprocessor/slot/slot.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/slot/slot.html">boost/preprocessor/slot/slot.hpp</a>&gt;
+
+#define X() 4
+
+#define <a href="value.html">BOOST_PP_VALUE</a> 1 + 2 + 3 + X()
+#include <a href="assign_slot.html">BOOST_PP_ASSIGN_SLOT</a>(1)
+
+#undef X
+
+<a href="slot.html">BOOST_PP_SLOT</a>(1) // expands to 10
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/bitand.html b/doc/ref/bitand.html
new file mode 100644
index 0000000..18d991e
--- /dev/null
+++ b/doc/ref/bitand.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+	<title>BOOST_PP_BITAND</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_BITAND</b> macro expands to the bitwise <i>AND</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_BITAND</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the operation.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the operation.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If both <i>x</i> and <i>y</i> are <i>1</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro <i>does not</i> perform a boolean conversion on either operand before performing the bitwise <i>AND</i> operation.&nbsp;
+			If that conversion is necessary, use <b>BOOST_PP_AND</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="and.html">BOOST_PP_AND</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/bitand.html">&lt;boost/preprocessor/logical/bitand.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/bitand.html">boost/preprocessor/logical/bitand.hpp</a>&gt;
+
+<a href="bitand.html">BOOST_PP_BITAND</a>(0, 0) // expands to 0
+<a href="bitand.html">BOOST_PP_BITAND</a>(0, 1) // expands to 0
+<a href="bitand.html">BOOST_PP_BITAND</a>(1, 0) // expands to 0
+<a href="bitand.html">BOOST_PP_BITAND</a>(1, 1) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/bitnor.html b/doc/ref/bitnor.html
new file mode 100644
index 0000000..717a7c8
--- /dev/null
+++ b/doc/ref/bitnor.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+	<title>BOOST_PP_BITNOR</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_BITNOR</b> macro expands to the bitwise <i>NOR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_BITNOR</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the operation.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the operation.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If neither <i>x</i> nor <i>y</i> is <i>1</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro <i>does not</i> perform a boolean conversion on either operand before performing the bitwise <i>NOR</i> operation.&nbsp;
+			If that conversion is necessary, use <b>BOOST_PP_NOR</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="nor.html">BOOST_PP_NOR</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/bitnor.html">&lt;boost/preprocessor/logical/bitnor.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/bitnor.html">boost/preprocessor/logical/bitnor.hpp</a>&gt;
+
+<a href="bitnor.html">BOOST_PP_BITNOR</a>(0, 0) // expands to 1
+<a href="bitnor.html">BOOST_PP_BITNOR</a>(0, 1) // expands to 0
+<a href="bitnor.html">BOOST_PP_BITNOR</a>(1, 0) // expands to 0
+<a href="bitnor.html">BOOST_PP_BITNOR</a>(1, 1) // expands to 0
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/bitor.html b/doc/ref/bitor.html
new file mode 100644
index 0000000..4efb55f
--- /dev/null
+++ b/doc/ref/bitor.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+	<title>BOOST_PP_BITOR</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_BITOR</b> macro expands to the bitwise <i>OR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_BITOR</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the operation.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the operation.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If either <i>x</i> or <i>y</i> is <i>1</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro <i>does not</i> perform a boolean conversion on either operand before performing the bitwise <i>OR</i> operation.&nbsp;
+			If that conversion is necessary, use <b>BOOST_PP_OR</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="or.html">BOOST_PP_OR</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/bitor.html">&lt;boost/preprocessor/logical/bitor.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/bitor.html">boost/preprocessor/logical/bitor.hpp</a>&gt;
+
+<a href="bitor.html">BOOST_PP_BITOR</a>(0, 0) // expands to 0
+<a href="bitor.html">BOOST_PP_BITOR</a>(0, 1) // expands to 1
+<a href="bitor.html">BOOST_PP_BITOR</a>(1, 0) // expands to 1
+<a href="bitor.html">BOOST_PP_BITOR</a>(1, 1) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/bitxor.html b/doc/ref/bitxor.html
new file mode 100644
index 0000000..89da2dc
--- /dev/null
+++ b/doc/ref/bitxor.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+	<title>BOOST_PP_BITXOR</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_BITXOR</b> macro expands to the bitwise <i>XOR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_BITXOR</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the operation.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the operation.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If either <i>x</i> or <i>y</i> is <i>1</i> exclusively, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro <i>does not</i> perform a boolean conversion on either operand before performing the bitwise <i>OR</i> operation.&nbsp;
+			If that conversion is necessary, use <b>BOOST_PP_XOR</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="xor.html">BOOST_PP_XOR</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/bitxor.html">&lt;boost/preprocessor/logical/bitxor.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/bitxor.html">boost/preprocessor/logical/bitxor.hpp</a>&gt;
+
+<a href="bitxor.html">BOOST_PP_BITXOR</a>(0, 0) // expands to 0
+<a href="bitxor.html">BOOST_PP_BITXOR</a>(0, 1) // expands to 1
+<a href="bitxor.html">BOOST_PP_BITXOR</a>(1, 0) // expands to 1
+<a href="bitxor.html">BOOST_PP_BITXOR</a>(1, 1) // expands to 0
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/bool.html b/doc/ref/bool.html
new file mode 100644
index 0000000..3470fde
--- /dev/null
+++ b/doc/ref/bool.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+	<title>BOOST_PP_BOOL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_BOOL</b> macro performs a boolean conversion on its operand.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_BOOL</b>(<i>x</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The value to be converted.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is <i>0</i>, this macro expands to <i>0</i>.&nbsp;
+			Otherwise it expands to <i>1</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/bool.html">&lt;boost/preprocessor/logical/bool.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/bool.html">boost/preprocessor/logical/bool.hpp</a>&gt;
+
+<a href="bool.html">BOOST_PP_BOOL</a>(6) // expands to 1
+<a href="bool.html">BOOST_PP_BOOL</a>(0) // expands to 0
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/cat.html b/doc/ref/cat.html
new file mode 100644
index 0000000..95d81d6
--- /dev/null
+++ b/doc/ref/cat.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+	<title>BOOST_PP_CAT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_CAT</b> macro concatenates its arguments after they have been expanded.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_CAT</b>(<i>a</i>, <i>b</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>a</dt>
+			<dd>
+				The left operand of the concatenation.
+			</dd>
+			<dt>b</dt>
+			<dd>
+				The right operand of the concatenation.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			The preprocessor token-pasting operator (<b>##</b>) prevents arguments from expanding.&nbsp;
+			This macro allows its arguments to expand before concatenation.
+		</div>
+		<div>
+			Concatenation must not result in an invocation of a macro that uses <b>BOOST_PP_CAT</b>.&nbsp;
+			If that happens, <b>BOOST_PP_CAT</b> will not expand the second time.
+		</div>
+<!-- <h4>See Also</h4> -->
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/cat.html">&lt;boost/preprocessor/cat.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+
+<a href="cat.html">BOOST_PP_CAT</a>(x, <a href="cat.html">BOOST_PP_CAT</a>(y, z)) // expands to xyz
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/comma.html b/doc/ref/comma.html
new file mode 100644
index 0000000..f3b1ee6
--- /dev/null
+++ b/doc/ref/comma.html
@@ -0,0 +1,43 @@
+<html>
+<head>
+	<title>BOOST_PP_COMMA</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_COMMA</b> macro expands to a comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_COMMA</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			The preprocessor interprets commas as argument separators in macro invocations.&nbsp;
+			Because of this, commas require special handling.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/punctuation/comma.html">&lt;boost/preprocessor/punctuation/comma.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>&gt;
+#include &lt;<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>&gt;
+#include &lt;<a href="../headers/punctuation/comma.html">boost/preprocessor/punctuation/comma.hpp</a>&gt;
+
+<a href="if.html">BOOST_PP_IF</a>(1, <a href="comma.html">BOOST_PP_COMMA</a>, <a href="empty.html">BOOST_PP_EMPTY</a>)() // expands to ,
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/comma_if.html b/doc/ref/comma_if.html
new file mode 100644
index 0000000..9304ad6
--- /dev/null
+++ b/doc/ref/comma_if.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+	<title>BOOST_PP_COMMA_IF</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_COMMA_IF</b> macro conditionally expands to a comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_COMMA_IF</b>(<i>cond</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>cond</dt>
+			<dd>
+				The condition that determines if a the macro expands to a comma or nothing.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>cond</i> expands to <i>0</i>, this macro expands to nothing.&nbsp;
+			Otherwise, it expands to a comma.
+		</div>
+		<div>
+			The preprocessor interprets commas as argument separators in macro invocations.&nbsp;
+			Because of this, commas require special handling.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/punctuation/comma_if.html">&lt;boost/preprocessor/punctuation/comma_if.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/punctuation/comma_if.html">boost/preprocessor/punctuation/comma_if.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+#define MACRO(z, n, text) <a href="comma_if.html">BOOST_PP_COMMA_IF</a>(n) text
+
+<a href="repeat.html">BOOST_PP_REPEAT</a>(3, MACRO, class) // expands to class, class, class
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/compl.html b/doc/ref/compl.html
new file mode 100644
index 0000000..693725c
--- /dev/null
+++ b/doc/ref/compl.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+	<title>BOOST_PP_COMPL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_COMPL</b> macro performs a bitwise inversion (bitwise <i>NOT</i> or one's complement) on its operand.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_COMPL</b>(<i>x</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The value to be converted.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is <i>0</i>, this macro expands to <i>1</i>.&nbsp;
+			If <i>x</i> is <i>1</i>, this it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro <i>does not</i> perform a boolean conversion on its operand before performing the inversion <i>OR</i> operation.&nbsp;
+			If that conversion is necessary, use <b>BOOST_PP_NOT</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="not.html">BOOST_PP_NOT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/compl.html">&lt;boost/preprocessor/logical/compl.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/compl.html">boost/preprocessor/logical/compl.hpp</a>&gt;
+
+<a href="compl.html">BOOST_PP_COMPL</a>(1) // expands to 0
+<a href="compl.html">BOOST_PP_COMPL</a>(0) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/config_extended_line_info.html b/doc/ref/config_extended_line_info.html
new file mode 100644
index 0000000..16e19ab
--- /dev/null
+++ b/doc/ref/config_extended_line_info.html
@@ -0,0 +1,54 @@
+<html>
+	<head>
+		<title>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> is a user-defined macro that 
+			determines whether <b>BOOST_PP_LINE</b> outputs extended <i>file-iteration</i> state 
+			information.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			#define <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> <i>n</i>
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>n</dt>
+			<dd>
+				The value that determines if <b>BOOST_PP_LINE</b> outputs extended <i>file-iteration</i>
+				information.&nbsp; This value must be <i>0</i> or <i>1</i>.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			If <i>n</i> is <i>1</i>, <b>BOOST_PP_LINE</b> will output extended data.&nbsp; 
+			By default, this macro is set to <i>0</i>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="line.html">BOOST_PP_LINE</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/counter.html b/doc/ref/counter.html
new file mode 100644
index 0000000..ffdf107
--- /dev/null
+++ b/doc/ref/counter.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+	<title>BOOST_PP_COUNTER</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_COUNTER</b> macro expands to the current counter value.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_COUNTER</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to an integer literal.
+			Its initial value is <code>0</code>.
+			Between usages of <b>BOOST_PP_UPDATE_COUNTER</b>, the value of <b>BOOST_PP_COUNTER</b> is constant.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="update_counter.html">BOOST_PP_UPDATE_COUNTER</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/slot/counter.html">&lt;boost/preprocessor/slot/counter.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/array/insert.html">boost/preprocessor/slot/counter.hpp</a>&gt;
+
+<a href="counter.html">BOOST_PP_COUNTER</a> // 0
+
+#include <a href="update_counter.html">BOOST_PP_UPDATE_COUNTER</a>()
+
+<a href="counter.html">BOOST_PP_COUNTER</a> // 1
+
+#include <a href="update_counter.html">BOOST_PP_UPDATE_COUNTER</a>()
+
+<a href="counter.html">BOOST_PP_COUNTER</a> // 2
+
+#include <a href="update_counter.html">BOOST_PP_UPDATE_COUNTER</a>()
+
+<a href="counter.html">BOOST_PP_COUNTER</a> // 3
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/dec.html b/doc/ref/dec.html
new file mode 100644
index 0000000..8b2281b
--- /dev/null
+++ b/doc/ref/dec.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+	<title>BOOST_PP_DEC</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_DEC</b> macro expands to one less than its argument.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_DEC</b>(<i>x</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The value to be decremented.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is <i>0</i>, the result is saturated to <i>0</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="inc.html">BOOST_PP_INC</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/dec.html">&lt;boost/preprocessor/arithmetic/dec.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+
+<a href="dec.html">BOOST_PP_DEC</a>(<a href="dec.html">BOOST_PP_DEC</a>(6)) // expands to 4
+<a href="dec.html">BOOST_PP_DEC</a>(0) // expands to 0
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/deduce_d.html b/doc/ref/deduce_d.html
new file mode 100644
index 0000000..5675e9d
--- /dev/null
+++ b/doc/ref/deduce_d.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+	<title>BOOST_PP_DEDUCE_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_DEDUCE_D</b> macro manually deduces the state of the <b>BOOST_PP_WHILE</b> construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_DEDUCE_D</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro is intended to avoid the use of <i>automatic-recursion</i> at deep expansion depths.&nbsp;
+			<i>Automatic-recursion</i> at such depths can be inefficient on some preprocessors.&nbsp;
+			It is not intended to be used directly with the invocation of macros with a <b>_D</b> suffix such as:
+			<div>
+				<b>BOOST_PP_ADD_D</b>(<b>BOOST_PP_DEDUCE_D</b>(), <i>x</i>, <i>y</i>)
+			</div>
+			If it is used in this context, the <b>_D</b> macro will fail.&nbsp;
+			The <b>_D</b> macros directly concatenate to the <i>d</i> parameter that is passed to them,
+			which would prevent <b>BOOST_PP_DEDUCE_D</b>() from expanding.&nbsp;
+			Furthermore, it is pointless to use this macro in a situation such as this
+			because it would already be too late to gain any efficiency.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="while.html">BOOST_PP_WHILE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/control/deduce_d.html">&lt;boost/preprocessor/control/deduce_d.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>&gt;
+#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+#include &lt;<a href="../headers/arithmetic/sub.html">boost/preprocessor/arithmetic/sub.hpp</a>&gt;
+#include &lt;<a href="../headers/control/deduce_d.html">boost/preprocessor/control/deduce_d.hpp</a>&gt;
+#include &lt;<a href="../headers/punctuation/comma_if.html">boost/preprocessor/punctuation/comma_if.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define RANGE(first, last) \
+   <a href="repeat.html">BOOST_PP_REPEAT</a>( \
+      <a href="inc.html">BOOST_PP_INC</a>( \
+         <a href="sub.html">BOOST_PP_SUB</a>(last, first) \
+      ), \
+      RANGE_M, \
+      (first, <a href="deduce_d.html">BOOST_PP_DEDUCE_D</a>()) \
+   ) \
+   /**/
+
+#define RANGE_M(z, n, data) \
+   RANGE_M_2( \
+      n, \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, data), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, data) \
+   ) \
+   /**/
+
+#define RANGE_M_2(n, first, d) \
+   <a href="comma_if.html">BOOST_PP_COMMA_IF</a>(n) <a href="add_d.html">BOOST_PP_ADD_D</a>(d, n, first) \
+   /**/
+
+RANGE(5, 10) // expands to 5, 6, 7, 8, 9, 10
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/deduce_r.html b/doc/ref/deduce_r.html
new file mode 100644
index 0000000..84eb106
--- /dev/null
+++ b/doc/ref/deduce_r.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+	<title>BOOST_PP_DEDUCE_R</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_DEDUCE_R</b> macro manually deduces the state of the <b>BOOST_PP_FOR</b> construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_DEDUCE_R</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro is intended to avoid the use of <i>automatic-recursion</i> at deep expansion depths.&nbsp;
+			<i>Automatic-recursion</i> at such depths can be inefficient on some preprocessors.&nbsp;
+			It is not intended to be used directly with the invocation of macros with a <b>_R</b> suffix such as:
+			<div>
+				<b>BOOST_PP_LIST_ENUM_R</b>(<b>BOOST_PP_DEDUCE_R</b>(), (a, (b, (c, <b>BOOST_PP_NIL</b>))))
+			</div>
+			If it is used in this context, the <b>_R</b> macro will fail.&nbsp;
+			The <b>_R</b> macros directly concatenate to the <i>r</i> parameter that is passed to them,
+			which would prevent <b>BOOST_PP_DEDUCE_R</b>() from expanding.&nbsp;
+			Furthermore, it is pointless to use this macro in a situation such as this
+			because it would already be too late to gain any efficiency.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="for.html">BOOST_PP_FOR</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/deduce_r.html">&lt;boost/preprocessor/repetition/deduce_r.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/deduce_z.html b/doc/ref/deduce_z.html
new file mode 100644
index 0000000..b9110e5
--- /dev/null
+++ b/doc/ref/deduce_z.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+	<title>BOOST_PP_DEDUCE_Z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_DEDUCE_Z</b> macro manually deduces the state of the <b>BOOST_PP_REPEAT</b> construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_DEDUCE_Z</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro is intended to avoid the use of <i>automatic-recursion</i> at deep expansion depths.&nbsp;
+			<i>Automatic-recursion</i> at such depths can be inefficient on some preprocessors.&nbsp;
+			It is not intended to be used directly with the invocation of macros with a <b>_Z</b> suffix such as:
+			<div>
+				<b>BOOST_PP_ENUM_PARAMS_Z</b>(<b>BOOST_PP_DEDUCE_Z</b>(), (a, (b, (c, <b>BOOST_PP_NIL</b>))))
+			</div>
+			If it is used in this context, the <b>_Z</b> macro will fail.&nbsp;
+			The <b>_Z</b> macros directly concatenate to the <i>r</i> parameter that is passed to them,
+			which would prevent <b>BOOST_PP_DEDUCE_Z</b>() from expanding.&nbsp;
+			Furthermore, it is pointless to use this macro in a situation such as this
+			because it would already be too late to gain any efficiency.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="repeat.html">BOOST_PP_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/deduce_z.html">&lt;boost/preprocessor/repetition/deduce_z.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/div.html b/doc/ref/div.html
new file mode 100644
index 0000000..f207ce8
--- /dev/null
+++ b/doc/ref/div.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+	<title>BOOST_PP_DIV</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_DIV</b> macro expands to the quotient of its arguments.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_DIV</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The dividend (numerator) of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The divisor (denominator) of the operation.&nbsp;
+				Valid values range from <i>1</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_DIV_D</b> in such a situation.
+		</div>
+		<div>
+			If <i>y</i> is <i>0</i>, the result is undefined.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="div_d.html">BOOST_PP_DIV_D</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/div.html">&lt;boost/preprocessor/arithmetic/div.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/div.html">boost/preprocessor/arithmetic/div.hpp</a>&gt;
+
+<a href="div.html">BOOST_PP_DIV</a>(11, 5) // expands to 2
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/div_d.html b/doc/ref/div_d.html
new file mode 100644
index 0000000..85035b6
--- /dev/null
+++ b/doc/ref/div_d.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+	<title>BOOST_PP_DIV_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_DIV_D</b> macro expands to the quotient of its second and third arguments.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_DIV_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The dividend (numerator) of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The divisor (denominator) of the operation.&nbsp;
+				Valid values range from <i>1</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>y</i> is <i>0</i>, the result is undefined.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="div.html">BOOST_PP_DIV</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/div.html">&lt;boost/preprocessor/arithmetic/div.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/arithmetic/div.html">boost/preprocessor/arithmetic/div.hpp</a>&gt;
+#include &lt;<a href="../headers/control/while.html">boost/preprocessor/control/while.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define PRED(d, data) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, data)
+
+#define OP(d, data) \
+   ( \
+      <a href="dec.html">BOOST_PP_DEC</a>( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, data) \
+      ), \
+      <a href="div_d.html">BOOST_PP_DIV_D</a>( \
+         d, \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, data), \
+         2 \
+      ) \
+   ) \
+   /**/
+
+// halve 'x' 'n' times
+#define HALVE(x, n) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, <a href="while.html">BOOST_PP_WHILE</a>(PRED, OP, (n, x)))
+
+HALVE(8, 2) // expands to 2
+HALVE(16, 1) // expands to 8
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/empty.html b/doc/ref/empty.html
new file mode 100644
index 0000000..0fc9537
--- /dev/null
+++ b/doc/ref/empty.html
@@ -0,0 +1,47 @@
+<html>
+<head>
+	<title>BOOST_PP_EMPTY</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_EMPTY</b> macro is a nullary utility macro that expands to nothing.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_EMPTY</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro is helps avoid inefficient macro-expansion.&nbsp;
+			It is primarily useful as arguments to <b>BOOST_PP_IF</b> or <b>BOOST_PP_IIF</b>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/facilities/empty.html">&lt;boost/preprocessor/facilities/empty.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>&gt;
+#include &lt;<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>&gt;
+
+#define X() result
+#define MACRO(c) <a href="if.html">BOOST_PP_IF</a>(c, X, <a href="empty.html">BOOST_PP_EMPTY</a>)()
+
+MACRO(0) // expands to nothing
+MACRO(1) // expands to result
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum.html b/doc/ref/enum.html
new file mode 100644
index 0000000..e9fe446
--- /dev/null
+++ b/doc/ref/enum.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM</b> macro generates a comma-separated list.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM</b>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_ENUM</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>), <i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>), ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_ENUM_<i>z</i></b>.
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_REPEAT</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available repetition depth.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_z.html">BOOST_PP_ENUM_<i>z</i></a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum.html">&lt;boost/preprocessor/repetition/enum.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/enum.html">boost/preprocessor/repetition/enum.hpp</a>&gt;
+
+#define TEXT(z, n, text) text
+
+<a href="enum.html">BOOST_PP_ENUM</a>(4, TEXT, class) // expands to class, class, class, class
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_binary_params.html b/doc/ref/enum_binary_params.html
new file mode 100644
index 0000000..6a14cbd
--- /dev/null
+++ b/doc/ref/enum_binary_params.html
@@ -0,0 +1,76 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_BINARY_PARAMS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_BINARY_PARAMS</b> macro generates a comma-separated list of binary parameters.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_BINARY_PARAMS</b>(<i>count</i>, <i>p1</i>, <i>p2</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>p1</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+			<dt>p2</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>p1</i> ## <i>0</i> <i>p2</i> ## <i>0</i>, <i>p1</i> ## <i>1</i> <i>p2</i> ## <i>1</i>, ... <i>p1</i> ## <i>count</i> - <i>1</i> <i>p2</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+		<div>
+			To use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ENUM_BINARY_PARAMS_Z</b>.
+		</div>
+		<div>
+			This macro is a replacement for both <b>BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</b> and <b>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_binary_params_z.html">BOOST_PP_ENUM_BINARY_PARAMS_Z</a></li>
+			<li><a href="enum_params_with_a_default.html">BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</a></li>
+			<li><a href="enum_params_with_defaults.html">BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_binary_params.html">&lt;boost/preprocessor/repetition/enum_binary_params.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/enum_binary_params.html">boost/preprocessor/repetition/enum_binary_params.hpp</a>&gt;
+
+<a href="enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a>(3, T, p) // expands to T0 p0, T1 p1, T2 p2
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_binary_params_z.html b/doc/ref/enum_binary_params_z.html
new file mode 100644
index 0000000..0dc3e8b
--- /dev/null
+++ b/doc/ref/enum_binary_params_z.html
@@ -0,0 +1,93 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_BINARY_PARAMS_Z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_BINARY_PARAMS_Z</b> macro generates a comma-separated list of binary parameters.&nbsp;
+		It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_BINARY_PARAMS_Z</b>(<i>z</i>, <i>count</i>, <i>p1</i>, <i>p2</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>p1</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+			<dt>p2</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>p1</i> ## <i>0</i> <i>p2</i> ## <i>0</i>, <i>p1</i> ## <i>1</i> <i>p2</i> ## <i>1</i>, ... <i>p1</i> ## <i>count</i> - <i>1</i> <i>p2</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+		<div>
+			This macro is a replacement for both <b>BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</b> and <b>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a></li>
+			<li><a href="enum_params_with_a_default.html">BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</a></li>
+			<li><a href="enum_params_with_defaults.html">BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_binary_params.html">&lt;boost/preprocessor/repetition/enum_binary_params.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/enum_binary_params.html">boost/preprocessor/repetition/enum_binary_params.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/enum_params.html">boost/preprocessor/repetition/enum_params.hpp</a>&gt;
+
+#define FUNCTION(z, n, _) \
+   template&lt;<a href="enum_params_z.html">BOOST_PP_ENUM_PARAMS_Z</a>(z, <a href="inc.html">BOOST_PP_INC</a>(n), class T)&gt; \
+   void f(<a href="enum_binary_params_z.html">BOOST_PP_ENUM_BINARY_PARAMS_Z</a>(z, <a href="inc.html">BOOST_PP_INC</a>(n), T, p)) { \
+      /* ... */ \
+   } \
+   /**/
+
+<a href="repeat.html">BOOST_PP_REPEAT</a>(2, FUNCTION, nil)
+/*
+   expands to...
+
+   template&lt;class T0&gt; void f(T0 p0) { }
+   template&lt;class T0, class T1&gt; void f(T0 p0, T1 p1) { }
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_params.html b/doc/ref/enum_params.html
new file mode 100644
index 0000000..82b2f09
--- /dev/null
+++ b/doc/ref/enum_params.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_PARAMS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_PARAMS</b> macro generates a comma-separated list of parameters.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_PARAMS</b>(<i>count</i>, <i>param</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>param</dt>
+			<dd>
+				The text of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>param</i> ## <i>0</i>, <i>param</i> ## <i>1</i>, ... <i>param</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+		<div>
+			To use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ENUM_PARAMS_Z</b>.
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_REPEAT</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available repetition depth.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_params_z.html">BOOST_PP_ENUM_PARAMS_Z</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_params.html">&lt;boost/preprocessor/repetition/enum_params.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/enum_params.html">boost/preprocessor/repetition/enum_params.hpp</a>&gt;
+
+<a href="enum_params.html">BOOST_PP_ENUM_PARAMS</a>(3, class T) // expands to class T0, class T1, class T2
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_params_with_a_default.html b/doc/ref/enum_params_with_a_default.html
new file mode 100644
index 0000000..a70ce0e
--- /dev/null
+++ b/doc/ref/enum_params_with_a_default.html
@@ -0,0 +1,83 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</b> macro generates a comma-separated list of parameters with a default argument.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</b>(<i>count</i>, <i>param</i>, <i>def</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>param</dt>
+			<dd>
+				The text of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+			<dt>def</dt>
+			<dd>
+				The default value that trails each parameter.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>param</i> ## <i>0</i> = <i>def</i>, <i>param</i> ## <i>1</i> = <i>def</i>, ... <i>param</i> ## <i>count</i> - <i>1</i> = <i>def</i>
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_REPEAT</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available repetition depth.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_ENUM_BINARY_PARAMS</b> with <b>BOOST_PP_INTERCEPT</b> instead:
+			<div>
+				<b>BOOST_PP_ENUM_BINARY_PARAMS</b>(<i>count</i>, <i>param</i>, = <i>def</i> <b>BOOST_PP_INTERCEPT</b>)
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a></li>
+			<li><a href="intercept.html">BOOST_PP_INTERCEPT</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/epwad.html">&lt;boost/preprocessor/repetition/enum_params_with_a_default.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/epwad.html">boost/preprocessor/repetition/enum_params_with_a_default.hpp</a>&gt;
+
+<a href="enum_params_with_a_default.html">BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT</a>(3, class T, int)
+   // expands to T0 = int, T1 = int, T2 = int
+
+<a href="enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a>(3, class T, = int <a href="intercept.html">BOOST_PP_INTERCEPT</a>)
+   // expands to T0 = int, T1 = int, T2 = int
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_params_with_defaults.html b/doc/ref/enum_params_with_defaults.html
new file mode 100644
index 0000000..d58255c
--- /dev/null
+++ b/doc/ref/enum_params_with_defaults.html
@@ -0,0 +1,84 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</b> macro generates a comma-separated list of parameters with default arguments.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</b>(<i>count</i>, <i>param</i>, <i>def</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>param</dt>
+			<dd>
+				The text of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+			<dt>def</dt>
+			<dd>
+				The default value that trails each parameter.
+				<b>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate default arguments.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>param</i> ## <i>0</i> = <i>def</i> ## <i>0</i>, <i>param</i> ## <i>1</i> = <i>def</i> ## <i>1</i>, ... <i>param</i> ## <i>count</i> - <i>1</i> = <i>def</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_REPEAT</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available repetition depth.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_ENUM_BINARY_PARAMS</b> instead:
+			<div>
+				<b>BOOST_PP_ENUM_BINARY_PARAMS</b>(<i>count</i>, <i>param</i>, = <i>def</i>)
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/epwd.html">&lt;boost/preprocessor/repetition/enum_params_with_defaults.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/epwd.html">boost/preprocessor/repetition/enum_params_with_defaults.hpp</a>&gt;
+
+<a href="enum_params_with_defaults.html">BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS</a>(3, class T, U)
+   // expands to class T0 = U0, class T1 = U1, class T2 = U2
+
+<a href="enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a>(3, class T, = U)
+   // expands to class T0 = U0, class T1 = U1, class T2 = U2
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_params_z.html b/doc/ref/enum_params_z.html
new file mode 100644
index 0000000..1322906
--- /dev/null
+++ b/doc/ref/enum_params_z.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_PARAMS_Z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_PARAMS_Z</b> macro generates a comma-separated list of parameters.&nbsp;
+		It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_PARAMS_Z</b>(<i>z</i>, <i>count</i>, <i>param</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>param</dt>
+			<dd>
+				The text of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_PARAMS_Z</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>param</i> ## <i>0</i>, <i>param</i> ## <i>1</i>, ... <i>param</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_params.html">BOOST_PP_ENUM_PARAMS</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_params.html">&lt;boost/preprocessor/repetition/enum_params.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div id="sample"><pre>
+#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/enum_params.html">boost/preprocessor/repetition/enum_params.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+#define MACRO(z, n, _) \
+   template&lt; \
+      <a href="enum_params_z.html">BOOST_PP_ENUM_PARAMS_Z</a>(z, <a href="inc.html">BOOST_PP_INC</a>(n), class T) \
+   &gt; class X ## n { \
+      /* ... */ \
+   }; \
+   /**/
+
+<a href="repeat.html">BOOST_PP_REPEAT</a>(2, MACRO, nil)
+/*
+   expands to...
+   template&lt;class T0&gt; class X0 { };
+   template&lt;class T0, class T1&gt; class X1 { };
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_shifted.html b/doc/ref/enum_shifted.html
new file mode 100644
index 0000000..eb95157
--- /dev/null
+++ b/doc/ref/enum_shifted.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_SHIFTED</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_SHIFTED</b> macro generates a comma-separated, shifted list.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_SHIFTED</b>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_ENUM_SHIFTED</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>), ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_ENUM_SHIFTED_<i>z</i></b>.
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_REPEAT</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available repetition depth.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_shifted_z.html">BOOST_PP_ENUM_SHIFTED_<i>z</i></a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_shifted.html">&lt;boost/preprocessor/repetition/enum_shifted.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/enum.html">boost/preprocessor/repetition/enum.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/enum_shifted.html">boost/preprocessor/repetition/enum_shifted.hpp</a>&gt;
+
+#define TYPE(z, n, type) type
+
+<a href="enum.html">BOOST_PP_ENUM</a>(5, TYPE, int) // expands to int, int, int, int, int
+<a href="enum_shifted.html">BOOST_PP_ENUM_SHIFTED</a>(5, TYPE, int) // expands to int, int, int, int
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_shifted_params.html b/doc/ref/enum_shifted_params.html
new file mode 100644
index 0000000..a5f79c2
--- /dev/null
+++ b/doc/ref/enum_shifted_params.html
@@ -0,0 +1,73 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_SHIFTED_PARAMS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_SHIFTED_PARAMS</b> macro generates a comma-separated, shifted list of parameters.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_SHIFTED_PARAMS</b>(<i>count</i>, <i>param</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>param</dt>
+			<dd>
+				The text of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_SHIFTED_PARAMS</b> concatenates numbers ranging from <i>1</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>param</i> ## <i>1</i>, ... <i>param</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+		<div>
+			This macro facilitates a typical usage of the library.&nbsp;
+			Shifted parameter lists are common in template metaprograms.
+		</div>
+		<div>
+			To use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ENUM_SHIFTED_PARAMS_Z</b>.
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_REPEAT</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available repetition depth.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="enum_shifted_params_z.html">BOOST_PP_SHIFTED_ENUM_PARAMS_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_shifted_params.html">&lt;boost/preprocessor/repetition/enum_shifted_params.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/enum_shifted_params.html">boost/preprocessor/repetition/enum_shifted_params.hpp</a>&gt;
+
+<a href="enum_shifted_params.html">BOOST_PP_ENUM_SHIFTED_PARAMS</a>(3, class T) // expands to class T1, class T2
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_shifted_params_z.html b/doc/ref/enum_shifted_params_z.html
new file mode 100644
index 0000000..9794e54
--- /dev/null
+++ b/doc/ref/enum_shifted_params_z.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_SHIFTED_PARAMS_Z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_SHIFTED_PARAMS_Z</b> macro generates a comma-separated, shifted list of parameters.&nbsp;
+		It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_SHIFTED_PARAMS_Z</b>(<i>z</i>, <i>count</i>, <i>param</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>param</dt>
+			<dd>
+				The text of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_SHIFTED_PARAMS_Z</b> concatenates numbers ranging from <i>1</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>param</i> ## <i>1</i>, ... <i>param</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="enum_shifted_params.html">BOOST_PP_ENUM_SHIFTED_PARAMS</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_shifted_params.html">&lt;boost/preprocessor/repetition/enum_shifted_params.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/enum_params.html">boost/preprocessor/repetition/enum_params.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/enum_shifted_params.html">boost/preprocessor/repetition/enum_shifted_params.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+int add(void) {
+   return 0;
+}
+
+#define ADD_F(z, n, _) \
+   int add_f(<a href="enum_params_z.html">BOOST_PP_ENUM_PARAMS_Z</a>(z, <a href="inc.html">BOOST_PP_INC</a>(n), int p)) { \
+      return p0 + add_f(<a href="enum_shifted_params_z.html">BOOST_PP_ENUM_SHIFTED_PARAMS_Z</a>(z, <a href="inc.html">BOOST_PP_INC</a>(n), p)); \
+   } \
+   /**/
+
+<a href="repeat.html">BOOST_PP_REPEAT</a>(5, ADD_F, nil)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_shifted_z.html b/doc/ref/enum_shifted_z.html
new file mode 100644
index 0000000..05b7c5d
--- /dev/null
+++ b/doc/ref/enum_shifted_z.html
@@ -0,0 +1,93 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_SHIFTED_z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_SHIFTED_<i>z</i></b> macro represents a reentry into the <b>BOOST_PP_ENUM_SHIFTED</b> repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_SHIFTED_</b> ## <i>z</i>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_ENUM_SHIFTED</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>), ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			At certain times, it may be necessary to perform the concatenation with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting operator.&nbsp;
+			This happens when the <i>z</i> value is a macro invocation itself.&nbsp;
+			It needs a delay to allow it to expand.&nbsp;
+			The syntax in such a scenario becomes:
+			<div>
+				<b>BOOST_PP_CAT</b>(<b>BOOST_PP_ENUM_SHIFTED_</b>, <i>z</i>)(<i>count</i>, <i>macro</i>, <i>data</i>).
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="cat.html">BOOST_PP_CAT</a></li>
+			<li><a href="enum_shifted.html">BOOST_PP_ENUM_SHIFTED</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_shifted.html">&lt;boost/preprocessor/repetition/enum_shifted.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/enum_shifted.html">boost/preprocessor/repetition/enum_shifted.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+#define TEXT(z, n, text) text
+
+#define MACRO(z, n, data) \
+   ( \
+      <a href="enum_shifted_z.html">BOOST_PP_ENUM_SHIFTED_</a> ## z( \
+         BOOST_PP_INC(n), \
+         TEXT, data \
+      ) \
+   ) \
+   /**/
+
+<a href="repeat.html">BOOST_PP_REPEAT</a>(3, MACRO, class) // expands to () (class) (class, class)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_trailing.html b/doc/ref/enum_trailing.html
new file mode 100644
index 0000000..7b26bf3
--- /dev/null
+++ b/doc/ref/enum_trailing.html
@@ -0,0 +1,83 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_TRAILING</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_TRAILING</b> macro generates a comma-separated list with a leading comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_TRAILING</b>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_ENUM</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				, <i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>), <i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>), ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_ENUM_TRAILING_<i>z</i></b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_trailing_z.html">BOOST_PP_ENUM_TRAILING_<i>z</i></a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_trailing.html">&lt;boost/preprocessor/repetition/enum_trailing.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/enum_trailing.html">boost/preprocessor/repetition/enum_trailing.hpp</a>&gt;
+
+#define TEXT(z, n, text) text
+
+template&lt;class <a href="enum_trailing.html">BOOST_PP_ENUM_TRAILING</a>(3, TEXT, class)&gt;
+class X { };
+/*
+   expands to...
+
+template&lt;class, class, class, class&gt;
+class X { };
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_trailing_params.html b/doc/ref/enum_trailing_params.html
new file mode 100644
index 0000000..f5a96b8
--- /dev/null
+++ b/doc/ref/enum_trailing_params.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_TRAILING_PARAMS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_TRAILING_PARAMS</b> macro generates a comma-separated list of parameters with a leading comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_TRAILING_PARAMS</b>(<i>count</i>, <i>param</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>param</dt>
+			<dd>
+				The text of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_TRAILING_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				, <i>param</i> ## <i>0</i>, <i>param</i> ## <i>1</i>, ... <i>param</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+		<div>
+			To use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ENUM_TRAILING_PARAMS_Z</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_trailing_params_z.html">BOOST_PP_ENUM_TRAILING_PARAMS_Z</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_trailing_params.html">&lt;boost/preprocessor/repetition/enum_trailing_params.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/enum_trailing_params.html">boost/preprocessor/repetition/enum_trailing_params.hpp</a>&gt;
+
+class X <a href="enum_trailing_params.html">BOOST_PP_ENUM_TRAILING_PARAMS</a>(2, class T)
+   // expands to class X, class T0, class T1, class T2
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_trailing_params_z.html b/doc/ref/enum_trailing_params_z.html
new file mode 100644
index 0000000..0ba24cc
--- /dev/null
+++ b/doc/ref/enum_trailing_params_z.html
@@ -0,0 +1,81 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_TRAILING_PARAMS_Z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_TRAILING_PARAMS_Z</b> macro generates a comma-separated list of parameters with a leading comma.&nbsp;
+		It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_TRAILING_PARAMS_Z</b>(<i>z</i>, <i>count</i>, <i>param</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>param</dt>
+			<dd>
+				The text of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_TRAILING_PARAMS_Z</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				, <i>param</i> ## <i>0</i>, <i>param</i> ## <i>1</i>, ... <i>param</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="enum_trailing_params.html">BOOST_PP_ENUM_TRAILING_PARAMS</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_trailing_params.html">&lt;boost/preprocessor/repetition/enum_trailing_params.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div id="sample"><pre>
+#include &lt;<a href="../headers/repetition/enum_trailing_params.html">boost/preprocessor/repetition/enum_trailing_params.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+#define MACRO(z, n, _) \
+   template&lt; \
+      class <a href="enum_trailing_params_z.html">BOOST_PP_ENUM_TRAILING_PARAMS_Z</a>(z, n, class T) \
+   &gt; class X ## n { \
+      /* ... */ \
+   }; \
+   /**/
+
+<a href="repeat.html">BOOST_PP_REPEAT</a>(2, MACRO, nil)
+/*
+   expands to...
+   template&lt;class&gt; class X0 { };
+   template&lt;class, class T0&gt; class X1 { };
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_trailing_z.html b/doc/ref/enum_trailing_z.html
new file mode 100644
index 0000000..9de1e05
--- /dev/null
+++ b/doc/ref/enum_trailing_z.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_TRAILING_z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_TRAILING_<i>z</i></b> macro represents a reentry into the <b>BOOST_PP_ENUM_TRAILING</b> repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_TRAILING_</b> ## <i>z</i>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_ENUM</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				, <i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>), <i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>), ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			At certain times, it may be necessary to perform the concatenation with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting operator.&nbsp;
+			This happens when the <i>z</i> value is a macro invocation itself.&nbsp;
+			It needs a delay to allow it to expand.&nbsp;
+			The syntax in such a scenario becomes:
+			<div>
+				<b>BOOST_PP_CAT</b>(<b>BOOST_PP_ENUM_TRAILING_</b>, <i>z</i>)(<i>count</i>, <i>macro</i>, <i>data</i>)
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="cat.html">BOOST_PP_CAT</a></li>
+			<li><a href="enum_trailing.html">BOOST_PP_ENUM_TRAILING</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum_trailing.html">&lt;boost/preprocessor/repetition/enum_trailing.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/enum.html">boost/preprocessor/repetition/enum.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/enum_trailing.html">boost/preprocessor/repetition/enum_trailing.hpp</a>&gt;
+
+#define TEXT(z, n, text) text
+
+#define TTP(z, n, _) \
+   template&lt; \
+      class <a href="enum_z.html">BOOST_PP_ENUM_TRAILING_</a> ## z(n, TEXT, class) \
+   &gt; \
+   class T ## n \
+   /**/
+
+<a href="enum.html">BOOST_PP_ENUM</a>(3, TTP, nil)
+   /*
+      expands to...
+      template&lt;class&gt; class T0,
+      template&lt;class, class&gt; class T1,
+      template&lt;class, class, class&gt; class T2
+   */
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/enum_z.html b/doc/ref/enum_z.html
new file mode 100644
index 0000000..894435f
--- /dev/null
+++ b/doc/ref/enum_z.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_<i>z</i></b> macro represents a reentry into the <b>BOOST_PP_ENUM</b> repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_</b> ## <i>z</i>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_ENUM</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>), <i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>), ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			At certain times, it may be necessary to perform the concatenation with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting operator.&nbsp;
+			This happens when the <i>z</i> value is a macro invocation itself.&nbsp;
+			It needs a delay to allow it to expand.&nbsp;
+			The syntax in such a scenario becomes:
+			<div>
+				<b>BOOST_PP_CAT</b>(<b>BOOST_PP_ENUM_</b>, <i>z</i>)(<i>count</i>, <i>macro</i>, <i>data</i>)
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="cat.html">BOOST_PP_CAT</a></li>
+			<li><a href="enum.html">BOOST_PP_ENUM</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/enum.html">&lt;boost/preprocessor/repetition/enum.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/enum.html">boost/preprocessor/repetition/enum.hpp</a>&gt;
+
+#define TEXT(z, n, text) text
+
+#define TTP(z, n, _) \
+   template&lt; \
+      <a href="enum_z.html">BOOST_PP_ENUM_</a> ## z(<a href="inc.html">BOOST_PP_INC</a>(n), TEXT, class) \
+   &gt; \
+   class T ## n \
+   /**/
+
+<a href="enum.html">BOOST_PP_ENUM</a>(3, TTP, nil)
+   /*
+      expands to...
+      template&lt;class&gt; class T0,
+      template&lt;class, class&gt; class T1,
+      template&lt;class, class, class&gt; class T2
+   */
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/equal.html b/doc/ref/equal.html
new file mode 100644
index 0000000..f32a8c3
--- /dev/null
+++ b/doc/ref/equal.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_EQUAL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_EQUAL</b> macro compares two values for equality.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_EQUAL</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is equal to <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction because this macro no longer uses <b>BOOST_PP_WHILE</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="equal_d.html">BOOST_PP_EQUAL_D</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/equal.html">&lt;boost/preprocessor/comparison/equal.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/equal.html">boost/preprocessor/comparison/equal.hpp</a>&gt;
+
+<a href="equal.html">BOOST_PP_EQUAL</a>(4, 3) // expands to 0
+<a href="equal.html">BOOST_PP_EQUAL</a>(5, 5) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/equal_d.html b/doc/ref/equal_d.html
new file mode 100644
index 0000000..3a686af
--- /dev/null
+++ b/doc/ref/equal_d.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+	<title>BOOST_PP_EQUAL_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_EQUAL_D</b> macro compares two values for equality.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_EQUAL_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				This argument is ignored.
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is equal to <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_EQUAL</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="equal.html">BOOST_PP_EQUAL</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/equal.html">&lt;boost/preprocessor/comparison/equal.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/equal.html">boost/preprocessor/comparison/equal.hpp</a>&gt;
+
+<a href="equal_d.html">BOOST_PP_EQUAL_D</a>(1, 4, 3) // expands to 0
+<a href="equal_d.html">BOOST_PP_EQUAL_D</a>(1, 5, 5) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/esbp.html b/doc/ref/esbp.html
new file mode 100644
index 0000000..900d3f2
--- /dev/null
+++ b/doc/ref/esbp.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_BINARY_PARAMS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS</b> macro generates a comma-separated, shifted list of binary parameters.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS</b>(<i>count</i>, <i>p1</i>, <i>p2</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>p1</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+			<dt>p2</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>p1</i> ## <i>1</i> <i>p2</i> ## <i>1</i>, <i>p1</i> ## <i>2</i> <i>p2</i> ## <i>2</i>, ... <i>p1</i> ## <i>count</i> - <i>1</i> <i>p2</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+		<div>
+			To use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="esbpz.html">BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/esbp.html">&lt;boost/preprocessor/repetition/enum_shifted_binary_params.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/esbpz.html b/doc/ref/esbpz.html
new file mode 100644
index 0000000..6834f29
--- /dev/null
+++ b/doc/ref/esbpz.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z</b> macro generates a comma-separated list, shifted of binary parameters.&nbsp;
+		It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z</b>(<i>z</i>, <i>count</i>, <i>p1</i>, <i>p2</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>p1</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+			<dt>p2</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				<i>p1</i> ## <i>1</i> <i>p2</i> ## <i>1</i>, <i>p1</i> ## <i>2</i> <i>p2</i> ## <i>2</i>, ... <i>p1</i> ## <i>count</i> - <i>1</i> <i>p2</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="esbp.html">BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/esbp.html">&lt;boost/preprocessor/repetition/enum_shifted_binary_params.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/etbp.html b/doc/ref/etbp.html
new file mode 100644
index 0000000..b16bb51
--- /dev/null
+++ b/doc/ref/etbp.html
@@ -0,0 +1,83 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS</b> macro generates a comma-separated list of binary parameters with a leading comma.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS</b>(<i>count</i>, <i>p1</i>, <i>p2</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>p1</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+			<dt>p2</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				, <i>p1</i> ## <i>0</i> <i>p2</i> ## <i>0</i>, <i>p1</i> ## <i>1</i> <i>p2</i> ## <i>1</i>, ... <i>p1</i> ## <i>count</i> - <i>1</i> <i>p2</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+		<div>
+			To use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>, see <b>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="etbpz.html">BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/etbp.html">&lt;boost/preprocessor/repetition/enum_trailing_binary_params.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/facilities/intercept.html">boost/preprocessor/facilities/intercept.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/etbp.html">boost/preprocessor/repetition/enum_trailing_binary_params.hpp</a>&gt;
+
+template&lt;class X <a href="etbp.html">BOOST_PP_ENUM_TRAILING_BINARY_PARAMS</a>(4, class A, = X <a href="intercept.html">BOOST_PP_INTERCEPT</a>)&gt;
+struct sample {
+   // ...
+};
+
+/* expands to...
+
+template&lt;class X, class A0 = X, class A1 = X, class A2 = X, class A3 = X&gt;
+struct sample {
+   // ...
+}
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/etbpz.html b/doc/ref/etbpz.html
new file mode 100644
index 0000000..1c98648
--- /dev/null
+++ b/doc/ref/etbpz.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+	<title>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</b> macro generates a comma-separated list of binary parameters with a leading comma.&nbsp;
+		It reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</b>(<i>z</i>, <i>count</i>, <i>p1</i>, <i>p2</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of parameters to generate.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>p1</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+			<dt>p2</dt>
+			<dd>
+				The text of the first part of the parameter.&nbsp;
+				<b>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</b> concatenates numbers ranging from <i>0</i> to <i>count</i> - <i>1</i>
+				to generate parameters.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the comma-separated sequence:
+			<div>
+				, <i>p1</i> ## <i>0</i> <i>p2</i> ## <i>0</i>, <i>p1</i> ## <i>1</i> <i>p2</i> ## <i>1</i>, ... <i>p1</i> ## <i>count</i> - <i>1</i> <i>p2</i> ## <i>count</i> - <i>1</i>
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="etbp.html">BOOST_PP_ENUM_TRAILING_BINARY_PARAMS</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/etbp.html">&lt;boost/preprocessor/repetition/enum_trailing_binary_params.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/expand.html b/doc/ref/expand.html
new file mode 100644
index 0000000..4a1d78b
--- /dev/null
+++ b/doc/ref/expand.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+	<title>BOOST_PP_EXPAND</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_EXPAND</b> macro performs a double macro-expansion on its argument.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_EXPAND</b>(<i>x</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The argument to be expanded twice.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is useful when a delay is necessary to produce the correct semantics of a macro invocation.&nbsp;
+			For example, when a macro expands to an argument list to another macro.&nbsp;
+			This macro will expand the the argument list on the first pass, and then rescan to expand any more macros.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/facilities/expand.html">&lt;boost/preprocessor/facilities/expand.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>&gt;
+#include &lt;<a href="../headers/facilities/expand.html">boost/preprocessor/facilities/expand.hpp</a>&gt;
+
+#define MACRO(a, b, c) (a)(b)(c)
+#define ARGS() (1, 2, 3)
+
+<a href="expand.html">BOOST_PP_EXPAND</a>(MACRO ARGS()) // expands to (1)(2)(3)
+
+#define SAMPLE(n) \
+   <a href="expand.html">BOOST_PP_EXPAND</a>( \
+      MACRO \
+      <a href="if.html">BOOST_PP_IF</a>( \
+         n, \
+         (x, y, z), \
+         (a, b, c) \
+      ) \
+   ) \
+   /**/
+
+SAMPLE(0) // expands to (a)(b)(c)
+SAMPLE(1) // expands to (x)(y)(z)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/expr_if.html b/doc/ref/expr_if.html
new file mode 100644
index 0000000..23835a2
--- /dev/null
+++ b/doc/ref/expr_if.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+	<title>BOOST_PP_EXPR_IF</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_EXPR_IF</b> macro expands to its second argument if its first argument is non-zero or expands to nothing otherwise.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_EXPR_IF</b>(<i>cond</i>, <i>expr</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>cond</dt>
+			<dd>
+				The condition that determines if the result is <i>expr</i> or nothing.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>expr</dt>
+			<dd>
+				The result of the expansion if <i>cond</i> is non-zero.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro performs a boolean conversion on its first argument.&nbsp;
+			If that conversion is unnecessary, use <b>BOOST_PP_EXPR_IIF</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="expr_iif.html">BOOST_PP_EXPR_IIF</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/control/expr_if.html">&lt;boost/preprocessor/control/expr_if.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/control/expr_if.html">boost/preprocessor/control/expr_if.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define CV(n) \
+   <a href="expr_if.html">BOOST_PP_EXPR_IF</a>( \
+      n, \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>( \
+         4, n, \
+         (..., const, volatile, const volatile) \
+      ) \
+   ) \
+   /**/
+
+CV(0) // expands to nothing
+CV(1) // expands to const
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/expr_iif.html b/doc/ref/expr_iif.html
new file mode 100644
index 0000000..b3cca48
--- /dev/null
+++ b/doc/ref/expr_iif.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+	<title>BOOST_PP_EXPR_IIF</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_EXPR_IIF</b> macro expands to its second argument if its first argument is <i>1</i> and expands to nothing if its first argument is <i>0</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_EXPR_IIF</b>(<i>bit</i>, <i>expr</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>bit</dt>
+			<dd>
+				The condition that determines if the result is <i>expr</i> or nothing.&nbsp;
+				This value must expand to <i>0</i> or </i>1</i>.
+			</dd>
+			<dt>expr</dt>
+			<dd>
+				The result of the expansion if <i>bit</i> is <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro <i>does not</i> perform a boolean conversion on its first argument.&nbsp;
+			If that conversion is necessary, use <b>BOOST_PP_EXPR_IF</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="expr_if.html">BOOST_PP_EXPR_IF</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/control/expr_iif.html">&lt;boost/preprocessor/control/expr_iif.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/and.html">boost/preprocessor/logical/and.hpp</a>&gt;
+#include &lt;<a href="../headers/control/expr_iif.html">boost/preprocessor/control/expr_iif.hpp</a>&gt;
+
+#define INSERT_AND(p, q, text) \
+   <a href="expr_iif.html">BOOST_PP_EXPR_IIF</a>( \
+      <a href="and.html">BOOST_PP_AND</a>(p, q), \
+      text \
+   ) \
+   /**/
+
+INSERT_AND(2, 3, abc) // expands to abc
+INSERT_AND(0, 7, xyz) // expands to nothing
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/filename_x.html b/doc/ref/filename_x.html
new file mode 100644
index 0000000..a902d80
--- /dev/null
+++ b/doc/ref/filename_x.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+	<title>BOOST_PP_FILENAME_x</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_FILENAME_<i>x</i></b> macro is a user-defined <i>named external argument</i> used by <b>BOOST_PP_ITERATE</b>.&nbsp;
+		It denotes the file to be iterated over.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#define <b>BOOST_PP_FILENAME_<i>x</i></b> <i>filename</i>
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The iteration depth of the next <i>file-iteration</i>.&nbsp;
+				This value <i>must</i> be the current iteration depth + <i>1</i>.
+			</dd>
+			<dt>filename</dt>
+			<dd>
+				A quoted or angle-bracketed filename to used as the target of a <i>file-iteration</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is part of the secondary method of passing arguments to <b>BOOST_PP_ITERATE</b>.&nbsp;
+			The other part is <b>BOOST_PP_ITERATION_LIMITS</b>.
+		</div>
+		<div>
+			This macro is automatically undefined for reuse by a call to <b>BOOST_PP_ITERATE</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="iterate.html">BOOST_PP_ITERATE</a></li>
+			<li><a href="iteration_limits.html">BOOST_PP_ITERATION_LIMITS</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/for.html b/doc/ref/for.html
new file mode 100644
index 0000000..271ce8c
--- /dev/null
+++ b/doc/ref/for.html
@@ -0,0 +1,105 @@
+<html>
+<head>
+	<title>BOOST_PP_FOR</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_FOR</b> macro represents a generalized horizontal repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_FOR</b>(<i>state</i>, <i>pred</i>, <i>op</i>, <i>macro</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>state</dt>
+			<dd>
+				The initial state.
+			</dd>
+			<dt>pred</dt>
+			<dd>
+				A binary predicate of the form <i>pred</i>(<i>r</i>, <i>state</i>).&nbsp;
+				This macro must expand to an integer in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.&nbsp;
+				<b>BOOST_PP_FOR</b> repeatedly expands <i>macro</i> while this predicate returns non-zero.&nbsp;
+				This macro is called with the next available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A binary operation of the form <i>op</i>(<i>r</i>, <i>state</i>).&nbsp;
+				This operation is expanded by <b>BOOST_PP_FOR</b> with the next available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.&nbsp;
+				This macro is repeatedly applied to the <i>state</i>, each time producing a new <i>state</i>, until <i>pred</i> returns <i>0</i>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A binary macro of the form <i>macro</i>(<i>r</i>, <i>state</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_FOR</b> with the next available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.&nbsp;
+				This macro is is repeated by <b>BOOST_PP_FOR</b> until <i>pred</i> returns <i>0</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, <i>state</i>) <i>macro</i>(<i>r</i>, <i>op</i>(<i>r</i>, <i>state</i>)) ... <i>macro</i>(<i>r</i>, <i>op</i>(<i>r</i>, ... <i>op</i>(<i>r</i>, <i>state</i>) ... ))
+			</div>
+		</div>
+		<div>
+			The <i>r</i> value that is passed to <i>pred</i>, <i>op</i>, and <i>macro</i> represents the next available <b>BOOST_PP_FOR</b> repetition.&nbsp;
+			Other macros that have <b>_R</b> suffix variants internally use <b>BOOST_PP_FOR</b>--for example, <b>BOOST_PP_LIST_FOR_EACH</b> and <b>BOOST_PP_LIST_FOR_EACH_R</b>.&nbsp;
+			Using these <b>_R</b> versions is not strictly necessary, but passing the <i>r</i> value (that is passed to <i>pred</i>, <i>op</i>, and <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_FOR</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>r</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_FOR_<i>r</i></b>.
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_FOR</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available <b>BOOST_PP_FOR</b> repetition.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="for_r.html">BOOST_PP_FOR_<i>r</i></a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/for.html">&lt;boost/preprocessor/repetition/for.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+#include &lt;<a href="../headers/comparison/not_equal.html">boost/preprocessor/comparison/not_equal.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/for.html">boost/preprocessor/repetition/for.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define PRED(r, state) \
+   <a href="not_equal.html">BOOST_PP_NOT_EQUAL</a>( \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, state), \
+      <a href="inc.html">BOOST_PP_INC</a>(<a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, state)) \
+   ) \
+   /**/
+
+#define OP(r, state) \
+   ( \
+      <a href="inc.html">BOOST_PP_INC</a>(<a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, state)), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, state) \
+   ) \
+   /**/
+
+#define MACRO(r, state) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, state)
+
+<a href="for.html">BOOST_PP_FOR</a>((5, 10), PRED, OP, MACRO) // expands to 5 6 7 8 9 10
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/for_r.html b/doc/ref/for_r.html
new file mode 100644
index 0000000..4014a53
--- /dev/null
+++ b/doc/ref/for_r.html
@@ -0,0 +1,148 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_FOR_r</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_FOR_<i>r</i></b> macro
+      represents a reentry into the <b>BOOST_PP_FOR</b> repetition construct. </div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_FOR_</b> ## <i>r</i>(<i>state</i>, <i>pred</i>,
+      <i>op</i>, <i>macro</i>) </div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>r</dt>
+      <dd> The next available <b>BOOST_PP_FOR</b> repetition. </dd>
+      <dt>state</dt>
+      <dd> The initial state. </dd>
+      <dt>pred</dt>
+      <dd> A binary predicate of the form <i>pred</i>(<i>r</i>, <i>state</i>).&nbsp;
+        This macro must expand to an integer in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.&nbsp;
+        <b>BOOST_PP_FOR</b> repeatedly expands <i>macro</i> while this
+        predicate returns non-zero.&nbsp; This macro is called with the next
+        available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.
+      </dd>
+      <dt>op</dt>
+      <dd> A binary operation of the form <i>op</i>(<i>r</i>, <i>state</i>).&nbsp;
+        This operation is expanded by <b>BOOST_PP_FOR</b> with the next
+        available <b>BOOST_PP_FOR</b> repetition and the current <i>state</i>.&nbsp;
+        This macro is repeatedly applied to the <i>state</i>, each time
+        producing a new <i>state</i>, until <i>pred</i> returns <i>0</i>. </dd>
+      <dt>macro</dt>
+      <dd> A binary macro of the form <i>macro</i>(<i>r</i>, <i>state</i>).&nbsp;
+        This macro is expanded by <b>BOOST_PP_FOR</b> with the next available <b>BOOST_PP_FOR</b>
+        repetition and the current <i>state</i>.&nbsp; This macro is is
+        repeated by <b>BOOST_PP_FOR</b> until <i>pred</i> returns <i>0</i>. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro expands to the sequence:
+      <div> <i>macro</i>(<i>r</i>, <i>state</i>) <i>macro</i>(<i>r</i>, <i>op</i>(<i>r</i>,
+        <i>state</i>)) ... <i>macro</i>(<i>r</i>, <i>op</i>(<i>r</i>, ... <i>op</i>(<i>r</i>,
+        <i>state</i>) ... )) </div>
+    </div>
+    <div> At certain times, it may be necessary to perform the concatenation
+      with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting
+      operator.&nbsp; This happens when the <i>r</i> value is a macro
+      invocation itself.&nbsp; It needs a delay to allow it to expand.&nbsp; The
+      syntax in such a scenario becomes:
+      <div> <b>BOOST_PP_CAT</b>(<b>BOOST_PP_FOR_</b>, <i>r</i>)(<i>state</i>,
+        <i>pred</i>, <i>op</i>, <i>macro</i>) </div>
+    </div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="cat.html">BOOST_PP_CAT</a></li>
+      <li><a href="for.html">BOOST_PP_FOR</a></li>
+      <li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+      <li><a href="for_r_macros.html"><span style="color: gray;">Macros with R
+            re-entrancy forms</span></a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/repetition/for.html">&lt;boost/preprocessor/repetition/for.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+#include &lt;<a href="../headers/comparison/not_equal.html">boost/preprocessor/comparison/not_equal.hpp</a>&gt;
+#include &lt;<a href="../headers/punctuation/comma_if.html">boost/preprocessor/punctuation/comma_if.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/for.html">boost/preprocessor/repetition/for.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define PRED(r, state) \
+   <a href="not_equal.html">BOOST_PP_NOT_EQUAL</a>( \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, state), \
+      <a href="inc.html">BOOST_PP_INC</a>( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 1, state) \
+      ) \
+   ) \
+   /**/
+
+#define OP(r, state) \
+   ( \
+      <a href="inc.html">BOOST_PP_INC</a>( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, state) \
+      ), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 1, state), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 2, state), \
+      <a href="inc.html">BOOST_PP_INC</a>( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 3, state) \
+      ) \
+   ) \
+   /**/
+
+#define MACRO(r, state) \
+   <a href="comma_if.html">BOOST_PP_COMMA_IF</a>( \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 3, state) \
+   ) template&lt; \
+      <a href="for_r.html">BOOST_PP_FOR_</a> ## r( \
+         (0, <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, state), _, 0), \
+         PRED_2, OP, MACRO_2 \
+      ) \
+   &gt; class <a href="cat.html">BOOST_PP_CAT</a>( \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 2, state), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, state) \
+   ) \
+   /**/
+
+#define PRED_2(r, state) \
+   <a href="not_equal.html">BOOST_PP_NOT_EQUAL</a>( \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, state), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 1, state) \
+   ) \
+   /**/
+
+#define MACRO_2(r, state) \
+   <a href="comma_if.html">BOOST_PP_COMMA_IF</a>( \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, state) \
+   ) class \
+   /**/
+
+#define TEMPLATE_TEMPLATE(low, high, name) \
+   <a href="for.html">BOOST_PP_FOR</a>( \
+      (low, high, name, 0), \
+      PRED, OP, MACRO \
+   ) \
+   /**/
+
+TEMPLATE_TEMPLATE(2, 4, T)
+/*
+   expands to...
+   template&lt;class, class&gt; class T2,
+   template&lt;class, class, class&gt; class T3,
+   template&lt;class, class, class, class&gt; class T4
+*/
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002<br>
+      </i><i>© Copyright Edward Diener 2014</i><br>
+    </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/for_r_macros.html b/doc/ref/for_r_macros.html
new file mode 100644
index 0000000..e5dda58
--- /dev/null
+++ b/doc/ref/for_r_macros.html
@@ -0,0 +1,44 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_FOR_r_macros</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>This is a list, based on functionality, of the macros which have an
+    alternate <b>_<i>r</i></b> name, representing a reentry into the <b>BOOST_PP_FOR</b>
+    looping construct:
+    <p>repetition</p>
+    <ul>
+      <li><a href="deduce_r.html">BOOST_PP_DEDUCE_R</a></li>
+    </ul>
+    list<br>
+    <ul>
+      <li><a href="list_enum_r.html">BOOST_PP_LIST_ENUM_R</a></li>
+      <li><a href="list_for_each_i_r.html">BOOST_PP_LIST_FOR_EACH_I_R</a></li>
+      <li><a href="list_for_each_product_r.html">BOOST_PP_LIST_FOR_EACH_PRODUCT_R</a></li>
+      <li><a href="list_for_each_r.html">BOOST_PP_LIST_FOR_EACH_R</a></li>
+      <li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ_R</a></li>
+      <li><a href="list_to_tuple_r.html">BOOST_PP_LIST_TO_TUPLE_R</a></li>
+    </ul>
+    seq<br>
+    <ul>
+      <li><a href="seq_for_each_product_r.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</a></li>
+      <li><a href="seq_for_each_r.html">BOOST_PP_SEQ_FOR_EACH_R</a></li>
+    </ul>
+    base<br>
+    <ul>
+      <li><a href="for_r.html">BOOST_PP_FOR_R</a><br>
+      </li>
+    </ul>
+    <br>
+    <ul>
+    </ul>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2014</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/frame_finish.html b/doc/ref/frame_finish.html
new file mode 100644
index 0000000..de3f324
--- /dev/null
+++ b/doc/ref/frame_finish.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+	<title>BOOST_PP_FRAME_FINISH</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_FRAME_FINISH</b> macro expands to the upper bound of an absolute <i>file-iteration</i> depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_FRAME_FINISH</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The absolute depth of the frame whose upper bound is to be retreived.&nbsp;
+				Valid values range from <i>1</i> to <b>BOOST_PP_ITERATION_DEPTH</b>().
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/frame_flags.html b/doc/ref/frame_flags.html
new file mode 100644
index 0000000..9b1a22b
--- /dev/null
+++ b/doc/ref/frame_flags.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+	<title>BOOST_PP_FRAME_FLAGS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_FRAME_FLAGS</b> macro expands to the flags associated with an absolute <i>file-iteration</i> depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_FRAME_FLAGS</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The absolute depth of the frame whose flags are to be retreived.&nbsp;
+				Valid values range from <i>1</i> to <b>BOOST_PP_ITERATION_DEPTH</b>().
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/frame_iteration.html b/doc/ref/frame_iteration.html
new file mode 100644
index 0000000..e7c06bd
--- /dev/null
+++ b/doc/ref/frame_iteration.html
@@ -0,0 +1,73 @@
+<html>
+<head>
+	<title>BOOST_PP_FRAME_ITERATION</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_FRAME_ITERATION</b> macro expands to the iteration value of an absolute <i>file-iteration</i> depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_FRAME_ITERATION</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The absolute depth of the frame whose iteration value is to be retreived.&nbsp;
+				Valid values range from <i>1</i> to <b>BOOST_PP_ITERATION_DEPTH</b>().
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// file.h
+#if !<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>
+
+   #ifndef FILE_H_
+   #define FILE_H_
+
+   #include &lt;<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>&gt;
+
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (3, (1, 10, "file.h"))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   #endif
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 1
+
+   --
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_2</a> \
+      (3, (1, <a href="iteration.html">BOOST_PP_ITERATION</a>(), "file.h"))   \
+      /**/
+
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+#else
+
+   outer: <a href="frame_iteration.html">BOOST_PP_FRAME_ITERATION</a>(1)
+   inner: <a href="frame_iteration.html">BOOST_PP_FRAME_ITERATION</a>(2)
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/frame_start.html b/doc/ref/frame_start.html
new file mode 100644
index 0000000..f9eb80a
--- /dev/null
+++ b/doc/ref/frame_start.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+	<title>BOOST_PP_FRAME_START</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_FRAME_START</b> macro expands to the lower bound of an absolute <i>file-iteration</i> depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_FRAME_START</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The absolute depth of the frame whose lower bound is to be retreived.&nbsp;
+				Valid values range from <i>1</i> to <b>BOOST_PP_ITERATION_DEPTH</b>().
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/greater.html b/doc/ref/greater.html
new file mode 100644
index 0000000..618e524
--- /dev/null
+++ b/doc/ref/greater.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+	<title>BOOST_PP_GREATER</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_GREATER</b> macro compares two values for greater magnitude.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_GREATER</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is greater than <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_GREATER_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="greater_d.html">BOOST_PP_GREATER_D</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/greater.html">&lt;boost/preprocessor/comparison/greater.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/greater.html">boost/preprocessor/comparison/greater.hpp</a>&gt;
+
+<a href="greater.html">BOOST_PP_GREATER</a>(4, 3) // expands to 1
+<a href="greater.html">BOOST_PP_GREATER</a>(5, 5) // expands to 0
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/greater_d.html b/doc/ref/greater_d.html
new file mode 100644
index 0000000..2069aad
--- /dev/null
+++ b/doc/ref/greater_d.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+	<title>BOOST_PP_GREATER_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_GREATER_D</b> macro compares two values for greater magnitude.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_GREATER_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is greater than <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="greater.html">BOOST_PP_GREATER</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/greater.html">&lt;boost/preprocessor/comparison/greater.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/greater.html">boost/preprocessor/comparison/greater.hpp</a>&gt;
+#include &lt;<a href="../headers/list/filter.html">boost/preprocessor/list/filter.hpp</a>&gt;
+
+#define LIST (1, (2, (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))))
+
+#define PRED(d, _, num) <a href="greater_d.html">BOOST_PP_GREATER_D</a>(d, num, 2)
+
+<a href="list_filter.html">BOOST_PP_LIST_FILTER</a>(PRED, nil, LIST) // expands to (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/greater_equal.html b/doc/ref/greater_equal.html
new file mode 100644
index 0000000..56dd7e4
--- /dev/null
+++ b/doc/ref/greater_equal.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+	<title>BOOST_PP_GREATER_EQUAL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_GREATER_EQUAL</b> macro compares two values for equality or greater magnitude.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_GREATER_EQUAL</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is greater than or equal to <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_GREATER_EQUAL_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="greater_equal_d.html">BOOST_PP_GREATER_EQUAL_D</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/greater_equal.html">&lt;boost/preprocessor/comparison/greater_equal.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/greater_equal.html">boost/preprocessor/comparison/greater_equal.hpp</a>&gt;
+
+<a href="greater_equal.html">BOOST_PP_GREATER_EQUAL</a>(4, 3) // expands to 1
+<a href="greater_equal.html">BOOST_PP_GREATER_EQUAL</a>(5, 5) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/greater_equal_d.html b/doc/ref/greater_equal_d.html
new file mode 100644
index 0000000..aa11b85
--- /dev/null
+++ b/doc/ref/greater_equal_d.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+	<title>BOOST_PP_GREATER_EQUAL_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_GREATER_EQUAL_D</b> macro compares two values for equality or greater magnitude.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_GREATER_EQUAL_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is greater than or equal to <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="greater_equal.html">BOOST_PP_GREATER_EQUAL</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/greater_equal.html">&lt;boost/preprocessor/comparison/greater_equal.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/greater_equal.html">boost/preprocessor/comparison/greater_equal.hpp</a>&gt;
+#include &lt;<a href="../headers/list/filter.html">boost/preprocessor/list/filter.hpp</a>&gt;
+
+#define LIST (1, (2, (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))))
+
+#define PRED(d, _, num) <a href="greater_equal_d.html">BOOST_PP_GREATER_EQUAL_D</a>(d, num, 4)
+
+<a href="list_filter.html">BOOST_PP_LIST_FILTER</a>(PRED, nil, LIST) // expands to (4, (5, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/identity.html b/doc/ref/identity.html
new file mode 100644
index 0000000..82b9b29
--- /dev/null
+++ b/doc/ref/identity.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+	<title>BOOST_PP_IDENTITY</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_IDENTITY</b> macro expands to its argument when invoked.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_IDENTITY</b>(<i>item</i>)()
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>item</dt>
+			<dd>
+				The result of the expansion.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is designed to be used with <b>BOOST_PP_IF</b> and <b>BOOST_PP_IIF</b> when only one of the clauses needs to be invoked.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="if.html">BOOST_PP_IF</a></li>
+			<li><a href="iif.html">BOOST_PP_IIF</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/facilities/identity.html">&lt;boost/preprocessor/facilities/identity.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>&gt;
+#include &lt;<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>&gt;
+#include &lt;<a href="../headers/facilities/identity.html">boost/preprocessor/facilities/identity.hpp</a>&gt;
+
+#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, <a href="identity.html">BOOST_PP_IDENTITY</a>(x), <a href="empty.html">BOOST_PP_EMPTY</a>)()
+
+MACRO(0) // expands to nothing
+MACRO(1) // expands to x
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/identity_n.html b/doc/ref/identity_n.html
new file mode 100644
index 0000000..13fc5e0
--- /dev/null
+++ b/doc/ref/identity_n.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+	<title>BOOST_PP_IDENTITY_N</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+	    The <b>BOOST_PP_IDENTITY_N</b> macro expands to its first argument when invoked.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_IDENTITY_N</b>(<i>item,n</i>)(n-arguments)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>item</dt>
+			<dd>
+				The result of the expansion.
+			</dd>
+			<dt>n</dt>
+			<dd>
+				The number of arguments when invoked.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is designed to be used with <b>BOOST_PP_IF</b> and <b>BOOST_PP_IIF</b> when only one of the clauses needs to be invoked.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="if.html">BOOST_PP_IF</a></li>
+			<li><a href="iif.html">BOOST_PP_IIF</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/facilities/identity.html">&lt;boost/preprocessor/facilities/identity.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>&gt;
+#include &lt;<a href="../headers/facilities/identity.html">boost/preprocessor/facilities/identity.hpp</a>&gt;
+
+#define MACRO_CAT(y,z) y ## z
+#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, <a href="identity_n.html">BOOST_PP_IDENTITY_N</a>(x,2), MACRO_CAT)(a,b)
+
+MACRO(0) // expands to ab
+MACRO(1) // expands to x
+</pre></div>
+	<hr size="1">
+    <div style="margin-left: 0px"><i>&copy; Copyright Edward Diener 2015</i></div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/if.html b/doc/ref/if.html
new file mode 100644
index 0000000..6f389c9
--- /dev/null
+++ b/doc/ref/if.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+	<title>BOOST_PP_IF</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_IF</b> macro chooses between to values based on a logical condition.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_IF</b>(<i>cond</i>, <i>t</i>, <i>f</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>cond</dt>
+			<dd>
+				The condition that determines if the result is <i>expr</i> or nothing.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>t</dt>
+			<dd>
+				The result of the expansion if <i>cond</i> is non-zero.
+			</dd>
+			<dt>f</dt>
+			<dd>
+				The result of the expansion if <i>cond</i> is <i>0</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro performs a boolean conversion on its first argument.&nbsp;
+			If that conversion is unnecessary, use <b>BOOST_PP_IIF</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="iif.html">BOOST_PP_IIF</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/control/if.html">&lt;boost/preprocessor/control/if.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>&gt;
+
+<a href="if.html">BOOST_PP_IF</a>(10, a, b) // expands to a
+<a href="if.html">BOOST_PP_IF</a>(0, a, b) // expands to b
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/iif.html b/doc/ref/iif.html
new file mode 100644
index 0000000..8c8f744
--- /dev/null
+++ b/doc/ref/iif.html
@@ -0,0 +1,66 @@
+<html>
+<head>
+	<title>BOOST_PP_IIF</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_IIF</b> macro chooses between to values based on a bitwise condition.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_IIF</b>(<i>bit</i>, <i>t</i>, <i>f</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>bit</dt>
+			<dd>
+				The condition that determines if the result is <i>expr</i> or nothing.&nbsp;
+				This value must expand to <i>0</i> or <i>1</i>.
+			</dd>
+			<dt>t</dt>
+			<dd>
+				The result of the expansion if <i>bit</i> is <i>1</i>.
+			</dd>
+			<dt>f</dt>
+			<dd>
+				The result of the expansion if <i>bit</i> is <i>0</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro <i>does not</i> perform a boolean conversion on its first argument.&nbsp;
+			If that conversion is necessary, use <b>BOOST_PP_IF</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="if.html">BOOST_PP_IF</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/control/iif.html">&lt;boost/preprocessor/control/iif.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/control/iif.html">boost/preprocessor/control/iif.hpp</a>&gt;
+#include &lt;<a href="../headers/logical/or.html">boost/preprocessor/logical/or.hpp</a>&gt;
+
+#define OR_IF(p, q, t, f) <a href="iif.html">BOOST_PP_IIF</a>(<a href="or.html">BOOST_PP_OR</a>(p, q), t, f)
+
+OR_IF(1, 0, abc, xyz) // expands to abc
+OR_IF(0, 0, abc, xyz) // expands to xyz
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/inc.html b/doc/ref/inc.html
new file mode 100644
index 0000000..9848c49
--- /dev/null
+++ b/doc/ref/inc.html
@@ -0,0 +1,54 @@
+<html>
+<head>
+	<title>BOOST_PP_INC</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_INC</b> macro expands to one more than its argument.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_INC</b>(<i>x</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The value to be incremented.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is <b>BOOST_PP_LIMIT_MAG</b>, the result is saturated to <b>BOOST_PP_LIMIT_MAG</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="dec.html">BOOST_PP_DEC</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/inc.html">&lt;boost/preprocessor/arithmetic/inc.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+
+<a href="inc.html">BOOST_PP_INC</a>(<a href="inc.html">BOOST_PP_INC</a>(6)) // expands to 8
+<a href="inc.html">BOOST_PP_INC</a>(4) // expands to 5
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/include_self.html b/doc/ref/include_self.html
new file mode 100644
index 0000000..ce13c33
--- /dev/null
+++ b/doc/ref/include_self.html
@@ -0,0 +1,101 @@
+<html>
+<head>
+	<title>BOOST_PP_INCLUDE_SELF</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_INCLUDE_SELF</b> macro includes a file indirectly.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>BOOST_PP_INCLUDE_SELF</b>()
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>filename</dt>
+			<dd>
+				A quoted or angle-bracketed filename to be included by <b>BOOST_PP_INCLUDE_SELF</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			<b>BOOST_PP_INDIRECT_SELF</b> must be defined prior to using this macro.
+		</div>
+		<div>
+			Most preprocessors will not allow a file to directly include itself--even when the file protects itself from such a scenario.&nbsp;
+			This macro, in combination with <b>BOOST_PP_INDIRECT_SELF</b> allows a file to include itself indirectly.
+		</div>
+		<div>
+			While <b>BOOST_PP_INDIRECT_SELF</b> is being included, <b>BOOST_PP_INCLUDE_SELF</b> defines the macro <b>BOOST_PP_IS_SELFISH</b> to <i>1</i>.&nbsp;
+			When it returns from the inclusion, <b>BOOST_PP_IS_SELFISH</b> is undefined.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="indirect_self.html">BOOST_PP_INDIRECT_SELF</a></li>
+			<li><a href="is_selfish.html">BOOST_PP_IS_SELFISH</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/self.html">&lt;boost/preprocessor/iteration/self.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// file.h
+#if !<a href="is_selfish.html">BOOST_PP_IS_SELFISH</a>
+
+   #ifndef FILE_H_
+   #define FILE_H_
+
+   #include &lt;<a href="../headers/iteration/self.html">boost/preprocessor/iteration/self.hpp</a>&gt;
+
+   #define NAME X
+   struct NAME {
+      // ...
+      #define <a href="indirect_self.html">BOOST_PP_INDIRECT_SELF</a> "file.h"
+      #include <a href="include_self.html">BOOST_PP_INCLUDE_SELF</a>()
+   };
+
+   #define NAME Y
+   struct NAME {
+      // ...
+      #define <a href="indirect_self.html">BOOST_PP_INDIRECT_SELF</a> "file.h"
+      #include <a href="include_self.html">BOOST_PP_INCLUDE_SELF</a>()
+   };
+
+   #define NAME Z
+   struct NAME {
+      // ...
+      #define <a href="indirect_self.html">BOOST_PP_INDIRECT_SELF</a> "file.h"
+      #include <a href="include_self.html">BOOST_PP_INCLUDE_SELF</a>()
+   };
+
+   #endif
+
+#else
+
+      inline bool validate(NAME* p) {
+         return true;
+      }
+
+      template&lt;class T&gt; bool validate(T* p) {
+         return dynamic_cast&lt;NAME*&gt;(p);
+      }
+
+   #undef NAME
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/indirect_self.html b/doc/ref/indirect_self.html
new file mode 100644
index 0000000..8f670e2
--- /dev/null
+++ b/doc/ref/indirect_self.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+	<title>BOOST_PP_INDIRECT_SELF</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_INDIRECT_SELF</b> macro is a user-defined <i>named external argument</i> used by <b>BOOST_PP_INCLUDE_SELF</b>.&nbsp;
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#define <b>BOOST_PP_INDIRECT_SELF</b> <i>filename</i>
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>filename</dt>
+			<dd>
+				A quoted or angle-bracketed filename to be included by <b>BOOST_PP_INCLUDE_SELF</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Most preprocessors will not allow a file to directly include itself--even when the file protects itself from such a scenario.&nbsp;
+			This macro, in combination with <b>BOOST_PP_INCLUDE_SELF</b> allows a file to include itself indirectly.
+		</div>
+		<div>
+			This macro is automatically undefined for reuse by a call to <b>BOOST_PP_INCLUDE_SELF</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="include_self.html">BOOST_PP_INCLUDE_SELF</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/intercept.html b/doc/ref/intercept.html
new file mode 100644
index 0000000..e0673e1
--- /dev/null
+++ b/doc/ref/intercept.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+	<title>BOOST_PP_INTERCEPT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_INTERCEPT</b> macro intercepts a numeric concatenation and expands to nothing.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_INTERCEPT</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro is used to intercept concatenations performed by various other library constructs.&nbsp;
+			It is typically used after other text to prevent eat the concatenation expand to nothing.&nbsp;
+			This macro can only intercept integer constants in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/facilities/intercept.html">&lt;boost/preprocessor/facilities/intercept.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/facilities/intercept.html">boost/preprocessor/facilities/intercept.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/enum_binary_params.html">boost/preprocessor/repetition/enum_binary_params.hpp</a>&gt;
+
+<a href="enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a>(3, class T, = U)
+// expands to class T0 = U0, class T1 = U1, class T2 = U2
+
+<a href="enum_binary_params.html">BOOST_PP_ENUM_BINARY_PARAMS</a>(3, class T, = int <a href="intercept.html">BOOST_PP_INTERCEPT</a>)
+// expands to class T0 = int, class T1 = int, class T2 = int
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/is_begin_parens.html b/doc/ref/is_begin_parens.html
new file mode 100644
index 0000000..0e0b39c
--- /dev/null
+++ b/doc/ref/is_begin_parens.html
@@ -0,0 +1,47 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_IS_BEGIN_PARENS</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_IS_BEGIN_PAREN</b>S
+      determines whether the input starts with a set of parenthesis.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_IS_BEGIN_PARENS</b>(...) <a href="../topics/variadic_macros.html#VNotation"
+        target="_self"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <h4>&nbsp;&nbsp;&nbsp; ...&nbsp;&nbsp;&nbsp; <span style="font-weight: normal;">&nbsp;&nbsp;&nbsp;
+        &nbsp;&nbsp;&nbsp; The input as variadic data.</span></h4>
+    <h4>Remarks</h4>
+    <div> If the input input begins with a parenthesis, with any data within
+      that parenthesis, the macro returns 1, otherwise it returns 0. Data may
+      follow the beginning parenthesis and the macro still will return 1.<br>
+      <br>
+      For Visual Studio 2005 ( VC8 ) the input data must be a single parameter
+      else a compilation error will occur.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="remove_parens.html">BOOST_PP_REMOVE_PARENS</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/punctuation/is_begin_parens.html">&lt;boost/preprocessor/punctuation/is_begin_parens.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/punctuation/is_begin_parens.html">boost/preprocessor/punctuation/is_begin_parens.hpp</a>&gt;
+
+#define VARDATA more_data , more_params<br>#define VARDATAP ( data ) more_data , more_params<br>#define DATA data<br>#define DATAP ( data ) more_data<br>
+BOOST_PP_IS_BEGIN_PARENS(VARDATA)  // expands to 0, compiler error with VC8
+BOOST_PP_IS_BEGIN_PARENS(VARDATAP) // expands to 1, compiler error with VC8<br><br>BOOST_PP_IS_BEGIN_PARENS(DATA)     // expands to 0
+BOOST_PP_IS_BEGIN_PARENS(DATAP)    // expands to 1<br><br>BOOST_PP_IS_BEGIN_PARENS()         // expands to 0<br>
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2014</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/is_iterating.html b/doc/ref/is_iterating.html
new file mode 100644
index 0000000..6e37677
--- /dev/null
+++ b/doc/ref/is_iterating.html
@@ -0,0 +1,38 @@
+<html>
+<head>
+	<title>BOOST_PP_IS_ITERATING</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_IS_ITERATING</b> macro is defined when a <i>file-iteration</i> is in progress.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#if !defined(<b>BOOST_PP_IS_ITERATING</b>) // ...
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			If a <i>file-iteration</i> is in progress, this macro is defined as <i>1</i>.&nbsp;
+			This means that the following will also work:
+			<div>
+				#if !<b>BOOST_PP_IS_ITERATING</b> // ...
+			</div>
+		</div>
+		<div>
+			This macro is defined to guard a file from infinite inclusion.
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/is_selfish.html b/doc/ref/is_selfish.html
new file mode 100644
index 0000000..0422084
--- /dev/null
+++ b/doc/ref/is_selfish.html
@@ -0,0 +1,38 @@
+<html>
+<head>
+	<title>BOOST_PP_IS_SELFISH</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_IS_SELFISH</b> macro is defined when a <i>self-inclusion</i> is in progress.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#if !defined(<b>BOOST_PP_IS_SELFISH</b>) // ...
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			If a <i>self-inclusion</i> is in progress, this macro is defined as <i>1</i>.&nbsp;
+			This means that the following will also work:
+			<div>
+				#if !<b>BOOST_PP_IS_SELFISH</b> // ...
+			</div>
+		</div>
+		<div>
+			This macro is defined to guard a file from infinite inclusion.
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/iterate.html b/doc/ref/iterate.html
new file mode 100644
index 0000000..6802849
--- /dev/null
+++ b/doc/ref/iterate.html
@@ -0,0 +1,83 @@
+<html>
+<head>
+	<title>BOOST_PP_ITERATE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ITERATE</b> macro initiates a <i>file-iteration</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>BOOST_PP_ITERATE</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			Arguments to this macro are passed as <i>external named arguments</i> in one of two
+			ways--either through <b>BOOST_PP_FILENAME_<i>x</i></b> and <b>BOOST_PP_ITERATION_LIMITS</b> <i>or</i>
+			through <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>.&nbsp;
+		</div>
+		<div>
+			Three pieces of information are required to perform a <i>file-iteration</i>.&nbsp;
+			First, the name of a file to iterate over.&nbsp;
+			This is passed via <b>BOOST_PP_FILENAME_<i>x</i></b> <i>or</i> as part of <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>.&nbsp;
+			The <i>file-iteration</i> mechanism will repeatedly include this file with iteration values ranging from a lower bound to an upper bound--the second and third <i>required</i> parameters.&nbsp;
+			These two boundaries are either passed through <b>BOOST_PP_ITERATION_LIMITS</b> <i>or</i> as part of <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>.
+		</div>
+		<div>
+			Optionally, a fourth parameter may be passed that associates flags with an iteration.&nbsp;
+			These flags are primarily useful to distinguish one iteration from another in the same file.&nbsp;
+			This parameter can only be passed through <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>.
+		</div>
+		<div>
+			While a <i>file-iteration</i> is in progress, <b>BOOST_PP_IS_ITERATING</b> is defined as <i>1</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="filename_x.html">BOOST_PP_FILENAME_<i>x</i></a></li>
+			<li><a href="is_iterating.html">BOOST_PP_IS_ITERATING</a></li>
+			<li><a href="iteration_limits.html">BOOST_PP_ITERATION_LIMITS</a></li>
+			<li><a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_<i>x</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// file.h
+#if !<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>
+
+   #ifndef FILE_H_
+   #define FILE_H_
+
+   #include &lt;<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>&gt;
+
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (3, (1, 10, "file.h"))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   #define <a href="filename_x.html">BOOST_PP_FILENAME_1</a> "file.h"
+   #define <a href="iteration_limits.html">BOOST_PP_ITERATION_LIMITS</a> (11, 20)
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   #endif
+
+#else
+
+   current iteration value is <a href="iteration.html">BOOST_PP_ITERATION</a>()
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/iteration.html b/doc/ref/iteration.html
new file mode 100644
index 0000000..f3c4312
--- /dev/null
+++ b/doc/ref/iteration.html
@@ -0,0 +1,55 @@
+<html>
+<head>
+	<title>BOOST_PP_ITERATION</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ITERATION</b> macro expands to the iteration value of the current <i>file-iteration</i> depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ITERATION</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// file.h
+#if !<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>
+
+   #ifndef FILE_H_
+   #define FILE_H_
+
+   #include &lt;<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>&gt;
+
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (3, (1, 3, "file.h"))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   #endif
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 1
+
+   value == <a href="iteration.html">BOOST_PP_ITERATION</a>()
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/iteration_depth.html b/doc/ref/iteration_depth.html
new file mode 100644
index 0000000..2aa1ca8
--- /dev/null
+++ b/doc/ref/iteration_depth.html
@@ -0,0 +1,73 @@
+<html>
+<head>
+	<title>BOOST_PP_ITERATION_DEPTH</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ITERATION_DEPTH</b> macro expands to the current <i>file-iteration</i> depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ITERATION_DEPTH</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			If a <i>file-iteration</i> is not in progress, this macro expands to <i>0</i>.&nbsp;
+			Otherwise, it expands to the current depth of <i>file-iteration</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="frame_iteration.html">BOOST_PP_FRAME_ITERATION</a></li>
+			<li><a href="relative_iteration.html">BOOST_PP_RELATIVE_ITERATION</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// file.h
+#if !<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>
+
+   #ifndef FILE_H_
+   #define FILE_H_
+
+   #include &lt;<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>&gt;
+
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (3, (1, 3, "file.h"))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   #endif
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 1
+
+   + depth <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>()
+   // ...
+
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_2</a> \
+      (3, (1, <a href="iteration.html">BOOST_PP_ITERATION</a>(), "file.h")) \
+      /**/
+
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 2
+
+   - depth <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>()
+   // ...
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/iteration_finish.html b/doc/ref/iteration_finish.html
new file mode 100644
index 0000000..517ccbc
--- /dev/null
+++ b/doc/ref/iteration_finish.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+	<title>BOOST_PP_ITERATION_FINISH</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ITERATION_FINISH</b> macro expands to the upper bound of the current <i>file-iteration</i> depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ITERATION_FINISH</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// file.h
+#if !<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>
+
+   #ifndef FILE_H_
+   #define FILE_H_
+
+   #include &lt;<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>&gt;
+
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (3, (1, 10, "file.h"))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   #endif
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 1
+
+   start -> <a href="iteration_start.html">BOOST_PP_ITERATION_START</a>()
+   iteration -> <a href="iteration.html">BOOST_PP_ITERATION</a>()
+   finish -> <a href="iteration_finish.html">BOOST_PP_ITERATION_FINISH</a>()
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/iteration_flags.html b/doc/ref/iteration_flags.html
new file mode 100644
index 0000000..8ea4166
--- /dev/null
+++ b/doc/ref/iteration_flags.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+	<title>BOOST_PP_ITERATION_FLAGS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ITERATION_FLAGS</b> macro retrieves flags associated with the current <i>file-iteration</i> depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ITERATION_FLAGS</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// file.h
+#if !<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>
+
+   #ifndef FILE_H_
+   #define FILE_H_
+
+   #include &lt;<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>&gt;
+
+   // 1st iteration:
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (4, (1, 10, "file.h", 0x0001))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   // 2nd iteration:
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (4, (1, 10, "file.h", 0x0002))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   #endif
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 1 \
+   &amp;&amp; <a href="iteration_flags.html">BOOST_PP_ITERATION_FLAGS</a>() == 0x0001 \
+   /**/
+
+   { 1st }
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 1 \
+   &amp;&amp; <a href="iteration_flags.html">BOOST_PP_ITERATION_FLAGS</a>() == 0x0002 \
+   /**/
+
+   { 2nd }
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/iteration_limits.html b/doc/ref/iteration_limits.html
new file mode 100644
index 0000000..a02a3f4
--- /dev/null
+++ b/doc/ref/iteration_limits.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+	<title>BOOST_PP_ITERATION_LIMITS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ITERATION_LIMITS</b> macro is a user-defined <i>named external argument</i> used by <b>BOOST_PP_ITERATE</b>.&nbsp;
+		It denotes the lower and upper bounds of a <i>file-iteration</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#define <b>BOOST_PP_ITERATION_LIMITS</b> (<i>start</i>, <i>finish</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>start</dt>
+			<dd>
+				The lower bound (inclusive) of a <i>file-iteration</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>.
+			</dd>
+			<dt>finish</dt>
+			<dd>
+				The upper bound (inclusive) of a <i>file-iteration</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Note that there is a whitespace character after the macro identifier.
+		</div>
+		<div>
+			This macro is part of the secondary method of passing arguments to <b>BOOST_PP_ITERATE</b>.&nbsp;
+			The other part is <b>BOOST_PP_FILENAME_<i>x</i></b>.&nbsp;Both <i>start</i> and <i>finish</i> are <i>evaluated parameters</i>.&nbsp;
+			This implies that they may include simple arithmetic.
+		</div>
+		<div>
+			This macro is automatically undefined for reuse by a call to <b>BOOST_PP_ITERATE</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="filename_x.html">BOOST_PP_FILENAME_<i>x</i></a></li>
+			<li><a href="iterate.html">BOOST_PP_ITERATE</a></li>
+			<li><a href="limit_iteration.html">BOOST_PP_LIMIT_ITERATION</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/iteration_params_x.html b/doc/ref/iteration_params_x.html
new file mode 100644
index 0000000..083c2c7
--- /dev/null
+++ b/doc/ref/iteration_params_x.html
@@ -0,0 +1,77 @@
+<html>
+<head>
+	<title>BOOST_PP_ITERATION_PARAMS_x</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b> macro is a user-defined <i>named external argument</i> used by <b>BOOST_PP_ITERATE</b>.&nbsp;
+		It denotes the lower bound, upper bound, and the filename of a <i>file-iteration</i>.&nbsp;It can optionally denote flags associated with a <i>file-iteration</i> as well.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#define <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b> (<i>c</i>, (<i>start</i>, <i>finish</i>, <i>filename</i> [, <i>flags</i>]))
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The iteration depth of the next <i>file-iteration</i>.&nbsp;
+				This value <i>must</i> be the current iteration depth + <i>1</i>.
+			</dd>
+			<dt>c</dt>
+			<dd>
+				The number of parameters.&nbsp;
+				If <i>flags</i> is specified, this value must be <i>4</i>.&nbsp;
+				Otherwise, it must be <i>3</i>.
+			</dd>
+			<dt>start</dt>
+			<dd>
+				The lower bound (inclusive) of a <i>file-iteration</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>.
+			</dd>
+			<dt>finish</dt>
+			<dd>
+				The upper bound (inclusive) of a <i>file-iteration</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>.
+			</dd>
+			<dt>filename</dt>
+			<dd>
+				A quoted or angle-bracketed filename to used as the target of a <i>file-iteration</i>.
+			</dd>
+			<dt>[flags]</dt>
+			<dd>
+				The flags associated with this <i>file-iteration</i> used to discriminate between different <i>file-iterations</i> in the same file.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Note that there is a whitespace character after the macro identifier.
+		</div>
+		<div>
+			This macro is must be defined as an <i>array</i> of arguments in one of the two formats above (with or without <i>flags</i>).
+			It is the primary method of passing arguments to <b>BOOST_PP_ITERATE</b>.&nbsp;
+			Both <i>start</i> and <i>finish</i> are <i>evaluated parameters</i>, which implies that simple arithmetic can be used.
+		</div>
+		<div>
+			This macro is automatically undefined for reuse by a call to <b>BOOST_PP_ITERATE</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="iterate.html">BOOST_PP_ITERATE</a></li>
+			<li><a href="limit_iteration.html">BOOST_PP_LIMIT_ITERATION</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/iteration_start.html b/doc/ref/iteration_start.html
new file mode 100644
index 0000000..0a870a2
--- /dev/null
+++ b/doc/ref/iteration_start.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+	<title>BOOST_PP_ITERATION_START</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_ITERATION_START</b> macro expands to the lower bound of the current <i>file-iteration</i> depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_ITERATION_START</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// file.h
+#if !<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>
+
+   #ifndef FILE_H_
+   #define FILE_H_
+
+   #include &lt;<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>&gt;
+
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (3, (1, 10, "file.h"))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   #endif
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 1
+
+   start -> <a href="iteration_start.html">BOOST_PP_ITERATION_START</a>()
+   iteration -> <a href="iteration.html">BOOST_PP_ITERATION</a>()
+   finish -> <a href="iteration_finish.html">BOOST_PP_ITERATION_FINISH</a>()
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/less.html b/doc/ref/less.html
new file mode 100644
index 0000000..2c5e690
--- /dev/null
+++ b/doc/ref/less.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+	<title>BOOST_PP_LESS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LESS</b> macro compares two values for lesser magnitude.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LESS</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is less than <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LESS_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="less_d.html">BOOST_PP_LESS_D</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/less.html">&lt;boost/preprocessor/comparison/less.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/less.html">boost/preprocessor/comparison/less.hpp</a>&gt;
+
+<a href="less.html">BOOST_PP_LESS</a>(4, 3) // expands to 0
+<a href="less.html">BOOST_PP_LESS</a>(3, 4) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/less_d.html b/doc/ref/less_d.html
new file mode 100644
index 0000000..bc49981
--- /dev/null
+++ b/doc/ref/less_d.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+	<title>BOOST_PP_LESS_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LESS_D</b> macro compares two values for lesser magnitude.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LESS_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is less than <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="less.html">BOOST_PP_LESS</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/less.html">&lt;boost/preprocessor/comparison/less.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/less.html">boost/preprocessor/comparison/less.hpp</a>&gt;
+#include &lt;<a href="../headers/list/filter.html">boost/preprocessor/list/filter.hpp</a>&gt;
+
+#define LIST (1, (2, (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))))
+
+#define PRED(d, _, num) <a href="less_d.html">BOOST_PP_LESS_D</a>(d, num, 3)
+
+<a href="list_filter.html">BOOST_PP_LIST_FILTER</a>(PRED, nil, LIST)
+   // expands to (1, (2, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/less_equal.html b/doc/ref/less_equal.html
new file mode 100644
index 0000000..5569786
--- /dev/null
+++ b/doc/ref/less_equal.html
@@ -0,0 +1,65 @@
+<html>
+<head>
+	<title>BOOST_PP_LESS_EQUAL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LESS_EQUAL</b> macro compares two values for equality or lesser magnitude.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LESS_EQUAL</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is lesser than or equal to <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LESS_EQUAL_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="less_equal_d.html">BOOST_PP_LESS_EQUAL_D</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/less_equal.html">&lt;boost/preprocessor/comparison/less_equal.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/less_equal.html">boost/preprocessor/comparison/less_equal.hpp</a>&gt;
+
+<a href="less_equal.html">BOOST_PP_LESS_EQUAL</a>(4, 3) // expands to 0
+<a href="less_equal.html">BOOST_PP_LESS_EQUAL</a>(5, 5) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/less_equal_d.html b/doc/ref/less_equal_d.html
new file mode 100644
index 0000000..04e02d0
--- /dev/null
+++ b/doc/ref/less_equal_d.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+	<title>BOOST_PP_LESS_EQUAL_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LESS_EQUAL_D</b> macro compares two values for equality or lesser magnitude.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LESS_EQUAL_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is less than or equal to <i>y</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="less_equal.html">BOOST_PP_LESS_EQUAL</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/less_equal.html">&lt;boost/preprocessor/comparison/less_equal.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/less_equal.html">boost/preprocessor/comparison/less_equal.hpp</a>&gt;
+#include &lt;<a href="../headers/list/filter.html">boost/preprocessor/list/filter.hpp</a>&gt;
+
+#define LIST (1, (2, (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))))
+
+#define PRED(d, _, num) <a href="less_equal_d.html">BOOST_PP_LESS_EQUAL_D</a>(d, num, 4)
+
+<a href="list_filter.html">BOOST_PP_LIST_FILTER</a>(PRED, nil, LIST)
+   // expands to (1, (2, (3, (4, <a href="nil.html">BOOST_PP_NIL</a>))))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/limit_dim.html b/doc/ref/limit_dim.html
new file mode 100644
index 0000000..b621548
--- /dev/null
+++ b/doc/ref/limit_dim.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+	<title>BOOST_PP_LIMIT_DIM</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIMIT_DIM</b> macro defines the maximum number of available <b>BOOST_PP_REPEAT</b> dimensions.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_DIM</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro currently expands to <i>3</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/limit_for.html b/doc/ref/limit_for.html
new file mode 100644
index 0000000..07eadc6
--- /dev/null
+++ b/doc/ref/limit_for.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>BOOST_PP_LIMIT_FOR</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIMIT_FOR</b> macro defines the maximum number of <b>BOOST_PP_FOR</b> repetitions.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_FOR</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro currently expands to <i>256</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/limit_iteration.html b/doc/ref/limit_iteration.html
new file mode 100644
index 0000000..5cd8b87
--- /dev/null
+++ b/doc/ref/limit_iteration.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>BOOST_PP_LIMIT_ITERATION</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIMIT_ITERATION</b> macro defines the maximum number of <i>local</i> and <i>file</i> iterations.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_ITERATION</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro currently expands to <i>256</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/limit_iteration_dim.html b/doc/ref/limit_iteration_dim.html
new file mode 100644
index 0000000..54d9c9c
--- /dev/null
+++ b/doc/ref/limit_iteration_dim.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>BOOST_PP_LIMIT_ITERATION_DIM</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIMIT_ITERATION_DIM</b> macro defines the maximum depth of <i>file-iteration</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_ITERATION_DIM</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro currently expands to <i>3</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/limit_mag.html b/doc/ref/limit_mag.html
new file mode 100644
index 0000000..d136f8c
--- /dev/null
+++ b/doc/ref/limit_mag.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>BOOST_PP_LIMIT_MAG</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIMIT_MAG</b> macro defines the maximum input and result magnitudes of arithmetic.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_MAG</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro currently expands to <i>256</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/limit_repeat.html b/doc/ref/limit_repeat.html
new file mode 100644
index 0000000..b31272d
--- /dev/null
+++ b/doc/ref/limit_repeat.html
@@ -0,0 +1,39 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_LIMIT_REPEAT</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_LIMIT_REPEAT</b> macro
+      defines the maximum number of repetitions supported by each <b>BOOST_PP_REPEAT</b>
+      dimension. </div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_LIMIT_REPEAT</b> </div>
+    <h4>Remarks</h4>
+    <div> This macro current expands to <i>256</i>.<br>
+      <br>
+      NOTE: for the current latest versions of Microsoft's VC++ compiler there
+      is a nested macro limit of 256. This means in actuality that the number of
+      repetitions using VC++ is actually less than 256 depending on the
+      repetition macro being used. For the BOOST_PP_REPEAT macro this limit
+      appears to be 252 while for the BOOST_PP_ENUM... series of macros this
+      limit appears to be around 230, before the VC++ compiler gives a "C1009:
+      compiler limit : macros nested too deeply" error. This is a compiler
+      limitation of VC++ which may vary depending on the specific repetition
+      macro being used, and therefore is not a problem the preprocessor library
+      can solve.</div>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/limit_seq.html b/doc/ref/limit_seq.html
new file mode 100644
index 0000000..6535a4f
--- /dev/null
+++ b/doc/ref/limit_seq.html
@@ -0,0 +1,41 @@
+<html>
+	<head>
+		<title>BOOST_PP_LIMIT_SEQ</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_LIMIT_SEQ</b> macro defines the maximum <i>seq</i> size 
+			supported by the library.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_SEQ</b>
+		</div>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro currently expands to <i>256</i>.
+		</div>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/limit_slot_count.html b/doc/ref/limit_slot_count.html
new file mode 100644
index 0000000..feb09d1
--- /dev/null
+++ b/doc/ref/limit_slot_count.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>BOOST_PP_LIMIT_SLOT_COUNT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIMIT_SLOT_COUNT</b> macro defines the number of available <i>evaluated slots</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_SLOT_COUNT</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro currently expands to <i>5</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/limit_slot_sig.html b/doc/ref/limit_slot_sig.html
new file mode 100644
index 0000000..94c9330
--- /dev/null
+++ b/doc/ref/limit_slot_sig.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>BOOST_PP_LIMIT_SLOT_SIG</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIMIT_SLOT_SIG</b> macro defines the number of significant base-10 digits that can be evaluated by the <i>slot</i> mechanism.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_SLOT_SIG</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro currently expands to <i>10</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/limit_tuple.html b/doc/ref/limit_tuple.html
new file mode 100644
index 0000000..a249727
--- /dev/null
+++ b/doc/ref/limit_tuple.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+    <title>BOOST_PP_LIMIT_TUPLE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left: 0px;">
+		The <b>BOOST_PP_LIMIT_TUPLE</b> macro defines the maximum <i>tuple</i> size supported by the library.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_TUPLE</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro currently expands to <i>64</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/limit_variadic.html b/doc/ref/limit_variadic.html
new file mode 100644
index 0000000..7fd3d04
--- /dev/null
+++ b/doc/ref/limit_variadic.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+  <title>BOOST_PP_LIMIT_VARIADIC</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_VARIADIC</b> macro
+defines the maximum <i>variadic data</i> size&nbsp;supported by the library. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_LIMIT_VARIADIC</b> </div>
+<h4>Remarks</h4>
+<div> This macro currently expands to <i>64</i>. </div>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/limit_while.html b/doc/ref/limit_while.html
new file mode 100644
index 0000000..8662b74
--- /dev/null
+++ b/doc/ref/limit_while.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>BOOST_PP_LIMIT_WHILE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIMIT_WHILE</b> macro defines the maximum number of <b>BOOST_PP_WHILE</b> iterations.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIMIT_WHILE</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro currently expands to <i>256</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/config/limits.html">&lt;boost/preprocessor/config/limits.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/line.html b/doc/ref/line.html
new file mode 100644
index 0000000..39a90b7
--- /dev/null
+++ b/doc/ref/line.html
@@ -0,0 +1,112 @@
+<html>
+<head>
+	<title>BOOST_PP_LINE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LINE</b> macro places notes encoded as line directives in the preprocessing output.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#line <b>BOOST_PP_LINE</b>(<i>line</i>, <i>file</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>line</dt>
+			<dd>
+				The new line number of the trailing line.&nbsp;
+				The predefined macro <i>__LINE__</i> is commonly used.
+			</dd>
+			<dt>file</dt>
+			<dd>
+				Typically the name of the current file.&nbsp;
+				However, any informative text will work.&nbsp;
+				This text is internally stringized, so quotation marks are unnecessary.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If the macro <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> is defined as <i>1</i> and a <i>file-iteration</i>
+			is in progress, this macro will automatically insert debugging information about the state of <i>file-iteration</i>.&nbsp;
+			This information will show the all of the current iteration values with the inner most iteration last.
+		</div>
+		<div>
+			This information is useful when errors might be spanning multiple iterations of the same source text.&nbsp;
+			Finding any errors is sometimes less than straightforward.&nbsp;
+			Use of this macro can provide information to make this much easier.&nbsp;
+			For example, instead of getting several errors like this:
+			<div><i>
+				"file.hpp", line 2: error: expected a ";"<br>
+				"file.hpp", line 4: error: improperly terminated macro invocation<br>
+			</i></div>
+			You might get something like this instead....
+			<i><div>
+				"file.hpp [1]", line 2: error: expected a ";"<br>
+				"file.hpp [5]", line 4: error: improperly terminated macro invocation<br>
+			</i></div>
+			It is immediately evident that this error is spanning multiple iterations of the same source text.&nbsp;
+			If it wasn't, the same errors would occur on each iteration.
+		</div>
+		<div>
+			It must be noted however, that some compilers don't like filenames that aren't actually files.&nbsp;
+			Those compilers typically issues warnings about the bad filename.&nbsp;
+			This makes it a good idea to only define <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> to <i>1</i> <i>only</i> when debugging.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="config_extended_line_info.html">BOOST_PP_CONFIG_EXTENDED_LINE_INFO</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/debug/line.html">&lt;boost/preprocessor/debug/line.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// sample.cpp
+#if !defined(<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>)
+
+   #define <a href="config_extended_line_info.html">BOOST_PP_CONFIG_EXTENDED_LINE_INFO</a> 1
+
+   #include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+   #include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+   #include &lt;<a href="../headers/debug/line.html">boost/preprocessor/debug/line.hpp</a>&gt;
+   #include &lt;<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>&gt;
+
+   namespace sample {
+
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (3, (1, 5, "sample.cpp"))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   } // sample
+
+   int main(void) {
+      return 0;
+   }
+
+#else
+
+   #line <a href="line.html">BOOST_PP_LINE</a>(1, sample.cpp)
+
+   int <a href="cat.html">BOOST_PP_CAT</a>(x, <a href="iteration.html">BOOST_PP_ITERATION</a>())); // extra parenthesis
+   
+   struct <a href="cat.html">BOOST_PP_CAT</a>(s, <a href="dec.html">BOOST_PP_DEC</a>(<a href="iteration.html">BOOST_PP_ITERATION</a>()) {
+      // missing a parenthesis
+      // ...
+   };
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_append.html b/doc/ref/list_append.html
new file mode 100644
index 0000000..733883a
--- /dev/null
+++ b/doc/ref/list_append.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_APPEND</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_APPEND</b> macro appends two <i>lists</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_APPEND</b>(<i>a</i>, <i>b</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>a</dt>
+			<dd>
+				The first <i>list</i>.
+			</dd>
+			<dt>b</dt>
+			<dd>
+				The second <i>list</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro appends two lists.&nbsp;
+			For example, if <i>a</i> is (<i>1</i>, (<i>2</i>, (<i>3</i>, <b>BOOST_PP_NIL</b>))) and <i>b</i> is (<i>4</i>, (<i>5</i>, <b>BOOST_PP_NIL</b>)),
+			this macro will expand to:
+			<div>
+				(<i>1</i>, (<i>2</i>, (<i>3</i>, (<i>4</i>, (<i>5</i>, <b>BOOST_PP_NIL</b>)))))
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_APPEND_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_append_d.html">BOOST_PP_LIST_APPEND_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/append.html">&lt;boost/preprocessor/list/append.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/append.html">boost/preprocessor/list/append.hpp</a>&gt;
+
+#define L1 (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+#define L2 (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+<a href="list_append.html">BOOST_PP_LIST_APPEND</a>(L1, L2)
+   // expands to (a, (b, (c, (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>))))))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_append_d.html b/doc/ref/list_append_d.html
new file mode 100644
index 0000000..065f099
--- /dev/null
+++ b/doc/ref/list_append_d.html
@@ -0,0 +1,96 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_APPEND_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_APPEND_D</b> macro appends two <i>lists</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_APPEND_D</b>(<i>d</i>, <i>a</i>, <i>b</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>a</dt>
+			<dd>
+				The first <i>list</i>.
+			</dd>
+			<dt>b</dt>
+			<dd>
+				The second <i>list</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro appends two lists.&nbsp;
+			For example, if <i>a</i> is (<i>1</i>, (<i>2</i>, (<i>3</i>, <b>BOOST_PP_NIL</b>))) and <i>b</i> is (<i>4</i>, (<i>5</i>, <b>BOOST_PP_NIL</b>)),
+			this macro will expand to:
+			<div>
+				(<i>1</i>, (<i>2</i>, (<i>3</i>, (<i>4</i>, (<i>5</i>, <b>BOOST_PP_NIL</b>)))))
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_append.html">BOOST_PP_LIST_APPEND</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/append.html">&lt;boost/preprocessor/list/append.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/control/while.html">boost/preprocessor/control/while.hpp</a>&gt;
+#include &lt;<a href="../headers/list/append.html">boost/preprocessor/list/append.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define LIST (1, (2, (3, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define PRED(d, state) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 1, state)
+
+#define OP(d, state) \
+   ( \
+      <a href="list_append_d.html">BOOST_PP_LIST_APPEND_D</a>( \
+         d, <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 0, state), \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 2, state) \
+      ), \
+      <a href="dec.html">BOOST_PP_DEC</a>( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 1, state) \
+      ), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 2, state) \
+   ) \
+   /**/
+
+#define LIST_MULTIPLY(c, list) \
+   <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>( \
+      3, 0, \
+      <a href="while.html">BOOST_PP_WHILE</a>( \
+         PRED, OP, \
+         (<a href="nil.html">BOOST_PP_NIL</a>, c, list) \
+      ) \
+   ) \
+   /**/
+
+LIST_MULTIPLY(3, LIST)
+   // expands to (1, (2, (3, (1, (2, (3, (1, (2, (3, <a href="nil.html">BOOST_PP_NIL</a>)))))))))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_at.html b/doc/ref/list_at.html
new file mode 100644
index 0000000..8470c7e
--- /dev/null
+++ b/doc/ref/list_at.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_AT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_AT</b> macro extracts an element in a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_AT</b>(<i>list</i>, <i>index</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> from which a element is to be extracted.&nbsp;
+				This <i>list</i> must have at least <i>index</i> + <i>1</i> elements.
+			</dd>
+			<dt>index</dt>
+			<dd>
+				The zero-based position in the <i>list</i> of the element to be extracted.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_AT_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_at_d.html">BOOST_PP_LIST_AT_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/at.html">&lt;boost/preprocessor/list/at.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/at.html">boost/preprocessor/list/at.hpp</a>&gt;
+
+#define LIST (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+<a href="list_at.html">BOOST_PP_LIST_AT</a>(LIST, 0) // expands to a
+<a href="list_at.html">BOOST_PP_LIST_AT</a>(LIST, 2) // expands to c
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_at_d.html b/doc/ref/list_at_d.html
new file mode 100644
index 0000000..a863dc8
--- /dev/null
+++ b/doc/ref/list_at_d.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_AT_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_AT_D</b> macro extracts an element in a <i>list</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_AT_D</b>(<i>d</i>, <i>list</i>, <i>index</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> from which a element is to be extracted.&nbsp;
+				This <i>list</i> must have at least <i>index</i> + <i>1</i> elements.
+			</dd>
+			<dt>index</dt>
+			<dd>
+				The zero-based position in the <i>list</i> of the element to be extracted.
+			</dd>
+		</dl>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_at.html">BOOST_PP_LIST_AT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/at.html">&lt;boost/preprocessor/list/at.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/control/while.html">boost/preprocessor/control/while.hpp</a>&gt;
+#include &lt;<a href="../headers/list/at.html">boost/preprocessor/list/at.hpp</a>&gt;
+
+#define LIST (7, (2, (0, (1, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+#define PRED(d, state) <a href="list_at_d.html">BOOST_PP_LIST_AT_D</a>(d, state, 0)
+#define OP(d, state) <a href="list_rest.html">BOOST_PP_LIST_REST</a>(state)
+
+<a href="while.html">BOOST_PP_WHILE</a>(PRED, OP, LIST) // expands to (0, (1, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_cat.html b/doc/ref/list_cat.html
new file mode 100644
index 0000000..b24ef8d
--- /dev/null
+++ b/doc/ref/list_cat.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_CAT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_CAT</b> macro concatenates all elements in a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_CAT</b>(<i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> whose elements are to be concatenated.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Elements are concatenated left-to-right starting with index <i>0</i>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_CAT_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_cat_d.html">BOOST_PP_LIST_CAT_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/cat.html">&lt;boost/preprocessor/list/cat.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/cat.html">boost/preprocessor/list/cat.hpp</a>&gt;
+
+#define LIST (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+<a href="list_cat.html">BOOST_PP_LIST_CAT</a>(LIST) // expands to abc
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_cat_d.html b/doc/ref/list_cat_d.html
new file mode 100644
index 0000000..ae8d2c8
--- /dev/null
+++ b/doc/ref/list_cat_d.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_CAT_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_CAT_D</b> macro concatenates all elements in a <i>list</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_CAT_D</b>(<i>d</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> whose elements are to be concatenated.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Elements are concatenated left-to-right starting with index <i>0</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_cat.html">BOOST_PP_LIST_CAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/cat.html">&lt;boost/preprocessor/list/cat.hpp&gt;</a>
+	</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/cat.html">boost/preprocessor/list/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_left.hpp</a>&gt;
+
+#define LISTS \
+   ((a, (b, <a href="nil.html">BOOST_PP_NIL</a>)), \
+      ((c, (d, <a href="nil.html">BOOST_PP_NIL</a>)), \
+         ((e, (f, <a href="nil.html">BOOST_PP_NIL</a>)), \
+            <a href="nil.html">BOOST_PP_NIL</a>))) \
+   /**/
+
+#define OP(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, <a href="list_cat_d.html">BOOST_PP_LIST_CAT_D</a>(d, x))
+
+<a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a>(OP, _, LISTS) // expands to _abcdef
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_cons.html b/doc/ref/list_cons.html
new file mode 100644
index 0000000..53d29ba
--- /dev/null
+++ b/doc/ref/list_cons.html
@@ -0,0 +1,87 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_CONS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_CONS</b> macro is a <i>list</i> constructor.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_CONS</b>(<i>head</i>, <i>tail</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>head</dt>
+			<dd>
+				An element in a <i>list</i>.
+			</dd>
+			<dt>tail</dt>
+			<dd>
+				Either a <i>list</i>, <b>BOOST_PP_LIST_NIL</b>, or <b>BOOST_PP_NIL</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro appends a new head to an existing <i>list</i> or creates a <i>list</i> from <b>BOOST_PP_LIST_NIL</b>.
+		</div>
+		<div>
+			This macro is no longer necessary.&nbsp;
+			For example...
+			<div>
+				<b>BOOST_PP_LIST_CONS</b>(a, <b>BOOST_PP_LIST_CONS</b>(b, <b>BOOST_PP_LIST_NIL</b>)))
+			</div>
+			...is just an explicit way of writing the following:
+			<div>
+				(a, (b, <b>BOOST_PP_NIL</b>))
+			</div>
+			Because of this, this macro is deprecated.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_nil.html">BOOST_PP_LIST_NIL</a></li>
+			<li><a href="nil.html">BOOST_PP_NIL</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/adt.html">&lt;boost/preprocessor/list/adt.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+
+#define OLD \
+   <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+      a, \
+      <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+         b, \
+         <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+            c, \
+            <a href="list_nil.html">BOOST_PP_LIST_NIL</a> \
+         ) \
+      ) \
+   ) \
+   /**/
+
+#define NEW (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+<a href="list_first.html">BOOST_PP_LIST_FIRST</a>(OLD) == <a href="list_first.html">BOOST_PP_LIST_FIRST</a>(NEW)
+   // expands to a == a
+
+<a href="list_rest.html">BOOST_PP_LIST_REST</a>(OLD) == <a href="list_rest.html">BOOST_PP_LIST_REST</a>(NEW)
+   // expands to (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)) == (b, (c, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_enum.html b/doc/ref/list_enum.html
new file mode 100644
index 0000000..e3f6059
--- /dev/null
+++ b/doc/ref/list_enum.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_ENUM</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_ENUM</b> macro converts a <i>list</i> to a comma-separated list.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_ENUM</b>(<i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be converted.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
+			this macro will produce:
+			<div>
+				<i>a</i>, <i>b</i>, <i>c</i>
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_FOR</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_ENUM_R</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_enum_r.html">BOOST_PP_LIST_ENUM_R</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/enum.html">&lt;boost/preprocessor/list/enum.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/enum.html">boost/preprocessor/list/enum.hpp</a>&gt;
+
+#define LIST (w, (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+<a href="list_enum.html">BOOST_PP_LIST_ENUM</a>(LIST) // expands to w, x, y, z
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_enum_r.html b/doc/ref/list_enum_r.html
new file mode 100644
index 0000000..ff16cea
--- /dev/null
+++ b/doc/ref/list_enum_r.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_ENUM_R</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_ENUM_R</b> macro converts a <i>list</i> to a comma-separated list.&nbsp;
+		It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_ENUM_R</b>(<i>r</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>r</dt>
+			<dd>
+				The next available <b>BOOST_PP_FOR</b> repetition.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be converted.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
+			this macro will produce:
+			<div>
+				<i>a</i>, <i>b</i>, <i>c</i>
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_enum.html">BOOST_PP_LIST_ENUM</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/enum.html">&lt;boost/preprocessor/list/enum.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/for.html">boost/preprocessor/repetition/for.hpp</a>&gt;
+#include &lt;<a href="../headers/list/enum.html">boost/preprocessor/list/enum.hpp</a>&gt;
+
+#define LIST (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define PRED(r, state) <a href="list_is_cons.html">BOOST_PP_LIST_IS_CONS</a>(state)
+#define OP(r, state) <a href="list_rest.html">BOOST_PP_LIST_REST</a>(state)
+#define MACRO(r, state) [ <a href="list_enum_r.html">BOOST_PP_LIST_ENUM_R</a>(r, state) ]
+
+<a href="for.html">BOOST_PP_FOR</a>(LIST, PRED, OP, MACRO)
+   // expands to [x, y, z] [y, z] [z]
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_filter.html b/doc/ref/list_filter.html
new file mode 100644
index 0000000..7a412fb
--- /dev/null
+++ b/doc/ref/list_filter.html
@@ -0,0 +1,76 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FILTER</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FILTER</b> macro filters a <i>list</i> according to a supplied criterion.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FILTER</b>(<i>pred</i>, <i>data</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>pred</dt>
+			<dd>
+				A ternary predicate of the form <i>pred</i>(<i>d</i>, <i>data</i>, <i>elem</i>).&nbsp;
+				This predicate is expanded by <b>BOOST_PP_LIST_FILTER</b> for each element in <i>list</i> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the auxiliary <i>data</i>, and the current element in <i>list</i>.&nbsp;
+				This macro must return a integral value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.&nbsp;
+				If this predicate expands to non-zero for a certain element, that element is included in the resulting <i>list</i>.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>pred</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be filtered.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands <i>pred</i> for each element in <i>list</i>.&nbsp;
+			It builds a new <i>list</i> out of each element for which <i>pred</i> returns non-zero.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_FILTER_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="list_filter_d.html">BOOST_PP_LIST_FILTER_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/filter.html">&lt;boost/preprocessor/list/filter.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/less_equal.html">boost/preprocessor/comparison/less_equal.hpp</a>&gt;
+#include &lt;<a href="../headers/list/filter.html">boost/preprocessor/list/filter.hpp</a>&gt;
+
+#define LIST (1, (3, (2, (5, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+#define PRED(d, data, elem) <a href="less_equal.html">BOOST_PP_LESS_EQUAL</a>(elem, data)
+
+<a href="list_filter.html">BOOST_PP_LIST_FILTER</a>(PRED, 3, LIST)
+   // expands to (1, (3, (2, <a href="nil.html">BOOST_PP_NIL</a>)))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_filter_d.html b/doc/ref/list_filter_d.html
new file mode 100644
index 0000000..d63d949
--- /dev/null
+++ b/doc/ref/list_filter_d.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FILTER_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FILTER_D</b> macro filters a <i>list</i> according to a supplied criterion.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FILTER_D</b>(<i>d</i>, <i>pred</i>, <i>data</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>pred</dt>
+			<dd>
+				A ternary predicate of the form <i>pred</i>(<i>d</i>, <i>data</i>, <i>elem</i>).&nbsp;
+				This predicate is expanded by <b>BOOST_PP_LIST_FILTER</b> for each element in <i>list</i> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the auxiliary <i>data</i>, and the current element in <i>list</i>.&nbsp;
+				This macro must return a integral value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.&nbsp;
+				If this predicate expands to non-zero for a certain element, that element is included in the resulting <i>list</i>.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>pred</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be filtered.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands <i>pred</i> for each element in <i>list</i>.&nbsp;
+			It builds a new <i>list</i> out of each element for which <i>pred</i> returns non-zero.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="list_filter.html">BOOST_PP_LIST_FILTER</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/filter.html">&lt;boost/preprocessor/list/filter.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/less_equal.html">boost/preprocessor/comparison/less_equal.hpp</a>&gt;
+#include &lt;<a href="../headers/list/filter.html">boost/preprocessor/list/filter.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+
+#define A (1, (2, (3, (4, <a href="nil.html">BOOST_PP_NIL</a>))))
+#define B (A, (A, (A, (A, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+#define PRED(d, data, x) <a href="less_equal.html">BOOST_PP_LESS_EQUAL</a>(x, data)
+#define OP(d, state, x) (<a href="list_filter_d.html">BOOST_PP_LIST_FILTER_D</a>(d, PRED, 2, x), state)
+
+<a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, B)
+/*
+   expands to:
+   ((1, (2, <a href="nil.html">BOOST_PP_NIL</a>)), 
+   ((1, (2, <a href="nil.html">BOOST_PP_NIL</a>)), 
+   ((1, (2, <a href="nil.html">BOOST_PP_NIL</a>)), 
+   ((1, (2, <a href="nil.html">BOOST_PP_NIL</a>)), 
+      <a href="nil.html">BOOST_PP_NIL</a>))))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_first.html b/doc/ref/list_first.html
new file mode 100644
index 0000000..5b056ab
--- /dev/null
+++ b/doc/ref/list_first.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FIRST</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FIRST</b> macro expands to the head of a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FIRST</b>(<i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>list</dt>
+			<dd>
+				A non-nil <i>list</i>.
+			</dd>
+		</dl>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/adt.html">&lt;boost/preprocessor/list/adt.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+
+#define OLD \
+   <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+      a, \
+      <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+         b, \
+         <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+            c, \
+            <a href="list_nil.html">BOOST_PP_LIST_NIL</a> \
+         ) \
+      ) \
+   ) \
+   /**/
+
+#define NEW (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+<a href="list_first.html">BOOST_PP_LIST_FIRST</a>(OLD) == <a href="list_first.html">BOOST_PP_LIST_FIRST</a>(NEW)
+   // expands to a == a
+
+<a href="list_rest.html">BOOST_PP_LIST_REST</a>(OLD) == <a href="list_rest.html">BOOST_PP_LIST_REST</a>(NEW)
+   // expands to (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)) == (b, (c, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_first_n.html b/doc/ref/list_first_n.html
new file mode 100644
index 0000000..0136eab
--- /dev/null
+++ b/doc/ref/list_first_n.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FIRST_N</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FIRST_N</b> macro expands to a <i>list</i> of the first <i>count</i> elements of a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FIRST_N</b>(<i>count</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of elements to extract.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> from which the elements are extracted.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro extracts <i>count</i> elements from the beginning of <i>list</i> and returns them as a <i>list</i>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_FIRST_N_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_first_n_d.html">BOOST_PP_LIST_FIRST_N_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/first_n.html">&lt;boost/preprocessor/list/first_n.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/first_n.html">boost/preprocessor/list/first_n.hpp</a>&gt;
+
+#define LIST (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+<a href="list_first_n.html">BOOST_PP_LIST_FIRST_N</a>(2, LIST) // expands to (a, (b, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_first_n_d.html b/doc/ref/list_first_n_d.html
new file mode 100644
index 0000000..67a48ee
--- /dev/null
+++ b/doc/ref/list_first_n_d.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FIRST_N_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FIRST_N_D</b> macro expands to a <i>list</i> of the first <i>count</i> elements of a <i>list</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FIRST_N_D</b>(<i>d</i>, <i>count</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of elements to extract.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> from which the elements are extracted.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro extracts <i>count</i> elements from the beginning of <i>list</i> and returns them as a <i>list</i>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_first_n.html">BOOST_PP_LIST_FIRST_N</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/first_n.html">&lt;boost/preprocessor/list/first_n.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/first_n.html">boost/preprocessor/list/first_n.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+
+#define L1 (a, (b, (c, (d, <a href="nil.html">BOOST_PP_NIL</a>))))
+#define L2 (L1, (L1, (L1, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) (<a href="list_first_n_d.html">BOOST_PP_LIST_FIRST_N_D</a>(d, 2, x), state)
+
+<a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, L2)
+/*
+   expands to...
+   ((a, (b, <a href="nil.html">BOOST_PP_NIL</a>)), ((a, (b, <a href="nil.html">BOOST_PP_NIL</a>)),
+   ((a, (b, <a href="nil.html">BOOST_PP_NIL</a>)) , <a href="nil.html">BOOST_PP_NIL</a> )))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_left.html b/doc/ref/list_fold_left.html
new file mode 100644
index 0000000..7afa81d
--- /dev/null
+++ b/doc/ref/list_fold_left.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_LEFT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_LEFT</b> macro folds (or accumulates) the elements of a <i>list</i> left-to-right.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_LEFT</b>(<i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_LEFT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>0</i>), <i>1</i>), <i>2</i>)
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_FOLD_LEFT_<i>d</i></b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_left_d.html">BOOST_PP_LIST_FOLD_LEFT_<i>d</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_left.html">&lt;boost/preprocessor/list/fold_left.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_left.hpp</a>&gt;
+
+#define LIST (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a>(OP, _, LIST) // expands to _abc
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_left_2nd.html b/doc/ref/list_fold_left_2nd.html
new file mode 100644
index 0000000..6278b56
--- /dev/null
+++ b/doc/ref/list_fold_left_2nd.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_LEFT_2ND</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_LEFT_2ND</b> macro folds (or accumulates) the elements of a <i>list</i> left-to-right.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_LEFT_2ND</b>(<i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_LEFT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>0</i>), <i>1</i>), <i>2</i>)
+			</div>
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			Use <b>BOOST_PP_LIST_FOLD_LEFT_<i>d</i></b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a></li>
+			<li><a href="list_fold_left_d.html">BOOST_PP_LIST_FOLD_LEFT_<i>d</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_left.html">&lt;boost/preprocessor/list/fold_left.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_left.hpp</a>&gt;
+
+#define LIST (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_left_2nd.html">BOOST_PP_LIST_FOLD_LEFT_2ND</a>(OP, _, LIST) // expands to _abc
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_left_2nd_d.html b/doc/ref/list_fold_left_2nd_d.html
new file mode 100644
index 0000000..87fc0f0
--- /dev/null
+++ b/doc/ref/list_fold_left_2nd_d.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_LEFT_2ND_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_LEFT_2ND_D</b> macro folds (or accumulates) the elements of a <i>list</i> left-to-right.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_LEFT_2ND_D</b>(<i>d</i>, <i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_LEFT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>0</i>), <i>1</i>), <i>2</i>)
+			</div>
+		</div>
+		<div>
+			This macro has been superceded by <b>BOOST_PP_LIST_FOLD_LEFT_<i>d</i></b> and is deprecated.&nbsp;
+			It only allows a single reentry into <b>BOOST_PP_LIST_FOLD_LEFT</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a></li>
+			<li><a href="list_fold_left_d.html">BOOST_PP_LIST_FOLD_LEFT_<i>d</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_left.html">&lt;boost/preprocessor/list/fold_left.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_left.hpp</a>&gt;
+
+#define L1 (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+#define L2 (L1, (L1, (L1, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) (<a href="list_fold_left_2nd_d.html">BOOST_PP_LIST_FOLD_LEFT_2ND_D</a>(d, OP_2, _, x), state)
+#define OP_2(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, L2)
+/*
+   expands to:
+   (_abc , (_abc , (_abc , <a href="nil.html">BOOST_PP_NIL</a>)))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_left_d.html b/doc/ref/list_fold_left_d.html
new file mode 100644
index 0000000..7347d95
--- /dev/null
+++ b/doc/ref/list_fold_left_d.html
@@ -0,0 +1,81 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_LEFT_d</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_LEFT_<i>d</i></b> macro folds (or accumulates) the elements of a <i>list</i> left-to-right.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_LEFT_</b> ## <i>d</i>(<i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_LEFT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>0</i>), <i>1</i>), <i>2</i>)
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_left.html">&lt;boost/preprocessor/list/fold_left.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_left.hpp</a>&gt;
+
+#define L1 (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+#define L2 (L1, (L1, (L1, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) (<a href="list_fold_left_d.html">BOOST_PP_LIST_FOLD_LEFT_</a> ## d(OP_2, _, x), state)
+#define OP_2(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, L2)
+/*
+   expands to:
+   (_abc, (_abc, (_abc, <a href="nil.html">BOOST_PP_NIL</a>)))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_left_d_old.html b/doc/ref/list_fold_left_d_old.html
new file mode 100644
index 0000000..ea83fd8
--- /dev/null
+++ b/doc/ref/list_fold_left_d_old.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_LEFT_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_LEFT_D</b> macro folds (or accumulates) the elements of a <i>list</i> left-to-right.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_LEFT_D</b>(<i>d</i>, <i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_LEFT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>0</i>), <i>1</i>), <i>2</i>)
+			</div>
+		</div>
+		<div>
+			This macro has been superceded by <b>BOOST_PP_LIST_FOLD_LEFT_<i>d</i></b> and is deprecated.&nbsp;
+			It only allows a single reentry into <b>BOOST_PP_LIST_FOLD_LEFT</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a></li>
+			<li><a href="list_fold_left_d.html">BOOST_PP_LIST_FOLD_LEFT_<i>d</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_left.html">&lt;boost/preprocessor/list/fold_left.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_left.hpp</a>&gt;
+
+#define L1 (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+#define L2 (L1, (L1, (L1, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) (<a href="list_fold_left_d_old.html">BOOST_PP_LIST_FOLD_LEFT_D</a>(d, OP_2, _, x), state)
+#define OP_2(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, L2)
+/*
+   expands to:
+   (_abc, (_abc, (_abc, <a href="nil.html">BOOST_PP_NIL</a>)))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_right.html b/doc/ref/list_fold_right.html
new file mode 100644
index 0000000..bef3463
--- /dev/null
+++ b/doc/ref/list_fold_right.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_RIGHT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_RIGHT</b> macro folds (or accumulates) the elements of a <i>list</i> right-to-left.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_RIGHT</b>(<i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_RIGHT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro does not have the same signature as it previously did.&nbsp;
+			The arguments have been swapped to provide a uniform interface with <b>BOOST_PP_LIST_FOLD_LEFT</b>.
+		</div>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>2</i>), <i>1</i>), <i>0</i>)
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_right_d.html">BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_right.html">&lt;boost/preprocessor/list/fold_right.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+
+#define LIST (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a>(OP, _, LIST) // expands to _cba
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_right_2nd.html b/doc/ref/list_fold_right_2nd.html
new file mode 100644
index 0000000..16588f5
--- /dev/null
+++ b/doc/ref/list_fold_right_2nd.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_RIGHT_2ND</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_RIGHT_2ND</b> macro folds (or accumulates) the elements of a <i>list</i> right-to-left.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_RIGHT_2ND</b>(<i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_RIGHT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro does not have the same signature as it previously did.&nbsp;
+			The arguments have been swapped to provide a uniform interface with <b>BOOST_PP_LIST_FOLD_LEFT</b>.
+		</div>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>0</i>), <i>1</i>), <i>2</i>)
+			</div>
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			Use <b>BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a></li>
+			<li><a href="list_fold_right_d.html">BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_right.html">&lt;boost/preprocessor/list/fold_right.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+
+#define LIST (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_right_2nd.html">BOOST_PP_LIST_FOLD_RIGHT_2ND</a>(OP, _, LIST) // expands to _cba
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_right_2nd_d.html b/doc/ref/list_fold_right_2nd_d.html
new file mode 100644
index 0000000..5aba501
--- /dev/null
+++ b/doc/ref/list_fold_right_2nd_d.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_RIGHT_2ND_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_RIGHT_2ND_D</b> macro folds (or accumulates) the elements of a <i>list</i> right-to-left.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_RIGHT_2ND_D</b>(<i>d</i>, <i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_RIGHT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>0</i>), <i>1</i>), <i>2</i>)
+			</div>
+		</div>
+		<div>
+			This macro has been superceded by <b>BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></b> and is deprecated.&nbsp;
+			It only allows a single reentry into <b>BOOST_PP_LIST_FOLD_RIGHT</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a></li>
+			<li><a href="list_fold_right_d.html">BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_right.html">&lt;boost/preprocessor/list/fold_right.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+
+#define L1 (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+#define L2 (L1, (L1, (L1, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) (<a href="list_fold_right_2nd_d.html">BOOST_PP_LIST_FOLD_RIGHT_2ND_D</a>(d, OP_2, _, x), state)
+#define OP_2(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, L2)
+/*
+   expands to:
+   (_cba , (_cba , (_cba , <a href="nil.html">BOOST_PP_NIL</a>)))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_right_d.html b/doc/ref/list_fold_right_d.html
new file mode 100644
index 0000000..7a580d2
--- /dev/null
+++ b/doc/ref/list_fold_right_d.html
@@ -0,0 +1,81 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_RIGHT_d</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></b> macro folds (or accumulates) the elements of a <i>list</i> right-to-left.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_RIGHT_</b> ## <i>d</i>(<i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_RIGHT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>2</i>), <i>1</i>), <i>0</i>)
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_right.html">&lt;boost/preprocessor/list/fold_right.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+
+#define L1 (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+#define L2 (L1, (L1, (L1, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) (<a href="list_fold_right_d.html">BOOST_PP_LIST_FOLD_RIGHT_</a> ## d(OP_2, _, x), state)
+#define OP_2(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, L2)
+/*
+   expands to:
+   (_cba, (_cba, (_cba, <a href="nil.html">BOOST_PP_NIL</a>)))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_fold_right_d_old.html b/doc/ref/list_fold_right_d_old.html
new file mode 100644
index 0000000..248c023
--- /dev/null
+++ b/doc/ref/list_fold_right_d_old.html
@@ -0,0 +1,90 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOLD_RIGHT_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOLD_RIGHT_D</b> macro folds (or accumulates) the elements of a <i>list</i> right-to-left.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOLD_RIGHT_D</b>(<i>d</i>, <i>op</i>, <i>state</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>d</i>, <i>state</i>, <i>elem</i>).&nbsp;
+				This macro is called for each element in <i>list</i>--each time returning a new <i>state</i>.&nbsp;
+				This operation is expanded by <b>BOOST_PP_LIST_FOLD_RIGHT</b> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be folded.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro does not have the same signature as it previously did.&nbsp;
+			The arguments have been swapped to provide a uniform interface with <b>BOOST_PP_LIST_FOLD_LEFT</b>.
+		</div>
+		<div>
+			For the <i>list</i>, (<i>0</i>, (<i>1</i>, (<i>2</i>, <b>BOOST_PP_NIL</b>))), this macro expands to:
+			<div>
+				<i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>, <i>2</i>), <i>1</i>), <i>0</i>)
+			</div>
+		</div>
+		<div>
+			This macro has been superceded by <b>BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></b> and is deprecated.&nbsp;
+			It only allows a single reentry into <b>BOOST_PP_LIST_FOLD_RIGHT</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a></li>
+			<li><a href="list_fold_right_d.html">BOOST_PP_LIST_FOLD_RIGHT_<i>d</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/fold_right.html">&lt;boost/preprocessor/list/fold_right.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+
+#define L1 (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+#define L2 (L1, (L1, (L1, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) (<a href="list_fold_right_d_old.html">BOOST_PP_LIST_FOLD_RIGHT_D</a>(d, OP_2, _, x), state)
+#define OP_2(d, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, L2)
+/*
+   expands to:
+   (_cba, (_cba, (_cba, <a href="nil.html">BOOST_PP_NIL</a>)))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_for_each.html b/doc/ref/list_for_each.html
new file mode 100644
index 0000000..0dab107
--- /dev/null
+++ b/doc/ref/list_for_each.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOR_EACH</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOR_EACH</b> macro repeats a macro for each element in a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOR_EACH</b>(<i>macro</i>, <i>data</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>macro</dt>
+			<dd>
+				A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_LIST_FOR_EACH</b> with each element in <i>list</i>.&nbsp;
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the auxiliary <i>data</i>, and the current element.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> for which <i>macro</i> will be invoked on each element.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is a repetition construct.&nbsp;
+			If <i>list</i> is (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))), it expands to the sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, <i>data</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>c</i>)
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_FOR</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_FOR_EACH_R</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_for_each_r.html">BOOST_PP_LIST_FOR_EACH_R</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/for_each.html">&lt;boost/preprocessor/list/for_each.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/for_each.html">boost/preprocessor/list/for_each.hpp</a>&gt;
+
+#define LIST (w, (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+#define MACRO(r, data, elem) <a href="cat.html">BOOST_PP_CAT</a>(elem, data)
+
+<a href="list_for_each.html">BOOST_PP_LIST_FOR_EACH</a>(MACRO, _, LIST) // expands to w_ x_ y_ z_
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_for_each_i.html b/doc/ref/list_for_each_i.html
new file mode 100644
index 0000000..6dec45e
--- /dev/null
+++ b/doc/ref/list_for_each_i.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOR_EACH_I</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOR_EACH_I</b> macro repeats a macro for each element in a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOR_EACH_I</b>(<i>macro</i>, <i>data</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>macro</dt>
+			<dd>
+				A macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_LIST_FOR_EACH_I</b> with each element in <i>list</i>.&nbsp;
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the auxiliary <i>data</i>, the index of the current element, and the current element.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> for which <i>macro</i> will be invoked on each element.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is a repetition construct.&nbsp;
+			If <i>list</i> is (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))), it expands to the sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, <i>data</i>, <i>0</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>1</i>, <i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>2</i>, <i>c</i>)
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_FOR</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_FOR_EACH_I_R</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_for_each_i_r.html">BOOST_PP_LIST_FOR_EACH_I_R</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/for_each_i.html">&lt;boost/preprocessor/list/for_each_i.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/for_each_i.html">boost/preprocessor/list/for_each_i.hpp</a>&gt;
+
+#define LIST (w, (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+#define MACRO(r, data, i, elem) <a href="cat.html">BOOST_PP_CAT</a>(elem, <a href="cat.html">BOOST_PP_CAT</a>(data, i))
+
+<a href="list_for_each_i.html">BOOST_PP_LIST_FOR_EACH_I</a>(MACRO, _, LIST) // expands to w_0 x_1 y_2 z_3
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_for_each_i_r.html b/doc/ref/list_for_each_i_r.html
new file mode 100644
index 0000000..5634ff9
--- /dev/null
+++ b/doc/ref/list_for_each_i_r.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOR_EACH_I_R</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOR_EACH_I_R</b> macro repeats a macro for each element in a <i>list</i>.&nbsp;
+		It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOR_EACH_I_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>r</dt>
+			<dd>
+				The next available <b>BOOST_PP_FOR</b> repetition.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A macro of the for <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_LIST_FOR_EACH_I</b> with each element in <i>list</i>.&nbsp;
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the auxiliary <i>data</i>, the index of the current element, and the current element.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> for which <i>macro</i> will be invoked on each element.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is a repetition construct.&nbsp;
+			If <i>list</i> is (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))), it expands to the sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, <i>data</i>, <i>0</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>1</i>, <i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>2</i>, <i>c</i>)
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_for_each_i.html">BOOST_PP_LIST_FOR_EACH_I</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/for_each_i.html">&lt;boost/preprocessor/list/for_each_i.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+#include &lt;<a href="../headers/list/for_each_i.html">boost/preprocessor/list/for_each_i.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/for.html">boost/preprocessor/repetition/for.hpp</a>&gt;
+
+#define LIST (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define MACRO_2(r, data, i, elem) <a href="cat.html">BOOST_PP_CAT</a>(elem, i)
+
+#define PRED(r, state) <a href="list_is_cons.html">BOOST_PP_LIST_IS_CONS</a>(state)
+#define OP(r, state) <a href="list_rest.html">BOOST_PP_LIST_REST</a>(state)
+#define MACRO(r, state) [ <a href="list_for_each_i_r.html">BOOST_PP_LIST_FOR_EACH_I_R</a>(r, MACRO_2, _, state) ]
+
+<a href="for.html">BOOST_PP_FOR</a>(LIST, PRED, OP, MACRO)
+   // expands to [x0 y1 z2] [y0 z1] [z0]
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_for_each_product.html b/doc/ref/list_for_each_product.html
new file mode 100644
index 0000000..0da1f3c
--- /dev/null
+++ b/doc/ref/list_for_each_product.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOR_EACH_PRODUCT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOR_EACH_PRODUCT</b> macro repeats a macro for each cartesian product of several <i>lists</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOR_EACH_PRODUCT</b>(<i>macro</i>, <i>size</i>, <i>tuple</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>macro</dt>
+			<dd>
+				The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian product in <i>tuple</i>.&nbsp;
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition and a <i>tuple</i> containing a cartesian product.&nbsp;
+				This <i>tuple</i> will have <i>size</i> elements.
+			</dd>
+			<dt>size</dt>
+			<dd>
+				The size of <i>tuple</i>.
+			</dd>
+			<dt>tuple</dt>
+			<dd>
+				A <i>tuple</i> of <i>lists</i> from which cartesian products are obtained.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is a repetition construct.&nbsp;
+			If two <i>lists</i> are (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))) and (<i>x</i>, (<i>y</i>, (<i>z</i>, <b>BOOST_PP_NIL</b>))),
+			this macro will produce the following sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, (<i>a</i>, <i>x</i>))
+				<i>macro</i>(<i>r</i>, (<i>a</i>, <i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>a</i>, <i>z</i>))<br>
+				<i>macro</i>(<i>r</i>, (<i>b</i>, <i>x</i>))
+				<i>macro</i>(<i>r</i>, (<i>b</i>, <i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>b</i>, <i>z</i>))<br>
+				<i>macro</i>(<i>r</i>, (<i>c</i>, <i>x</i>))
+				<i>macro</i>(<i>r</i>, (<i>c</i>, <i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>c</i>, <i>z</i>))
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_FOR</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_FOR_EACH_PRODUCT_R</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_for_each_product_r.html">BOOST_PP_LIST_FOR_EACH_PRODUCT_R</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/for_each_product.html">&lt;boost/preprocessor/list/for_each_product.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/for_each_product.html">boost/preprocessor/list/for_each_product.hpp</a>&gt;
+
+#define L1 (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+#define L2 (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define MACRO(r, product) product
+
+<a href="list_for_each_product.html">BOOST_PP_LIST_FOR_EACH_PRODUCT</a>(MACRO, 2, (L1, L2))
+   // expands to (a, x) (a, y) (a, z) (b, x) (b, y) (b, z) (c, x) (c, y) (c, z)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_for_each_product_r.html b/doc/ref/list_for_each_product_r.html
new file mode 100644
index 0000000..be2d57d
--- /dev/null
+++ b/doc/ref/list_for_each_product_r.html
@@ -0,0 +1,118 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOR_EACH_PRODUCT_R</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOR_EACH_PRODUCT_R</b> macro repeats a macro for each cartesian product of several <i>lists</i>.&nbsp;
+		It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOR_EACH_PRODUCT_R</b>(<i>r</i>, <i>macro</i>, <i>size</i>, <i>tuple</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>r</dt>
+			<dd>
+				The next available <b>BOOST_PP_FOR</b> repetition.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian product in <i>tuple</i>.&nbsp;
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition and a <i>tuple</i> containing a cartesian product.&nbsp;
+				This <i>tuple</i> will have <i>size</i> elements.
+			</dd>
+			<dt>size</dt>
+			<dd>
+				The size of <i>tuple</i>.
+			</dd>
+			<dt>tuple</dt>
+			<dd>
+				A <i>tuple</i> of <i>lists</i> from which cartesian products are obtained.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is a repetition construct.&nbsp;
+			If two <i>lists</i> are (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))) and (<i>x</i>, (<i>y</i>, (<i>z</i>, <b>BOOST_PP_NIL</b>))),
+			this macro will produce the following sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, (<i>a</i>, <i>x</i>))
+				<i>macro</i>(<i>r</i>, (<i>a</i>, <i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>a</i>, <i>z</i>))<br>
+				<i>macro</i>(<i>r</i>, (<i>b</i>, <i>x</i>))
+				<i>macro</i>(<i>r</i>, (<i>b</i>, <i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>b</i>, <i>z</i>))<br>
+				<i>macro</i>(<i>r</i>, (<i>c</i>, <i>x</i>))
+				<i>macro</i>(<i>r</i>, (<i>c</i>, <i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>c</i>, <i>z</i>))
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_for_each_product.html">BOOST_PP_LIST_FOR_EACH_PRODUCT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/for_each_product.html">&lt;boost/preprocessor/list/for_each_product.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/list/for_each_product.html">boost/preprocessor/list/for_each_product.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/for.html">boost/preprocessor/repetition/for.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define L1 (a, (b, <a href="nil.html">BOOST_PP_NIL</a>))
+#define L2 (x, (y, <a href="nil.html">BOOST_PP_NIL</a>))
+
+#define PRED(r, state) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, state)
+
+#define OP(r, state) \
+   ( \
+      <a href="dec.html">BOOST_PP_DEC</a>( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, state) \
+      ), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, state) \
+   ) \
+   /**/
+
+#define MACRO(r, state) \
+   MACRO_I( \
+      r, \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, state), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, state) \
+   ) \
+   /**/
+
+#define MACRO_I(r, c, t) \
+   <a href="list_for_each_product_r.html">BOOST_PP_LIST_FOR_EACH_PRODUCT_R</a>( \
+      r, MACRO_P, 2, \
+      ( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, <a href="dec.html">BOOST_PP_DEC</a>(c), t), \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, <a href="dec.html">BOOST_PP_DEC</a>(c), t) \
+      ) \
+   ) \
+   /**/
+
+#define MACRO_P(r, product) product
+
+<a href="for.html">BOOST_PP_FOR</a>((2, (L1, L2)), PRED, OP, MACRO)
+   // expands to (x, x) (x, y) (y, x) (y, y) (a, a) (a, b) (b, a) (b, b)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_for_each_r.html b/doc/ref/list_for_each_r.html
new file mode 100644
index 0000000..39ad951
--- /dev/null
+++ b/doc/ref/list_for_each_r.html
@@ -0,0 +1,81 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_FOR_EACH_R</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_FOR_EACH_R</b> macro repeats a macro for each element in a <i>list</i>.&nbsp;
+		It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_FOR_EACH_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>r</dt>
+			<dd>
+				The next available <b>BOOST_PP_FOR</b> repetition.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_LIST_FOR_EACH</b> with each element in <i>list</i>.&nbsp;
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the auxiliary <i>data</i>, and the current element.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> for which <i>macro</i> will be invoked on each element.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is a repetition construct.&nbsp;
+			If <i>list</i> is (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))), it expands to the sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, <i>data</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>c</i>)
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_for_each.html">BOOST_PP_LIST_FOR_EACH</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/for_each.html">&lt;boost/preprocessor/list/for_each.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+#include &lt;<a href="../headers/list/for_each.html">boost/preprocessor/list/for_each.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/for.html">boost/preprocessor/repetition/for.hpp</a>&gt;
+
+#define LIST (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define MACRO_2(r, data, elem) elem
+
+#define PRED(r, state) <a href="list_is_cons.html">BOOST_PP_LIST_IS_CONS</a>(state)
+#define OP(r, state) <a href="list_rest.html">BOOST_PP_LIST_REST</a>(state)
+#define MACRO(r, state) [ <a href="list_for_each_r.html">BOOST_PP_LIST_FOR_EACH_R</a>(r, MACRO_2, _, state) ]
+
+<a href="for.html">BOOST_PP_FOR</a>(LIST, PRED, OP, MACRO)
+   // expands to [x y z] [y z] [z]
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_is_cons.html b/doc/ref/list_is_cons.html
new file mode 100644
index 0000000..473fc35
--- /dev/null
+++ b/doc/ref/list_is_cons.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_IS_CONS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_IS_CONS</b> macro is a predicate that determines if a <i>list</i> not nil.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_IS_CONS</b>(<i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>list</dt>
+			<dd>
+				A <i>list</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>list</i> is non-nil, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/adt.html">&lt;boost/preprocessor/list/adt.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+
+#define LIST (a, <a href="nil.html">BOOST_PP_NIL</a>)
+
+<a href="list_is_cons.html">BOOST_PP_LIST_IS_CONS</a>(LIST) // expands to 1
+<a href="list_is_cons.html">BOOST_PP_LIST_IS_CONS</a>(<a href="list_rest.html">BOOST_PP_LIST_REST</a>(LIST)) // expands to 0
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_is_nil.html b/doc/ref/list_is_nil.html
new file mode 100644
index 0000000..30eaf5f
--- /dev/null
+++ b/doc/ref/list_is_nil.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_IS_NIL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_IS_NIL</b> macro is a predicate that determines if a <i>list</i> is nil.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_IS_NIL</b>(<i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>list</dt>
+			<dd>
+				A <i>list</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>list</i> is nil, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/adt.html">&lt;boost/preprocessor/list/adt.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+
+#define LIST (a, <a href="nil.html">BOOST_PP_NIL</a>)
+
+<a href="list_is_nil.html">BOOST_PP_LIST_IS_NIL</a>(LIST) // expands to 0
+<a href="list_is_nil.html">BOOST_PP_LIST_IS_NIL</a>(<a href="list_rest.html">BOOST_PP_LIST_REST</a>(LIST)) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_nil.html b/doc/ref/list_nil.html
new file mode 100644
index 0000000..ec37bb9
--- /dev/null
+++ b/doc/ref/list_nil.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_NIL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_NIL</b> macro is a nil <i>list</i> constructor.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_NIL</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro represents the end of a <i>list</i>.
+		</div>
+		<div>
+			This macro is no longer necessary.&nbsp;
+			It simply expands to <b>BOOST_PP_NIL</b>.&nbsp;
+			Because of this, this macro is deprecated.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="nil.html">BOOST_PP_NIL</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/adt.html">&lt;boost/preprocessor/list/adt.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+
+#define OLD \
+   <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+      a, \
+      <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+         b, \
+         <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+            c, \
+            <a href="list_nil.html">BOOST_PP_LIST_NIL</a> \
+         ) \
+      ) \
+   ) \
+   /**/
+
+#define NEW (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+<a href="list_first.html">BOOST_PP_LIST_FIRST</a>(OLD) == <a href="list_first.html">BOOST_PP_LIST_FIRST</a>(NEW)
+   // expands to a == a
+
+<a href="list_rest.html">BOOST_PP_LIST_REST</a>(OLD) == <a href="list_rest.html">BOOST_PP_LIST_RESTK</a>(NEW)
+   // expands to (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)) == (b, (c, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_rest.html b/doc/ref/list_rest.html
new file mode 100644
index 0000000..11544c4
--- /dev/null
+++ b/doc/ref/list_rest.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_REST</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_REST</b> macro expands to the tail of a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_REST</b>(<i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>list</dt>
+			<dd>
+				A non-nil <i>list</i>.
+			</dd>
+		</dl>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/adt.html">&lt;boost/preprocessor/list/adt.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+
+#define OLD \
+   <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+      a, \
+      <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+         b, \
+         <a href="list_cons.html">BOOST_PP_LIST_CONS</a>( \
+            c, \
+            <a href="list_nil.html">BOOST_PP_LIST_NIL</a> \
+         ) \
+      ) \
+   ) \
+   /**/
+
+#define NEW (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+<a href="list_first.html">BOOST_PP_LIST_FIRST</a>(OLD) == <a href="list_first.html">BOOST_PP_LIST_FIRST</a>(NEW)
+   // expands to a == a
+
+<a href="list_rest.html">BOOST_PP_LIST_REST</a>(OLD) == <a href="list_rest.html">BOOST_PP_LIST_REST</a>(NEW)
+   // expands to (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)) == (b, (c, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_rest_n.html b/doc/ref/list_rest_n.html
new file mode 100644
index 0000000..eeb7fb8
--- /dev/null
+++ b/doc/ref/list_rest_n.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_REST_N</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_REST_N</b> macro expands to a <i>list</i> of all but the first <i>count</i> elements of a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_REST_N</b>(<i>count</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of elements to remove from the beginning of <i>list</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> from which the elements are extracted.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro removes <i>count</i> elements from the beginning of <i>list</i> and returns the remainder as a <i>list</i>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_REST_N_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_rest_n_d.html">BOOST_PP_LIST_REST_N_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/rest_n.html">&lt;boost/preprocessor/list/rest_n.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/rest_n.html">boost/preprocessor/list/rest_n.hpp</a>&gt;
+
+#define LIST (a, (b, (c, (d, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+<a href="list_rest_n.html">BOOST_PP_LIST_REST_N</a>(2, LIST) // expands to (c, (d, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_rest_n_d.html b/doc/ref/list_rest_n_d.html
new file mode 100644
index 0000000..4399a90
--- /dev/null
+++ b/doc/ref/list_rest_n_d.html
@@ -0,0 +1,71 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_REST_N_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_REST_N_D</b> macro expands to a <i>list</i> of all but the first <i>count</i> elements of a <i>list</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_REST_N_D</b>(<i>d</i>, <i>count</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>count</dt>
+			<dd>
+				The number of elements to remove from the beginning of <i>list</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> from which the elements are extracted.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro removes <i>count</i> elements from the beginning of <i>list</i> and returns the remainder as a <i>list</i>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_rest_n.html">BOOST_PP_LIST_REST_N</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/rest_n.html">&lt;boost/preprocessor/list/rest_n.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+#include &lt;<a href="../headers/list/rest_n.html">boost/preprocessor/list/rest_n.hpp</a>&gt;
+
+#define L1 (a, (b, (c, (d, <a href="nil.html">BOOST_PP_NIL</a>))))
+#define L2 (L1, (L1, (L1, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) (<a href="list_rest_n_d.html">BOOST_PP_LIST_REST_N_D</a>(d, 2, x), state)
+
+<a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, L2)
+/*
+   expands to...
+   ((c, (d, <a href="nil.html">BOOST_PP_NIL</a>)), ((c, (d, <a href="nil.html">BOOST_PP_NIL</a>)),
+   ((c, (d, <a href="nil.html">BOOST_PP_NIL</a>)), <a href="nil.html">BOOST_PP_NIL</a>)))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_reverse.html b/doc/ref/list_reverse.html
new file mode 100644
index 0000000..711d6e0
--- /dev/null
+++ b/doc/ref/list_reverse.html
@@ -0,0 +1,55 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_REVERSE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_REVERSE</b> macro expands to the reverse a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_REVERSE</b>(<i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>list</dt>
+			<dd>
+				A <i>list</i> to be reversed.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_REVERSE_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_reverse_d.html">BOOST_PP_LIST_REVERSE_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/reverse.html">&lt;boost/preprocessor/list/reverse.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/reverse.html">boost/preprocessor/list/reverse.hpp</a>&gt;
+
+#define LIST (0, (1, (2, (3, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+<a href="list_reverse.html">BOOST_PP_LIST_REVERSE</a>(LIST) // expands to (3, (2, (1, (0, <a href="nil.html">BOOST_PP_NIL</a>))))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_reverse_d.html b/doc/ref/list_reverse_d.html
new file mode 100644
index 0000000..37cbda5
--- /dev/null
+++ b/doc/ref/list_reverse_d.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_REVERSE_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_REVERSE_D</b> macro expands to the reverse a <i>list</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_REVERSE_D</b>(<i>d</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				A <i>list</i> to be reversed.
+			</dd>
+		</dl>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_reverse.html">BOOST_PP_LIST_REVERSE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/reverse.html">&lt;boost/preprocessor/list/reverse.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+#include &lt;<a href="../headers/list/reverse.html">boost/preprocessor/list/reverse.hpp</a>&gt;
+
+#define L1 (a, (b, (c, (d, <a href="nil.html">BOOST_PP_NIL</a>))))
+#define L2 (L1, (L1, (L1, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) (<a href="list_reverse_d.html">BOOST_PP_LIST_REVERSE_D</a>(d, x), state)
+
+<a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, L2)
+/*
+   expands to...
+   ((d, (c, (b, (a, <a href="nil.html">BOOST_PP_NIL</a>)))), ((d, (c, (b, (a, <a href="nil.html">BOOST_PP_NIL</a>)))),
+   ((d, (c, (b, (a, <a href="nil.html">BOOST_PP_NIL</a>)))), <a href="nil.html">BOOST_PP_NIL</a>)))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_size.html b/doc/ref/list_size.html
new file mode 100644
index 0000000..df947be
--- /dev/null
+++ b/doc/ref/list_size.html
@@ -0,0 +1,55 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_SIZE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_SIZE</b> macro expands to the size of a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_SIZE</b>(<i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>list</dt>
+			<dd>
+				A <i>list</i> whose size is to be calculated.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_SIZE_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_size_d.html">BOOST_PP_LIST_SIZE_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/size.html">&lt;boost/preprocessor/list/size.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/size.html">boost/preprocessor/list/size.hpp</a>&gt;
+
+#define LIST (0, (1, (2, (3, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+<a href="list_size.html">BOOST_PP_LIST_SIZE</a>(LIST) // expands to 4
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_size_d.html b/doc/ref/list_size_d.html
new file mode 100644
index 0000000..4f8ca01f
--- /dev/null
+++ b/doc/ref/list_size_d.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_SIZE_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_SIZE_D</b> macro expands to the size of a <i>list</i>.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_SIZE_D</b>(<i>d</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				A <i>list</i> whose size is to be calculated.
+			</dd>
+		</dl>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_size.html">BOOST_PP_LIST_SIZE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/size.html">&lt;boost/preprocessor/list/size.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_left.hpp</a>&gt;
+#include &lt;<a href="../headers/list/size.html">boost/preprocessor/list/size.hpp</a>&gt;
+
+#define L1 (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))
+#define L2 (x, (y, <a href="nil.html">BOOST_PP_NIL</a>))
+#define L3 (p, (q, <a href="nil.html">BOOST_PP_NIL</a>))
+
+#define LIST (L1, (L2, (L3, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define OP(d, state, x) \
+   <a href="add_d.html">BOOST_PP_ADD_D</a>( \
+      d, state, \
+      <a href="list_size_d.html">BOOST_PP_LIST_SIZE_D</a>(d, x) \
+   ) \
+   /**/
+
+<a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a>(OP, 0, LIST) // expands to 7
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_to_array.html b/doc/ref/list_to_array.html
new file mode 100644
index 0000000..46154c9
--- /dev/null
+++ b/doc/ref/list_to_array.html
@@ -0,0 +1,47 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_LIST_TO_ARRAY</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_ARRAY</b> macro
+      converts a <i>list</i> to an <i>array</i>. </div>
+    <h4> Usage </h4>
+    <div class="code"> <b>BOOST_PP_LIST_TO_ARRAY</b>(<i>list</i>) </div>
+    <h4> Arguments </h4>
+    <dl>
+      <dt>list</dt>
+      <dd> The <i>list</i> to be converted. <br>
+      </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro uses <b>BOOST_PP_WHILE</b>. Within <b>BOOST_PP_WHILE</b>,
+      it is more efficient to use <b>BOOST_PP_LIST_TO_ARRAY_D</b>.<br>
+      <br>
+      If the <i>list</i> to be converted is empty, as represented by
+      'BOOST_PP_NIL', the resulting <i>array</i> is empty, as represented by '( 0, ()
+      )'.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY_D</a></li>
+    </ul>
+    <h4> Requirements </h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/list/to_array.html">&lt;boost/preprocessor/list/to_array.hpp&gt;</a>
+    </div>
+    <h4> Sample Code </h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/list/to_array.html">boost/preprocessor/list/to_array.hpp</a>&gt;<br><br>#define LIST (a, (b, (c, <a
+
+href="nil.html">BOOST_PP_NIL</a>)))<br><br><a href="list_to_array.html">BOOST_PP_LIST_TO_ARRAY</a>(LIST) // expands to (3, (a, b, c))</pre>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i>
+    </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/list_to_array_d.html b/doc/ref/list_to_array_d.html
new file mode 100644
index 0000000..835d9e2
--- /dev/null
+++ b/doc/ref/list_to_array_d.html
@@ -0,0 +1,34 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_LIST_TO_ARRAY_D</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_ARRAY_D</b> macro
+      converts a <i>list</i> to an <i>array</i>. It reenters <b>BOOST_PP_WHILE</b>
+      with maximum efficiency. </div>
+    <h4> Usage </h4>
+    <div class="code"> <b>BOOST_PP_LIST_TO_ARRAY_D</b>(<i>d</i>, <i>list</i>)
+    </div>
+    <h4> Arguments </h4>
+    <dl>
+      <dt>d</dt>
+      <dd>The next available <b>BOOST_PP_WHILE</b> iteration.</dd>
+      <dt>list</dt>
+      <dd> The <i>list</i> to be converted. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <p>&nbsp;&nbsp;&nbsp; If the <i>list</i> to be converted is empty, as
+      represented by 'BOOST_PP_NIL', the resulting <i>array</i> is empty, as
+      represented by '( 0, () )'. </p>
+    <h4>See Also</h4>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY</a></li>
+    </ul>
+    <h4> Requirements </h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/list/to_array.html">&lt;boost/preprocessor/list/to_array.hpp&gt;</a>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/list_to_seq.html b/doc/ref/list_to_seq.html
new file mode 100644
index 0000000..3efc7e1
--- /dev/null
+++ b/doc/ref/list_to_seq.html
@@ -0,0 +1,44 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_LIST_TO_SEQ</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_SEQ</b> macro
+      converts a <i>list</i> to a <i>seq</i>. </div>
+    <h4> Usage </h4>
+    <div class="code"> <b>BOOST_PP_LIST_TO_SEQ</b>(<i>list</i>) </div>
+    <h4> Arguments </h4>
+    <dl>
+      <dt>list</dt>
+      <dd> The <i>list</i> to be converted. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro uses <b>BOOST_PP_FOR</b>. Within <b>BOOST_PP_FOR</b>, it
+      is more efficient to use <b>BOOST_PP_LIST_TO_SEQ_R</b>.<br>
+      <br>
+      If the <i>list</i> to be converted is empty, as represented by
+      'BOOST_PP_NIL', the resulting <i>seq</i> is undefined since a <i>seq</i>
+      cannot be empty.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ_R</a></li>
+    </ul>
+    <h4> Requirements </h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/list/to_seq.html">&lt;boost/preprocessor/list/to_seq.hpp&gt;</a>
+    </div>
+    <h4> Sample Code </h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/list/to_seq.html">boost/preprocessor/list/to_seq.hpp</a>&gt;<br><br><a
+href="list_to_seq.html">BOOST_PP_LIST_TO_SEQ</a>((a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))) // expands to (a)(b)(c)</pre>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2011</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/list_to_seq_r.html b/doc/ref/list_to_seq_r.html
new file mode 100644
index 0000000..cc7a854
--- /dev/null
+++ b/doc/ref/list_to_seq_r.html
@@ -0,0 +1,32 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_LIST_TO_SEQ_R</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_SEQ_R</b> macro
+      converts a <i>list</i> to a <i>seq</i>. It reenters <b>BOOST_PP_FOR</b>
+      with maximum efficiency. </div>
+    <h4> Usage </h4>
+    <div class="code"> <b>BOOST_PP_LIST_TO_SEQ_R</b>(<i>r</i>, <i>list</i>) </div>
+    <h4> Arguments </h4>
+    <dl>
+      <dt>d</dt>
+      <dd>The next available <b>BOOST_PP_FOR</b> repetition.</dd>
+      <dt>list</dt>
+      <dd> The <i>list</i> to be converted.</dd>
+    </dl>
+    <h4>Remarks</h4>
+    <p>&nbsp;&nbsp;&nbsp; If the <i>list</i> to be converted is empty, as
+      represented by 'BOOST_PP_NIL', the resulting <i>seq</i> is undefined
+      since a <i>seq</i> cannot be empty.</p>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ</a></li>
+    </ul>
+    <h4> Requirements </h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/list/to_seq.html">&lt;boost/preprocessor/list/to_seq.hpp&gt;</a>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/list_to_tuple.html b/doc/ref/list_to_tuple.html
new file mode 100644
index 0000000..d022c2b
--- /dev/null
+++ b/doc/ref/list_to_tuple.html
@@ -0,0 +1,55 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_LIST_TO_TUPLE</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_LIST_TO_TUPLE</b> macro
+      converts a <i>list</i> to a <i>tuple</i>. </div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_LIST_TO_TUPLE</b>(<i>list</i>) </div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>list</dt>
+      <dd> The <i>list</i> to be converted. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
+      this macro will produce:
+      <div> (<i>a</i>, <i>b</i>, <i>c</i>) </div>
+    </div>
+    <div> Previously, this macro could not be used inside <b>BOOST_PP_FOR</b>.&nbsp;
+      There is no longer any such restriction.&nbsp; It is more efficient,
+      however, to use <b>BOOST_PP_LIST_TO_TUPLE_R</b> in such a situation.<br>
+      <br>
+      If the <i>list</i> to be converted is empty, as represented by 'BOOST_PP_NIL',
+      the resulting <i>tuple</i> is undefined since a <i>tuple</i> cannot be
+      empty.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="list_to_tuple_r.html">BOOST_PP_LIST_TO_TUPLE_R</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/list/to_tuple.html">&lt;boost/preprocessor/list/to_tuple.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/list/to_tuple.html">boost/preprocessor/list/to_tuple.hpp</a>&gt;
+
+#define LIST (w, (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+<a href="list_to_tuple.html">BOOST_PP_LIST_TO_TUPLE</a>(LIST) // expands to (w, x, y, z)
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/list_to_tuple_r.html b/doc/ref/list_to_tuple_r.html
new file mode 100644
index 0000000..0227d38
--- /dev/null
+++ b/doc/ref/list_to_tuple_r.html
@@ -0,0 +1,62 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_LIST_TO_TUPLE_R</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_LIST_TO_TUPLE_R</b> macro
+      converts a <i>list</i> to a <i>tuple</i>.&nbsp; It reenters <b>BOOST_PP_FOR</b>
+      with maximum efficiency. </div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_LIST_TO_TUPLE_R</b>(<i>r</i>, <i>list</i>)
+    </div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>r</dt>
+      <dd> The next available <b>BOOST_PP_FOR</b> repetition. </dd>
+      <dt>list</dt>
+      <dd> The <i>list</i> to be converted. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <p>&nbsp;&nbsp; If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>,
+      <b>BOOST_PP_NIL</b>))), this macro will produce: </p>
+    <div>
+      <div> (<i>a</i>, <i>b</i>, <i>c</i>)&nbsp;&nbsp; </div>
+    </div>
+    <h4><span style="font-weight: normal;">&nbsp;&nbsp; If the <i>list</i> to
+        be converted is empty, as represented by 'BOOST_PP_NIL', the resulting <i>tuple</i>
+        is undefined since a <i>tuple</i> cannot be empty. </span></h4>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="list_to_tuple.html">BOOST_PP_LIST_TO_TUPLE</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/list/to_tuple.html">&lt;boost/preprocessor/list/to_tuple.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+#include &lt;<a href="../headers/list/to_tuple.html">boost/preprocessor/list/to_tuple.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/for.html">boost/preprocessor/repetition/for.hpp</a>&gt;
+
+#define LIST (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+#define PRED(r, state) <a href="list_is_cons.html">BOOST_PP_LIST_IS_CONS</a>(state)
+#define OP(r, state) <a href="list_rest.html">BOOST_PP_LIST_REST</a>(state)
+#define MACRO(r, state) <a href="list_to_tuple_r.html">BOOST_PP_LIST_TO_TUPLE_R</a>(r, state)
+
+<a href="for.html">BOOST_PP_FOR</a>(LIST, PRED, OP, MACRO)
+   // expands to (x, y, z) (y, z) (z)
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/list_transform.html b/doc/ref/list_transform.html
new file mode 100644
index 0000000..88c23d5
--- /dev/null
+++ b/doc/ref/list_transform.html
@@ -0,0 +1,78 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_TRANSFORM</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_TRANSFORM</b> macro transforms each element in a <i>list</i> according to a supplied transformation.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_TRANSFORM</b>(<i>op</i>, <i>data</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>op</dt>
+			<dd>
+				A ternary predicate of the form <i>op</i>(<i>d</i>, <i>data</i>, <i>elem</i>).&nbsp;
+				This transformation is expanded by <b>BOOST_PP_LIST_TRANSFORM</b> for each element in <i>list</i> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the auxiliary <i>data</i>, and the current element in <i>list</i>.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>pred</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be transformed.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands <i>op</i> for each element in <i>list</i>.&nbsp;
+			It builds a new <i>list</i> out of the results of each call.&nbsp;
+			If, for example, <i>list</i> is (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
+			this macro expands to...
+			<div>
+				(<i>op</i>(<i>d</i>, <i>data</i>, <i>a</i>), (<i>op</i>(<i>d</i>, <i>data</i>, <i>b</i>), (<i>op</i>(<i>d</i>, <i>data</i>, <i>c</i>), <b>BOOST_PP_NIL</b>)))
+			</div>
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_LIST_TRANSFORM_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_transform_d.html">BOOST_PP_LIST_TRANSFORM_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/transform.html">&lt;boost/preprocessor/list/transform.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/list/transform.html">boost/preprocessor/list/transform.hpp</a>&gt;
+
+#define LIST (1, (3, (2, (5, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+#define OP(d, data, elem) <a href="dec.html">BOOST_PP_DEC</a>(elem)
+
+<a href="list_transform.html">BOOST_PP_LIST_TRANSFORM</a>(OP, 3, LIST)
+   // expands to (0, (2, (1, (4, <a href="nil.html">BOOST_PP_NIL</a>))))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/list_transform_d.html b/doc/ref/list_transform_d.html
new file mode 100644
index 0000000..2c1f9f7
--- /dev/null
+++ b/doc/ref/list_transform_d.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+	<title>BOOST_PP_LIST_TRANSFORM_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LIST_TRANSFORM_D</b> macro transforms each element in a <i>list</i> according to a supplied transformation.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LIST_TRANSFORM_D</b>(<i>d</i>, <i>op</i>, <i>data</i>, <i>list</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary predicate of the form <i>op</i>(<i>d</i>, <i>data</i>, <i>elem</i>).&nbsp;
+				This transformation is expanded by <b>BOOST_PP_LIST_TRANSFORM</b> for each element in <i>list</i> with the next available <b>BOOST_PP_WHILE</b> iteration,
+				the auxiliary <i>data</i>, and the current element in <i>list</i>.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>pred</i>.
+			</dd>
+			<dt>list</dt>
+			<dd>
+				The <i>list</i> to be transformed.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands <i>op</i> for each element in <i>list</i>.&nbsp;
+			It builds a new <i>list</i> out of the results of each call.&nbsp;
+			If, for example, <i>list</i> is (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
+			this macro expands to...
+			<div>
+				(<i>op</i>(<i>d</i>, <i>data</i>, <i>a</i>), (<i>op</i>(<i>d</i>, <i>data</i>, <i>b</i>), (<i>op</i>(<i>d</i>, <i>data</i>, <i>c</i>), <b>BOOST_PP_NIL</b>)))
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="list_transform.html">BOOST_PP_LIST_TRANSFORM</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/list/transform.html">&lt;boost/preprocessor/list/transform.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+#include &lt;<a href="../headers/list/fold_right.html">boost/preprocessor/list/fold_right.hpp</a>&gt;
+#include &lt;<a href="../headers/list/transform.html">boost/preprocessor/list/transform.hpp</a>&gt;
+
+#define A (1, (2, (3, (4, <a href="nil.html">BOOST_PP_NIL</a>))))
+#define B (A, (A, (A, (A, <a href="nil.html">BOOST_PP_NIL</a>))))
+
+#define OP_T(d, data, x) <a href="inc.html">BOOST_PP_INC</a>(x)
+#define OP(d, state, x) (<a href="list_transform_d.html">BOOST_PP_LIST_TRANSFORM_D</a>(d, OP_T, 2, x), state)
+
+<a href="list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a>(OP, <a href="nil.html">BOOST_PP_NIL</a>, B)
+/*
+   expands to:
+   ((2, (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))), ((2, (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))),
+   ((2, (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))), ((2, (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))),
+   <a href="nil.html">BOOST_PP_NIL</a>))))
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/local_iterate.html b/doc/ref/local_iterate.html
new file mode 100644
index 0000000..d9c2d0e
--- /dev/null
+++ b/doc/ref/local_iterate.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+	<title>BOOST_PP_LOCAL_ITERATE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LOCAL_ITERATE</b> macro initiates a <i>local-iteration</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>BOOST_PP_LOCAL_ITERATE</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This macro causes the user-defined macro <b>BOOST_PP_LOCAL_MACRO</b> to be expanded vertically with values in the range specified by <b>BOOST_PP_LOCAL_LIMITS</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="local_limits.html">BOOST_PP_LOCAL_LIMITS</a></li>
+			<li><a href="local_macro.html">BOOST_PP_LOCAL_MACRO</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/local.html">&lt;boost/preprocessor/iteration/local.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/iteration/local.html">boost/preprocessor/iteration/local.hpp</a>&gt;
+
+template&lt;int&gt; struct sample;
+
+#define <a href="local_macro.html">BOOST_PP_LOCAL_MACRO</a>(n) \
+   template&lt;&gt; struct sample&lt;n&gt; { \
+      enum { value = n }; \
+   }; \
+   /**/
+
+#define <a href="local_limits.html">BOOST_PP_LOCAL_LIMITS</a> (1, 5)
+
+#include <a href="local_iterate.html">BOOST_PP_LOCAL_ITERATE</a>()
+/* expands to...
+template&lt;&gt; struct sample&lt;1&gt; { enum { value = 1 }; };
+template&lt;&gt; struct sample&lt;2&gt; { enum { value = 2 }; };
+template&lt;&gt; struct sample&lt;3&gt; { enum { value = 3 }; };
+template&lt;&gt; struct sample&lt;4&gt; { enum { value = 4 }; };
+template&lt;&gt; struct sample&lt;5&gt; { enum { value = 5 }; };
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/local_limits.html b/doc/ref/local_limits.html
new file mode 100644
index 0000000..c9067fa
--- /dev/null
+++ b/doc/ref/local_limits.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+	<title>BOOST_PP_LOCAL_LIMITS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LOCAL_LIMITS</b> macro is a user-defined <i>named external argument</i> used by <b>BOOST_PP_LOCAL_ITERATE</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#define <b>BOOST_PP_LOCAL_LIMITS</b> (<i>start</i>, <i>finish</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>start</dt>
+			<dd>
+				The lower bound (inclusive) of a <i>local iteration</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>.
+			</dd>
+			<dt>finish</dt>
+			<dd>
+				The upper bound (inclusive) of a <i>local iteration</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Note that there is a whitespace character after the macro identifier.
+		</div>
+		<div>
+			This macro must expand to a <i>2</i>-element <i>tuple</i>.&nbsp;
+			The elements of this <i>tuple</i> represent the lower and upper boundaries of a <i>local iteration</i>.&nbsp;
+			Both <i>start</i> and <i>finish</i> are <i>evaluated parameters</i>.&nbsp;
+			This implies that they can include simple arithmetic expressions (such as <i>1</i> + <i>3</i>), etc..
+		</div>
+		<div>
+			This macro is automatically undefined for reuse by a call to <b>BOOST_PP_LOCAL_ITERATE</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_iteration.html">BOOST_PP_LIMIT_ITERATION</a></li>
+			<li><a href="local_iterate.html">BOOST_PP_LOCAL_ITERATE</a></li>
+		</ul>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/iteration/local.html">boost/preprocessor/iteration/local.hpp</a>&gt;
+
+template&lt;int&gt; struct sample;
+
+#define <a href="local_macro.html">BOOST_PP_LOCAL_MACRO</a>(n) \
+   template&lt;&gt; struct sample&lt;n&gt; { \
+      enum { value = n }; \
+   }; \
+   /**/
+
+#define <a href="local_limits.html">BOOST_PP_LOCAL_LIMITS</a> (1, 5)
+
+#include <a href="local_iterate.html">BOOST_PP_LOCAL_ITERATE</a>()
+/* expands to...
+template&lt;&gt; struct sample&lt;1&gt; { enum { value = 1 }; };
+template&lt;&gt; struct sample&lt;2&gt; { enum { value = 2 }; };
+template&lt;&gt; struct sample&lt;3&gt; { enum { value = 3 }; };
+template&lt;&gt; struct sample&lt;4&gt; { enum { value = 4 }; };
+template&lt;&gt; struct sample&lt;5&gt; { enum { value = 5 }; };
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/local_macro.html b/doc/ref/local_macro.html
new file mode 100644
index 0000000..b0f00f0
--- /dev/null
+++ b/doc/ref/local_macro.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_LOCAL_MACRO</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LOCAL_MACRO</b> macro is a user-defined <i>named external argument</i> used by <b>BOOST_PP_LOCAL_ITERATE</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#define <b>BOOST_PP_LOCAL_MACRO</b>(<i>n</i>) ...
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>n</dt>
+			<dd>
+				The current iteration value received from the <i>local-iteration</i> mechanism.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is automatically undefined for reuse by a call to <b>BOOST_PP_LOCAL_ITERATE</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="local_iterate.html">BOOST_PP_LOCAL_ITERATE</a></li>
+		</ul>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/iteration/local.html">boost/preprocessor/iteration/local.hpp</a>&gt;
+
+template&lt;int&gt; struct sample;
+
+#define <a href="local_macro.html">BOOST_PP_LOCAL_MACRO</a>(n) \
+   template&lt;&gt; struct sample&lt;n&gt; { \
+      enum { value = n }; \
+   }; \
+   /**/
+
+#define <a href="local_limits.html">BOOST_PP_LOCAL_LIMITS</a> (1, 5)
+
+#include <a href="local_iterate.html">BOOST_PP_LOCAL_ITERATE</a>()
+/* expands to...
+template&lt;&gt; struct sample&lt;1&gt; { enum { value = 1 }; };
+template&lt;&gt; struct sample&lt;2&gt; { enum { value = 2 }; };
+template&lt;&gt; struct sample&lt;3&gt; { enum { value = 3 }; };
+template&lt;&gt; struct sample&lt;4&gt; { enum { value = 4 }; };
+template&lt;&gt; struct sample&lt;5&gt; { enum { value = 5 }; };
+*/
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/lparen.html b/doc/ref/lparen.html
new file mode 100644
index 0000000..af5c7e6
--- /dev/null
+++ b/doc/ref/lparen.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+	<title>BOOST_PP_LPAREN</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LPAREN</b> macro expands to a left parenthesis.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LPAREN</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			The preprocessor interprets parentheses as delimiters in macro invocations.&nbsp;
+			Because of this, parentheses require special handling.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="rparen.html">BOOST_PP_RPAREN</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/punctuation/paren.html">&lt;boost/preprocessor/punctuation/paren.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/punctuation/paren.html">boost/preprocessor/punctuation/paren.hpp</a>&gt;
+
+#define X(x) x
+#define MACRO(p, x) X p x )
+
+MACRO(<a href="lparen.html">BOOST_PP_LPAREN</a>(), abc) // expands to abc
+
+#define Y(x)
+
+MACRO((10) Y <a href="lparen.html">BOOST_PP_LPAREN</a>(), result) // expands to 10
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/lparen_if.html b/doc/ref/lparen_if.html
new file mode 100644
index 0000000..0ef3254
--- /dev/null
+++ b/doc/ref/lparen_if.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+	<title>BOOST_PP_LPAREN_IF</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_LPAREN_IF</b> macro conditionally expands to a left parenthesis.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_LPAREN_IF</b>(<i>cond</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>cond</dt>
+			<dd>
+				The condition that determines if a the macro expands to a left parenthesis or nothing.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>cond</i> expands to <i>0</i>, this macro expands to nothing.&nbsp;
+			Otherwise, it expands to a left parenthesis.
+		</div>
+		<div>
+			The preprocessor interprets parentheses as delimiters in macro invocations.&nbsp;
+			Because of this, parentheses require special handling.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="rparen_if.html">BOOST_PP_RPAREN_IF</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/punctuation/paren_if.html">&lt;boost/preprocessor/punctuation/paren_if.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/punctuation/paren_if.html">boost/preprocessor/punctuation/paren_if.hpp</a>&gt;
+
+#define MACRO(c, x) <a href="lparen_if.html">BOOST_PP_LPAREN_IF</a>(c) x <a href="rparen_if.html">BOOST_PP_RPAREN_IF</a>(c)
+
+MACRO(0, text) // expands to text
+MACRO(1, text) // expands to (text)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/max.html b/doc/ref/max.html
new file mode 100644
index 0000000..0d76c0d
--- /dev/null
+++ b/doc/ref/max.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_MAX</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_MAX</b> macro expands to the greater of its two arguments.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_MAX</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The first operand.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The second operand.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro returns the greater of its two arguments or the value of both arguments if they are equal.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_MAX_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="max_d.html">BOOST_PP_MAX_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/selection/max.html">&lt;boost/preprocessor/selection/max.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/selection/max.html">boost/preprocessor/selection/max.hpp</a>&gt;
+
+<a href="max.html">BOOST_PP_MAX</a>(5, 7) // expands to 7
+<a href="max.html">BOOST_PP_MAX</a>(3, 3) // expands to 3
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/max_d.html b/doc/ref/max_d.html
new file mode 100644
index 0000000..d29fe55
--- /dev/null
+++ b/doc/ref/max_d.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+	<title>BOOST_PP_MAX_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_MAX_D</b> macro expands to the greater of its second and third arguments.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_MAX_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The first operand.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The second operand.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro returns the greater of its first and second arguments or the value of both arguments if they are equal.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="max.html">BOOST_PP_MAX</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/selection/max.html">&lt;boost/preprocessor/selection/max.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_left.hpp</a>&gt;
+#include &lt;<a href="../headers/selection/max.html">boost/preprocessor/selection/max.hpp</a>&gt;
+
+#define LIST (1, (3, (5, (2, (4, <a href="nil.html">BOOST_PP_NIL</a>)))))
+
+#define OP(d, state, x) <a href="max_d.html">BOOST_PP_MAX_D</a>(d, state, x)
+
+#define LIST_MAX(list) <a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a>(OP, 0, LIST)
+
+LIST_MAX(LIST) // expands to 5
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/min.html b/doc/ref/min.html
new file mode 100644
index 0000000..8b54abf
--- /dev/null
+++ b/doc/ref/min.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_MIN</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_MIN</b> macro expands to the lesser of its two arguments.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_MIN</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The first operand.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The second operand.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro returns the lesser of its two arguments or the value of both arguments if they are equal.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_MIN_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="min_d.html">BOOST_PP_MIN_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/selection/min.html">&lt;boost/preprocessor/selection/min.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/selection/min.html">boost/preprocessor/selection/min.hpp</a>&gt;
+
+<a href="min.html">BOOST_PP_MIN</a>(5, 7) // expands to 5
+<a href="min.html">BOOST_PP_MIN</a>(3, 3) // expands to 3
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/min_d.html b/doc/ref/min_d.html
new file mode 100644
index 0000000..bccf83b
--- /dev/null
+++ b/doc/ref/min_d.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+	<title>BOOST_PP_MIN_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_MIN_D</b> macro expands to the lesser of its second and third arguments.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_MIN_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The first operand.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The second operand.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro returns the lesser of its first and second arguments or the value of both arguments if they are equal.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="min.html">BOOST_PP_MIN</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/selection/min.html">&lt;boost/preprocessor/selection/min.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/fold_left.html">boost/preprocessor/list/fold_left.hpp</a>&gt;
+#include &lt;<a href="../headers/selection/min.html">boost/preprocessor/selection/min.hpp</a>&gt;
+
+#define LIST (1, (3, (5, (2, (4, <a href="nil.html">BOOST_PP_NIL</a>)))))
+
+#define OP(d, state, x) <a href="min_d.html">BOOST_PP_MIN_D</a>(d, state, x)
+
+#define LIST_MAX(list) <a href="list_fold_left.html">BOOST_PP_LIST_FOLD_LEFT</a>(OP, 20, LIST)
+
+LIST_MIN(LIST) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/mod.html b/doc/ref/mod.html
new file mode 100644
index 0000000..58f6e87
--- /dev/null
+++ b/doc/ref/mod.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+	<title>BOOST_PP_MOD</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_MOD</b> macro expands to the modulus of its arguments.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_MOD</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The dividend (numerator) of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The divisor (denominator) of the operation.&nbsp;
+				Valid values range from <i>1</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_MOD_D</b> in such a situation.
+		</div>
+		<div>
+			If <i>y</i> is <i>0</i>, the result is undefined.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="mod_d.html">BOOST_PP_MOD_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/mod.html">&lt;boost/preprocessor/arithmetic/mod.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/mod.html">boost/preprocessor/arithmetic/mod.hpp</a>&gt;
+
+<a href="mod.html">BOOST_PP_MOD</a>(11, 5) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/mod_d.html b/doc/ref/mod_d.html
new file mode 100644
index 0000000..7205781
--- /dev/null
+++ b/doc/ref/mod_d.html
@@ -0,0 +1,75 @@
+<html>
+<head>
+	<title>BOOST_PP_MOD_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_MOD_D</b> macro expands to the modulus of its second and third arguments.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_MOD_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The dividend (numerator) of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The divisor (denominator) of the operation.&nbsp;
+				Valid values range from <i>1</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>y</i> is <i>0</i>, the result is undefined.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="mod.html">BOOST_PP_MOD</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/div.html">&lt;boost/preprocessor/arithmetic/div.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/mod.html">boost/preprocessor/arithmetic/mod.hpp</a>&gt;
+#include &lt;<a href="../headers/list/filter.html">boost/preprocessor/list/filter.hpp</a>&gt;
+#include &lt;<a href="../headers/logical/not.html">boost/preprocessor/logical/not.hpp</a>&gt;
+
+#define LIST (1, (2, (3, (4, (5, <a href="nil.html">BOOST_PP_NIL</a>)))))
+
+#define EVEN_P(d, _, num) <a href="not.html">BOOST_PP_NOT</a>(<a href="mod_d.html">BOOST_PP_MOD_D</a>(d, num, 2))
+#define EVEN(list) <a href="list_filter.html">BOOST_PP_LIST_FILTER</a>(EVEN_P, nil, list)
+
+EVEN(LIST) // expands to (2, (4, <a href="nil.html">BOOST_PP_NIL</a>))
+
+#define ODD_P(d, _, num) <a href="mod_d.html">BOOST_PP_MOD_D</a>(d, num, 2)
+#define ODD(list) <a href="list_filter.html">BOOST_PP_LIST_FILTER</a>(ODD_P, nil, list)
+
+ODD(LIST) // expands to (1, (3, (5, <a href="nil.html">BOOST_PP_NIL</a>)))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/mul.html b/doc/ref/mul.html
new file mode 100644
index 0000000..174d88b
--- /dev/null
+++ b/doc/ref/mul.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+	<title>BOOST_PP_MUL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_MUL</b> macro expands to the product of its arguments.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_MUL</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The multiplicand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The multiplier of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If the product of <i>x</i> and <i>y</i> is greater than <b>BOOST_PP_LIMIT_MAG</b>, the result is saturated to <b>BOOST_PP_LIMIT_MAG</b>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_MUL_D</b> in such a situation.
+		</div>
+		<div>
+			This macro is the most efficient when <i>x</i> is greater than or equal to <i>y</i>.&nbsp;
+			However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.&nbsp;
+			In other words, <i>x</i> should be the value that is <i>most likely</i> to be the largest of the two operands.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="mul_d.html">BOOST_PP_MUL_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/mul.html">&lt;boost/preprocessor/arithmetic/mul.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/mul.html">boost/preprocessor/arithmetic/mul.hpp</a>&gt;
+
+<a href="mul.html">BOOST_PP_MUL</a>(4, 4) // expands to 16
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/mul_d.html b/doc/ref/mul_d.html
new file mode 100644
index 0000000..599fb85
--- /dev/null
+++ b/doc/ref/mul_d.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+	<title>BOOST_PP_MUL_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_MUL_D</b> macro expands to the product of its second and third arguments.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_MUL_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The multiplicand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The multiplier of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If the product of <i>x</i> and <i>y</i> is greater than <b>BOOST_PP_LIMIT_MAG</b>, the result is saturated to <b>BOOST_PP_LIMIT_MAG</b>.
+		</div>
+		<div>
+			This macro is the most efficient when <i>x</i> is greater than or equal to <i>y</i>.&nbsp;
+			However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.&nbsp;
+			In other words, <i>x</i> should be the value that is <i>most likely</i> to be the largest of the two operands.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="mul.html">BOOST_PP_MUL</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/mul.html">&lt;boost/preprocessor/arithmetic/mul.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/arithmetic/mul.html">boost/preprocessor/arithmetic/mul.hpp</a>&gt;
+#include &lt;<a href="../headers/control/while.html">boost/preprocessor/control/while.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define PRED(d, data) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 0, data)
+
+#define OP(d, data) \
+   ( \
+      <a href="dec.html">BOOST_PP_DEC</a>( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 0, data) \
+      ), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 1, data), \
+      <a href="mul_d.html">BOOST_PP_MUL_D</a>( \
+         d, \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 2, data), \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 1, data) \
+      ) \
+   ) \
+   /**/
+
+// raise 'x' to the 'n'-th power
+#define EXP(x, n) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 2, <a href="while.html">BOOST_PP_WHILE</a>(PRED, OP, (n, x, 1)))
+
+EXP(4, 2) // expands to 16
+EXP(2, 3) // expands to 8
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/nil.html b/doc/ref/nil.html
new file mode 100644
index 0000000..21ac405
--- /dev/null
+++ b/doc/ref/nil.html
@@ -0,0 +1,41 @@
+<html>
+<head>
+	<title>BOOST_PP_NIL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_NIL</b> identifier is reserved by the library to indicate a non-macro.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_NIL</b>
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			This identifier is <i>not</i> defined.&nbsp;
+			Its purpose is to <i>not be a macro</i>.&nbsp;
+			It is also used to terminate a <i>list</i>.
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>&gt;
+
+#define LIST (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))
+
+<a href="list_first.html">BOOST_PP_LIST_FIRST</a>(x) // expands to x
+<a href="list_rest.html">BOOST_PP_LIST_REST</a>(x) // expands to (y, (z, <a href="nil.html">BOOST_PP_NIL</a>))
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/nor.html b/doc/ref/nor.html
new file mode 100644
index 0000000..bb65f29
--- /dev/null
+++ b/doc/ref/nor.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_NOR</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_NOR</b> macro expands to the logical <i>NOR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_NOR</b>(<i>p</i>, <i>q</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>p</dt>
+			<dd>
+				The left operand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>q</dt>
+			<dd>
+				The right operand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If both <i>p</i> and <i>q</i> are both <i>0</i>, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro performs a boolean conversion on each operand before performing the logical <i>NOR</i> operation.&nbsp;
+			If that conversion is not necessary, use <b>BOOST_PP_BITNOR</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="bitnor.html">BOOST_PP_BITNOR</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/nor.html">&lt;boost/preprocessor/logical/nor.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/nor.html">boost/preprocessor/logical/nor.hpp</a>&gt;
+
+<a href="nor.html">BOOST_PP_NOR</a>(4, 0) // expands to 0
+<a href="nor.html">BOOST_PP_NOR</a>(0, 0) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/not.html b/doc/ref/not.html
new file mode 100644
index 0000000..1490b69
--- /dev/null
+++ b/doc/ref/not.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+	<title>BOOST_PP_NOT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_NOT</b> macro performs a logical <i>NOT</i> on its operand.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_NOT</b>(<i>x</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The value to be converted.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is zero, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro performs a boolean conversion on its operand before performing the logical <i>NOT</i> operation.&nbsp;
+			If that conversion is not necessary, use <b>BOOST_PP_COMPL</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="compl.html">BOOST_PP_COMPL</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/not.html">&lt;boost/preprocessor/logical/not.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/not.html">boost/preprocessor/logical/not.hpp</a>&gt;
+
+<a href="not.html">BOOST_PP_NOT</a>(55) // expands to 0
+<a href="not.html">BOOST_PP_NOT</a>(0) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/not_equal.html b/doc/ref/not_equal.html
new file mode 100644
index 0000000..b12ad20
--- /dev/null
+++ b/doc/ref/not_equal.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_NOT_EQUAL</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_NOT_EQUAL</b> macro compares two values for inequality.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_NOT_EQUAL</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is equal to <i>y</i>, this macro expands to <i>0</i>.&nbsp;
+			Otherwise, it expands to <i>1</i>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction because this macro no longer uses <b>BOOST_PP_WHILE</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="not_equal_d.html">BOOST_PP_NOT_EQUAL_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/not_equal.html">&lt;boost/preprocessor/comparison/not_equal.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/not_equal.html">boost/preprocessor/comparison/not_equal.hpp</a>&gt;
+
+<a href="not_equal.html">BOOST_PP_NOT_EQUAL</a>(4, 3) // expands to 1
+<a href="not_equal.html">BOOST_PP_NOT_EQUAL</a>(5, 5) // expands to 0
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/not_equal_d.html b/doc/ref/not_equal_d.html
new file mode 100644
index 0000000..92c9b04
--- /dev/null
+++ b/doc/ref/not_equal_d.html
@@ -0,0 +1,69 @@
+<html>
+<head>
+	<title>BOOST_PP_NOT_EQUAL_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_NOT_EQUAL_D</b> macro compares two values for inequality.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_NOT_EQUAL_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				This argument is ignored.
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The left operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The right operand of the comparison.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>x</i> is equal to <i>y</i>, this macro expands to <i>0</i>.&nbsp;
+			Otherwise, it expands to <i>1</i>.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_NOT_EQUAL</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="not_equal.html">BOOST_PP_NOT_EQUAL</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/comparison/not_equal.html">&lt;boost/preprocessor/comparison/not_equal.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/comparison/equal.html">boost/preprocessor/comparison/equal.hpp</a>&gt;
+
+<a href="not_equal_d.html">BOOST_PP_NOT_EQUAL_D</a>(1, 4, 3) // expands to 1
+<a href="not_equal_d.html">BOOST_PP_NOT_EQUAL_D</a>(1, 5, 5) // expands to 0
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/or.html b/doc/ref/or.html
new file mode 100644
index 0000000..778566a
--- /dev/null
+++ b/doc/ref/or.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_OR</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_OR</b> macro expands to the logical <i>OR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_OR</b>(<i>p</i>, <i>q</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>p</dt>
+			<dd>
+				The left operand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>q</dt>
+			<dd>
+				The right operand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If either <i>p</i> or <i>q</i> is non-zero, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro performs a boolean conversion on each operand before performing the logical <i>OR</i> operation.&nbsp;
+			If that conversion is not necessary, use <b>BOOST_PP_BITOR</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="bitor.html">BOOST_PP_BITOR</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/or.html">&lt;boost/preprocessor/logical/or.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/or.html">boost/preprocessor/logical/or.hpp</a>&gt;
+
+<a href="or.html">BOOST_PP_OR</a>(4, 3) // expands to 1
+<a href="or.html">BOOST_PP_OR</a>(5, 0) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/overload.html b/doc/ref/overload.html
new file mode 100644
index 0000000..860b1e2
--- /dev/null
+++ b/doc/ref/overload.html
@@ -0,0 +1,58 @@
+<html>
+  <head>
+    <meta  content="text/html; charset=windows-1252"  http-equiv="content-type">
+    <title>BOOST_PP_OVERLOAD</title>
+    <link  rel="stylesheet"  type="text/css"  href="../styles.css">
+  </head>
+  <body>
+    <div  style="margin-left: 0px;"> The <b>BOOST_PP_OVERLOAD</b> variadic
+      macro expands to the name of a non-variadic macro having a given number of
+      parameters.<br>
+    </div>
+    <h4>Usage</h4>
+    <div  class="code"> <b>BOOST_PP_OVERLOAD</b>(<i>prefix</i>,...) <a  href="../topics/variadic_macros.html#VNotation"
+         target="_self"><sup>(v)</sup></a><br>
+    </div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>prefix<br>
+      </dt>
+      <dd> The prefix of the non-variadic macro name. </dd>
+      <dt>...<br>
+      </dt>
+      <dd><i> Variadic data</i>. The number of variadic data
+        elements, as determined by BOOST_PP_VARIADIC_SIZE, is appended to the
+        prefix to form the output non-variadic macro name.<br>
+      </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro creates a macro name which depends on the number of
+      elements of variadic data. It should be used in the form of <br>
+      BOOST_PP_OVERLOAD(MACRO_NAME_,__VA_ARGS__)(__VA_ARGS__) in order to
+      call a non-variadic macro taking a given number of variadic data
+      elements as non-variadic arguments. In this way one can invoke a
+      variadic macro with a variable number of parameters which calls one of
+      a series of non-variadic macros doing very similar things.
+    </div>
+    <b>Requirements</b>
+    <div> <b>Header:</b> &nbsp;<a  href="../headers/facilities/overload.html">&lt;boost/preprocessor/facilities/overload.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a  href="../headers/facilities/overload.html">boost/preprocessor/facilities/overload.hpp</a>&gt;<br>#include <<a
+ href="../headers/cat.html">boost/preprocessor/cat.hpp</a>><br>#include <<a  href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>><br>#include <<a
+ href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>><br><br>#define MACRO_1(number) MACRO_2(number,10)<br>#define MACRO_2(number1,number2) <a
+ href="add.html">BOOST_PP_ADD</a>(number1,number2)<br><br>#if !BOOST_PP_VARIADICS_MSVC<br><br>#define MACRO_ADD_NUMBERS(...) <a
+ href="overload.html">BOOST_PP_OVERLOAD</a>(MACRO_,__VA_ARGS__)(__VA_ARGS__)<br><br>#else<br><br>// or for Visual C++<br><br>#define MACRO_ADD_NUMBERS(...) \<br>  <a
+ href="cat.html">BOOST_PP_CAT</a>(<a  href="overload.html">BOOST_PP_OVERLOAD</a>(MACRO_,__VA_ARGS__)(__VA_ARGS__),<a
+ href="empty.html">BOOST_PP_EMPTY</a>())<br><br>#endif<br><br>MACRO_ADD_NUMBERS(5) // output is 15<br>MACRO_ADD_NUMBERS(3,6) // output is 9</pre>
+</div>
+<hr  size="1">
+<div  style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011,2013,2016</i> </div>
+<div  style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a  href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a  href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+  
+</body></html>
\ No newline at end of file
diff --git a/doc/ref/relative_finish.html b/doc/ref/relative_finish.html
new file mode 100644
index 0000000..d707c11
--- /dev/null
+++ b/doc/ref/relative_finish.html
@@ -0,0 +1,46 @@
+<html>
+<head>
+	<title>BOOST_PP_RELATIVE_FINISH</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_RELATIVE_FINISH</b> macro expands to the upper bound of a <i>file-iteration</i> depth relative to the current depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_RELATIVE_FINISH</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The relative depth of the frame whose upper bound is to be retreived.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ITERATION_DEPTH</b>() - <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+		<div>
+			The argument <i>i</i> is interpreted as the number of frames <i>outward</i> from the current frame.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/relative_flags.html b/doc/ref/relative_flags.html
new file mode 100644
index 0000000..1e1a4a5
--- /dev/null
+++ b/doc/ref/relative_flags.html
@@ -0,0 +1,46 @@
+<html>
+<head>
+	<title>BOOST_PP_RELATIVE_FLAGS</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_RELATIVE_FLAGS</b> macro expands to the flags associated with a <i>file-iteration</i> depth relative to the current depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_RELATIVE_FLAGS</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The relative depth of the frame whose flags are to be retreived.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ITERATION_DEPTH</b>() - <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+		<div>
+			The argument <i>i</i> is interpreted as the number of frames <i>outward</i> from the current frame.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/relative_iteration.html b/doc/ref/relative_iteration.html
new file mode 100644
index 0000000..c2fe0f8
--- /dev/null
+++ b/doc/ref/relative_iteration.html
@@ -0,0 +1,101 @@
+<html>
+<head>
+	<title>BOOST_PP_RELATIVE_ITERATION</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_RELATIVE_ITERATION</b> macro expands to the iteration value of a <i>file-iteration</i> depth relative to the current depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_RELATIVE_ITERATION</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The relative depth of the frame whose iteration value is to be retreived.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ITERATION_DEPTH</b>() - <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+		<div>
+			The argument <i>i</i> is interpreted as the number of frames <i>outward</i> from the current frame.&nbsp;
+			Therefore, <b>BOOST_PP_RELATIVE_ITERATION</b>(<i>0</i>) is equivalent to <b>BOOST_PP_ITERATION</b>().
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+// file.h
+#if !<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>
+
+   #ifndef FILE_H_
+   #define FILE_H_
+
+   #include &lt;<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>&gt;
+
+1st iteration:
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (4, (0, 3, "file.h", 0x0001))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+2nd iteration:
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (4, (1, 10, "file.h", 0x0002))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+   #endif
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 1 \
+   &amp;&amp; <a href="iteration_flags.html">BOOST_PP_ITERATION_FLAGS</a>() == 0x0001 \
+   /**/
+
+   --
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_2</a> (3, (1, 10, "file.h"))
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 1 \
+   &amp;&amp; <a href="iteration_flags.html">BOOST_PP_ITERATION_FLAGS</a>() == 0x0002 \
+   /**/
+
+   --
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_2</a> \
+      (3, (1, <a href="iteration.html">BOOST_PP_ITERATION</a>(), "file.h")) \
+      /**/
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+#elif <a href="iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a>() == 2 \
+   &amp;&amp; <a href="frame_flags.html">BOOST_PP_FRAME_FLAGS</a>(1) == 0x0001 \
+   /**/
+
+   --
+   #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_3</a> \
+      (3, (1, <a href="iteration.html">BOOST_PP_ITERATION</a>(), "file.h")) \
+      /**/
+   #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+#else // used by both
+
+   previous: <a href="relative_iteration.html">BOOST_PP_RELATIVE_ITERATION</a>(1)
+   current: <a href="iteration.html">BOOST_PP_ITERATION</a>()
+
+#endif
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/relative_start.html b/doc/ref/relative_start.html
new file mode 100644
index 0000000..e335ef7
--- /dev/null
+++ b/doc/ref/relative_start.html
@@ -0,0 +1,46 @@
+<html>
+<head>
+	<title>BOOST_PP_RELATIVE_START</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_RELATIVE_START</b> macro expands to the lower bound of a <i>file-iteration</i> depth relative to the current depth.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_RELATIVE_START</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The relative depth of the frame whose lower bound is to be retreived.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_ITERATION_DEPTH</b>() - <i>1</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro is only valid when a <i>file-iteration</i> is in progress.
+		</div>
+		<div>
+			The argument <i>i</i> is interpreted as the number of frames <i>outward</i> from the current frame.
+		</div>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/remove_parens.html b/doc/ref/remove_parens.html
new file mode 100644
index 0000000..72312dd
--- /dev/null
+++ b/doc/ref/remove_parens.html
@@ -0,0 +1,44 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_REMOVE_PARENS</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_REMOVE_PAREN</b>S macro
+      removes the beginning parenthesis, if it exists, from the input data and
+      expands to the result</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_REMOVE_PARENS</b>(param) <a href="../topics/variadic_macros.html#VNotation"
+        target="_self"><sup>(v)</sup></a></div>
+    <h4>Arguments&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight: normal;"></span></h4>
+    <h4><span style="font-weight: normal;">&nbsp;&nbsp;&nbsp; param</span>&nbsp;&nbsp;
+      <span style="font-weight: normal;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
+        The input data.</span></h4>
+    <h4>Remarks</h4>
+    <div> If the input begins with a parenthesis, with any data within that
+      parenthesis, the macro removes the parenthesis and expands to the result.
+      If the input does not begin with a parenthesis the macro expands to the
+      input.<br>
+    </div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="is_begin_parens.html">BOOST_PP_IS_BEGIN_PARENS</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/punctuation/remove_parens.html">&lt;boost/preprocessor/punctuation/remove_parens.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/punctuation/remove_parens.html">boost/preprocessor/punctuation/remove_parens.hpp</a>&gt;<br><br>#define DATA data<br>#define DATAP ( data ) more_data<br><br>BOOST_PP_REMOVE_PARENS(DATA)     // expands to 'data'
+BOOST_PP_REMOVE_PARENS(DATAP)    // expands to 'data more_data'<br>
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2014</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/repeat.html b/doc/ref/repeat.html
new file mode 100644
index 0000000..ebcaf8f
--- /dev/null
+++ b/doc/ref/repeat.html
@@ -0,0 +1,80 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT</b> macro represents a fast horizontal repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT</b>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_REPEAT_<i>z</i></b>.
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_REPEAT</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available repetition depth.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat_z.html">BOOST_PP_REPEAT_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat.html">&lt;boost/preprocessor/repetition/repeat.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+#define DECL(z, n, text) text ## n = n;
+
+<a href="repeat.html">BOOST_PP_REPEAT</a>(5, DECL, int x)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_1st.html b/doc/ref/repeat_1st.html
new file mode 100644
index 0000000..8de5442
--- /dev/null
+++ b/doc/ref/repeat_1st.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_1ST</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_1ST</b> macro represents the first dimension of <b>BOOST_PP_REPEAT</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_1ST</b>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT_1ST</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_REPEAT_<i>z</i></b>.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_REPEAT</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat.html">BOOST_PP_REPEAT</a></li>
+			<li><a href="repeat_z.html">BOOST_PP_REPEAT_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat.html">&lt;boost/preprocessor/repetition/repeat.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+#define DECL(z, n, text) text ## n = n;
+
+<a href="repeat_1st.html">BOOST_PP_REPEAT_1ST</a>(5, DECL, int x)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_2nd.html b/doc/ref/repeat_2nd.html
new file mode 100644
index 0000000..5e79439
--- /dev/null
+++ b/doc/ref/repeat_2nd.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_2ND</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_2ND</b> macro represents the second dimension of <b>BOOST_PP_REPEAT</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_2ND</b>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT_2ND</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_REPEAT_<i>z</i></b>.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_REPEAT</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat.html">BOOST_PP_REPEAT</a></li>
+			<li><a href="repeat_z.html">BOOST_PP_REPEAT_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat.html">&lt;boost/preprocessor/repetition/repeat.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+#define DECL(z, n, text) text ## n = n;
+
+<a href="repeat_2nd.html">BOOST_PP_REPEAT_2ND</a>(5, DECL, int x)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_3rd.html b/doc/ref/repeat_3rd.html
new file mode 100644
index 0000000..9271adc
--- /dev/null
+++ b/doc/ref/repeat_3rd.html
@@ -0,0 +1,82 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_3RD</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_3RD</b> macro represents the third dimension of <b>BOOST_PP_REPEAT</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_3RD</b>(<i>count</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>count</dt>
+			<dd>
+				The number of repetitious calls to <i>macro</i>.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT_3RD</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_REPEAT_<i>z</i></b>.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_REPEAT</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat.html">BOOST_PP_REPEAT</a></li>
+			<li><a href="repeat_z.html">BOOST_PP_REPEAT_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat.html">&lt;boost/preprocessor/repetition/repeat.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+#define DECL(z, n, text) text ## n = n;
+
+<a href="repeat_3rd.html">BOOST_PP_REPEAT_3RD</a>(5, DECL, int x)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_from_to.html b/doc/ref/repeat_from_to.html
new file mode 100644
index 0000000..66f7f00
--- /dev/null
+++ b/doc/ref/repeat_from_to.html
@@ -0,0 +1,102 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_FROM_TO</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_FROM_TO</b> macro represents a fast horizontal repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_FROM_TO</b>(<i>first</i>, <i>last</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>first</dt>
+			<dd>
+				The lower bound of the repetition.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>last</dt>
+			<dd>
+				The upper bound of the repetition.
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>first</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>first</i> + <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>last</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The number of repetitions (i.e. <i>last</i> - <i>first</i>) must not exceed <b>BOOST_PP_LIMIT_REPEAT</b>.
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_REPEAT_FROM_TO_<i>z</i></b>.
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_REPEAT</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available repetition depth.
+		</div>
+		<div>
+			This macro also uses <b>BOOST_PP_WHILE</b>.&nbsp;
+			Because of this, there are also two variants of this macro for ideal reentrance into <b>BOOST_PP_WHILE</b>,
+			<b>BOOST_PP_REPEAT_FROM_TO_D</b> and <b>BOOST_PP_REPEAT_FROM_TO_D_<i>z</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat_from_to_d.html">BOOST_PP_REPEAT_FROM_TO_D</a></li>
+			<li><a href="repeat_from_to_d_z.html">BOOST_PP_REPEAT_FROM_TO_D_<i>z</i></a></li>
+			<li><a href="repeat_from_to_z.html">BOOST_PP_REPEAT_FROM_TO_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/repeat_from_to.html">boost/preprocessor/repetition/repeat_from_to.hpp</a>&gt;
+
+#define DECL(z, n, text) <a href="cat.html">BOOST_PP_CAT</a>(text, n) = n;
+
+<a href="repeat_from_to.html">BOOST_PP_REPEAT_FROM_TO</a>(5, 10, DECL, int x)
+   /*
+      expands to:
+      int x5 = 5; int x6 = 6; int x7 = 7;
+      int x8 = 8; int x9 = 9;
+   */
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_from_to_1st.html b/doc/ref/repeat_from_to_1st.html
new file mode 100644
index 0000000..8dd1e00
--- /dev/null
+++ b/doc/ref/repeat_from_to_1st.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_FROM_TO_1ST</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_FROM_TO_1ST</b> macro represents the first dimension of <b>BOOST_PP_REPEAT_FROM_TO</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_FROM_TO_1ST</b>(<i>first</i>, <i>last</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>first</dt>
+			<dd>
+				The lower bound of the repetition.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>last</dt>
+			<dd>
+				The upper bound of the repetition.
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT_FROM_TO_1ST</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>first</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>first</i> + <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>last</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The number of repetitions (i.e. <i>last</i> - <i>first</i>) must not exceed <b>BOOST_PP_LIMIT_REPEAT</b>.
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_REPEAT_FROM_TO_<i>z</i></b>.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_REPEAT_FROM_TO</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat_from_to_z.html">BOOST_PP_REPEAT_FROM_TO_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/repeat_from_to.html">boost/preprocessor/repetition/repeat_from_to.hpp</a>&gt;
+
+#define MACRO(z, n, data) (n)
+
+<a href="repeat_from_to_1st.html">BOOST_PP_REPEAT_FROM_TO_1ST</a>(1, 6, MACRO, nil)
+   // expands to (1) (2) (3) (4) (5)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_from_to_2nd.html b/doc/ref/repeat_from_to_2nd.html
new file mode 100644
index 0000000..b2e8a3a
--- /dev/null
+++ b/doc/ref/repeat_from_to_2nd.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_FROM_TO_2ND</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_FROM_TO_2ND</b> macro represents the second dimension of <b>BOOST_PP_REPEAT_FROM_TO</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_FROM_TO_2ND</b>(<i>first</i>, <i>last</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>first</dt>
+			<dd>
+				The lower bound of the repetition.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>last</dt>
+			<dd>
+				The upper bound of the repetition.
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT_FROM_TO_2ND</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>first</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>first</i> + <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>last</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The number of repetitions (i.e. <i>last</i> - <i>first</i>) must not exceed <b>BOOST_PP_LIMIT_REPEAT</b>.
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_REPEAT_FROM_TO_<i>z</i></b>.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_REPEAT_FROM_TO</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat_from_to_z.html">BOOST_PP_REPEAT_FROM_TO_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/repeat_from_to.html">boost/preprocessor/repetition/repeat_from_to.hpp</a>&gt;
+
+#define MACRO(z, n, data) (n)
+
+<a href="repeat_from_to_2nd.html">BOOST_PP_REPEAT_FROM_TO_2ND</a>(1, 6, MACRO, nil)
+   // expands to (1) (2) (3) (4) (5)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_from_to_3rd.html b/doc/ref/repeat_from_to_3rd.html
new file mode 100644
index 0000000..9f85f49
--- /dev/null
+++ b/doc/ref/repeat_from_to_3rd.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_FROM_TO_3RD</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_FROM_TO_3RD</b> macro represents the third dimension of <b>BOOST_PP_REPEAT_FROM_TO</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_FROM_TO_3RD</b>(<i>first</i>, <i>last</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>first</dt>
+			<dd>
+				The lower bound of the repetition.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>last</dt>
+			<dd>
+				The upper bound of the repetition.
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT_FROM_TO_3RD</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>first</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>first</i> + <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>last</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The number of repetitions (i.e. <i>last</i> - <i>first</i>) must not exceed <b>BOOST_PP_LIMIT_REPEAT</b>.
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_REPEAT_FROM_TO_<i>z</i></b>.
+		</div>
+		<div>
+			This macro is deprecated.&nbsp;
+			It only exists for backward compatibility.&nbsp;
+			Use <b>BOOST_PP_REPEAT_FROM_TO</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat_from_to_z.html">BOOST_PP_REPEAT_FROM_TO_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/repeat_from_to.html">boost/preprocessor/repetition/repeat_from_to.hpp</a>&gt;
+
+#define MACRO(z, n, data) (n)
+
+<a href="repeat_from_to_3rd.html">BOOST_PP_REPEAT_FROM_TO_3RD</a>(1, 6, MACRO, nil)
+   // expands to (1) (2) (3) (4) (5)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_from_to_d.html b/doc/ref/repeat_from_to_d.html
new file mode 100644
index 0000000..a3a1035
--- /dev/null
+++ b/doc/ref/repeat_from_to_d.html
@@ -0,0 +1,83 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_FROM_TO_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_FROM_TO_D</b> macro represents a fast horizontal repetition construct.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_FROM_TO_D</b>(<i>d</i>, <i>first</i>, <i>last</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>first</dt>
+			<dd>
+				The lower bound of the repetition.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>last</dt>
+			<dd>
+				The upper bound of the repetition.
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>first</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>first</i> + <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>last</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The number of repetitions (i.e. <i>last</i> - <i>first</i>) must not exceed <b>BOOST_PP_LIMIT_REPEAT</b>.
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_REPEAT_FROM_TO_D_<i>z</i></b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat_from_to.html">BOOST_PP_REPEAT_FROM_TO</a></li>
+			<li><a href="repeat_from_to_d_z.html">BOOST_PP_REPEAT_FROM_TO_D_<i>z</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_from_to_d_z.html b/doc/ref/repeat_from_to_d_z.html
new file mode 100644
index 0000000..bc6b7b6
--- /dev/null
+++ b/doc/ref/repeat_from_to_d_z.html
@@ -0,0 +1,84 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_FROM_TO_D_z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_FROM_TO_D_<i>z</i></b> macro represents a fast horizontal repetition construct.&nbsp;
+		It reenters both <b>BOOST_PP_REPEAT</b> and <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_FROM_TO_D_<i>z</i></b>(<i>d</i>, <i>first</i>, <i>last</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.
+			</dd>
+			<dt>first</dt>
+			<dd>
+				The lower bound of the repetition.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>last</dt>
+			<dd>
+				The upper bound of the repetition.
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>first</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>first</i> + <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>last</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The number of repetitions (i.e. <i>last</i> - <i>first</i>) must not exceed <b>BOOST_PP_LIMIT_REPEAT</b>.
+		</div>
+		<div>
+			The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.&nbsp;
+			Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.&nbsp;
+			Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat_from_to.html">BOOST_PP_REPEAT_FROM_TO</a></li>
+			<li><a href="repeat_from_to_d.html">BOOST_PP_REPEAT_FROM_TO_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_from_to_z.html b/doc/ref/repeat_from_to_z.html
new file mode 100644
index 0000000..e3f9dae
--- /dev/null
+++ b/doc/ref/repeat_from_to_z.html
@@ -0,0 +1,105 @@
+<html>
+<head>
+	<title>BOOST_PP_REPEAT_FROM_TO_z</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_REPEAT_FROM_TO_<i>z</i></b> macro represents a reentry into the <b>BOOST_PP_REPEAT_FROM_TO</b> repetition construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_REPEAT_FROM_TO_</b> ## <i>z</i>(<i>first</i>, <i>last</i>, <i>macro</i>, <i>data</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>z</dt>
+			<dd>
+				The next available <b>BOOST_PP_REPEAT</b> dimension.
+			</dd>
+			<dt>first</dt>
+			<dd>
+				The lower bound of the repetition.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>last</dt>
+			<dd>
+				The upper bound of the repetition.
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+				This macro is expanded by <b>BOOST_PP_REPEAT</b> with the next available repetition depth,
+				the current repetition number, and the auxiliary <i>data</i> argument.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro expands to the sequence:
+			<div>
+				<i>macro</i>(<i>z</i>, <i>first</i>, <i>data</i>) <i>macro</i>(<i>z</i>, <i>first</i> + <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>last</i> - <i>1</i>, <i>data</i>)
+			</div>
+		</div>
+		<div>
+			The number of repetitions (i.e. <i>last</i> - <i>first</i>) must not exceed <b>BOOST_PP_LIMIT_REPEAT</b>.
+		</div>
+		<div>
+			At certain times, it may be necessary to perform the concatenation with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting operator.&nbsp;
+			This happens when the <i>z</i> value is a macro invocation itself.&nbsp;
+			It needs a delay to allow it to expand.&nbsp;
+			The syntax in such a scenario becomes:
+			<div>
+				<b>BOOST_PP_CAT</b>(<b>BOOST_PP_REPEAT_FROM_TO_</b>, <i>z</i>)(<i>count</i>, <i>macro</i>, <i>data</i>).
+			</div>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="cat.html">BOOST_PP_CAT</a></li>
+			<li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+			<li><a href="repeat.html">BOOST_PP_REPEAT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/repetition/repeat_from_to.html">&lt;boost/preprocessor/repetition/repeat_from_to.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/repetition/repeat_from_to.html">boost/preprocessor/repetition/repeat_from_to.hpp</a>&gt;
+
+#define TEXT(z, n, data) n data
+
+#define MACRO(z, n, data) \
+  ( \
+     <a href="repeat_from_to_z.html">BOOST_PP_REPEAT_FROM_TO_</a> ## z( \
+        1, 4, \
+        TEXT, xyz \
+     ) \
+  ) \
+  /**/
+
+<a href="repeat.html">BOOST_PP_REPEAT</a>(3, MACRO, _)
+   /*
+      expands to:
+      (1 xyz 2 xyz 3 xyz)
+      (1 xyz 2 xyz 3 xyz)
+      (1 xyz 2 xyz 3 xyz)
+   */
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/repeat_z.html b/doc/ref/repeat_z.html
new file mode 100644
index 0000000..f18da06
--- /dev/null
+++ b/doc/ref/repeat_z.html
@@ -0,0 +1,92 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_REPEAT_z</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_REPEAT_<i>z</i></b> macro
+      represents a reentry into the <b>BOOST_PP_REPEAT</b> repetition
+      construct. </div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_REPEAT_</b> ## <i>z</i>(<i>count</i>, <i>macro</i>,
+      <i>data</i>) </div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>z</dt>
+      <dd> The next available <b>BOOST_PP_REPEAT</b> dimension. </dd>
+      <dt>count</dt>
+      <dd> The number of repetitious calls to <i>macro</i>.&nbsp; Valid values
+        range from <i>0</i> to <b>BOOST_PP_LIMIT_REPEAT</b>. </dd>
+      <dt>macro</dt>
+      <dd> A ternary operation of the form <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>).&nbsp;
+        This macro is expanded by <b>BOOST_PP_REPEAT</b> with the next
+        available repetition depth, the current repetition number, and the
+        auxiliary <i>data</i> argument.&nbsp; </dd>
+      <dt>data</dt>
+      <dd> Auxiliary data passed to <i>macro</i>. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro expands to the sequence:
+      <div> <i>macro</i>(<i>z</i>, <i>0</i>, <i>data</i>) <i>macro</i>(<i>z</i>,
+        <i>1</i>, <i>data</i>) ... <i>macro</i>(<i>z</i>, <i>count</i> - <i>1</i>,
+        <i>data</i>) </div>
+    </div>
+    <div> At certain times, it may be necessary to perform the concatenation
+      with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting
+      operator.&nbsp; This happens when the <i>z</i> value is a macro
+      invocation itself.&nbsp; It needs a delay to allow it to expand.&nbsp; The
+      syntax in such a scenario becomes:
+      <div> <b>BOOST_PP_CAT</b>(<b>BOOST_PP_REPEAT_</b>, <i>z</i>)(<i>count</i>,
+        <i>macro</i>, <i>data</i>) </div>
+    </div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="cat.html">BOOST_PP_CAT</a></li>
+      <li><a href="limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
+      <li><a href="repeat.html">BOOST_PP_REPEAT</a></li>
+      <li><a href="repeat_z_macros.html"><span style="color: gray;">Macros with
+            Z re-entrancy forms</span></a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/repetition/repeat.html">&lt;boost/preprocessor/repetition/repeat.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;
+#include &lt;<a href="../headers/punctuation/comma_if.html">boost/preprocessor/punctuation/comma_if.hpp</a>&gt;
+#include &lt;<a href="../headers/repetition/repeat.html">boost/preprocessor/repetition/repeat.hpp</a>&gt;
+
+#define TEXT(z, n, text) <a href="comma_if.html">BOOST_PP_COMMA_IF</a>(n) text
+
+#define TEMPLATE(z, n, _) \
+   <a href="comma_if.html">BOOST_PP_COMMA_IF</a>(n) \
+   template&lt; \
+      <a href="repeat_z.html">BOOST_PP_REPEAT_</a> ## z( \
+         <a href="inc.html">BOOST_PP_INC</a>(n), \
+         TEXT, class \
+      ) \
+   &gt; class T ## n \
+   /**/
+
+<a href="repeat.html">BOOST_PP_REPEAT</a>(3, TEMPLATE, nil)
+   /*
+   expands to:
+      template&lt;class&gt; class T0,
+      template&lt;class, class&gt; class T1,
+      template&lt;class, class, class&gt; class T2
+   */
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002<br>
+      </i><i>© Copyright Edward Diener 2014</i><br>
+    </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/repeat_z_macros.html b/doc/ref/repeat_z_macros.html
new file mode 100644
index 0000000..14b8182
--- /dev/null
+++ b/doc/ref/repeat_z_macros.html
@@ -0,0 +1,45 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_REPEAT_z_macros</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>This is a list, based on functionality, of the macros which have an
+    alternate <b>_z<i></i></b> name, representing a reentry into the <b>BOOST_PP_REPEAT</b>
+    looping construct:<br>
+    <br>
+    array<br>
+    <ul>
+      <li><a href="array_pop_back_z.html">BOOST_PP_ARRAY_POP_BACK_Z</a></li>
+      <li><a href="array_pop_front_z.html">BOOST_PP_ARRAY_POP_FRONT_Z</a></li>
+    </ul>
+    repetition<br>
+    <ul>
+      <li><a href="deduce_z.html">BOOST_PP_DEDUCE_Z</a></li>
+      <li><a href="enum_binary_params_z.html">BOOST_PP_ENUM_BINARY_PARAMS_Z</a></li>
+      <li><a href="enum_params_z.html">BOOST_PP_ENUM_PARAMS_Z</a></li>
+      <li><a href="esbpz.html">BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z</a></li>
+      <li><a href="enum_shifted_params_z.html">BOOST_PP_ENUM_SHIFTED_PARAMS_Z</a></li>
+      <li><a href="enum_shifted_z.html">BOOST_PP_ENUM_SHIFTED_<i>z</i></a></li>
+      <li><a href="etbpz.html">BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z</a></li>
+      <li><a href="enum_trailing_params_z.html">BOOST_PP_ENUM_TRAILING_PARAMS_Z</a></li>
+      <li><a href="enum_trailing_z.html">BOOST_PP_ENUM_TRAILING_<i>z</i></a></li>
+      <li><a href="enum_z.html">BOOST_PP_ENUM_<i>z</i></a></li>
+      <li><a href="repeat_from_to_d_z.html">BOOST_PP_REPEAT_FROM_TO_D_<i>z</i></a></li>
+      <li><a href="repeat_from_to_z.html">BOOST_PP_REPEAT_FROM_TO_<i>z</i></a></li>
+    </ul>
+    base<br>
+    <ul>
+      <li><a href="repeat_z.html">BOOST_PP_REPEAT_<i>z</i></a></li>
+    </ul>
+    <br>
+    <pre></pre>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2014</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/rparen.html b/doc/ref/rparen.html
new file mode 100644
index 0000000..5edfd4c
--- /dev/null
+++ b/doc/ref/rparen.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+	<title>BOOST_PP_RPAREN</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_RPAREN</b> macro expands to a right parenthesis.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_RPAREN</b>()
+		</div>
+	<h4>Remarks</h4>
+		<div>
+			The preprocessor interprets parentheses as delimiters in macro invocations.&nbsp;
+			Because of this, parentheses require special handling.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="lparen.html">BOOST_PP_LPAREN</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/punctuation/paren.html">&lt;boost/preprocessor/punctuation/paren.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>&gt;
+#include &lt;<a href="../headers/punctuation/paren.html">boost/preprocessor/punctuation/paren.hpp</a>&gt;
+
+#define X(x) x
+#define MACRO(x, p) X ( x p
+
+MACRO(abc, <a href="rparen.html">BOOST_PP_RPAREN</a>()) // expands to abc
+
+#define Y(x)
+
+MACRO(<a href="empty.html">BOOST_PP_EMPTY</a> <a href="rparen.html">BOOST_PP_RPAREN</a>()(), 10) // expands to 10
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/rparen_if.html b/doc/ref/rparen_if.html
new file mode 100644
index 0000000..1e13528
--- /dev/null
+++ b/doc/ref/rparen_if.html
@@ -0,0 +1,61 @@
+<html>
+<head>
+	<title>BOOST_PP_RPAREN_IF</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_RPAREN_IF</b> macro conditionally expands to a right parenthesis.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_RPAREN_IF</b>(<i>cond</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>cond</dt>
+			<dd>
+				The condition that determines if a the macro expands to a right parenthesis or nothing.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If <i>cond</i> expands to <i>0</i>, this macro expands to nothing.&nbsp;
+			Otherwise, it expands to a right parenthesis.
+		</div>
+		<div>
+			The preprocessor interprets parentheses as delimiters in macro invocations.&nbsp;
+			Because of this, parentheses require special handling.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="lparen_if.html">BOOST_PP_LPAREN_IF</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/punctuation/paren_if.html">&lt;boost/preprocessor/punctuation/paren_if.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/punctuation/paren_if.html">boost/preprocessor/punctuation/paren_if.hpp</a>&gt;
+
+#define MACRO(c, x) <a href="lparen_if.html">BOOST_PP_LPAREN_IF</a>(c) x <a href="rparen_if.html">BOOST_PP_RPAREN_IF</a>(c)
+
+MACRO(0, text) // expands to text
+MACRO(1, text) // expands to (text)
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/seq_cat.html b/doc/ref/seq_cat.html
new file mode 100644
index 0000000..8cf87c5
--- /dev/null
+++ b/doc/ref/seq_cat.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+        <title>BOOST_PP_SEQ_CAT</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+		<div style="margin-left: 0px;">
+			The <b>BOOST_PP_SEQ_CAT</b> macro concatenates all elements in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_CAT</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> whose elements are to be concatenated.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			Elements are concatenated left-to-right starting with index <i>0</i>.
+		</div>
+		<div>
+			For maximum efficiency, use <b>BOOST_PP_SEQ_CAT_S</b>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_cat_s.html">BOOST_PP_SEQ_CAT_S</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/cat.html">&lt;boost/preprocessor/seq/cat.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>#include &lt;<a href="../headers/seq/cat.html">boost/preprocessor/seq/cat.hpp</a>&gt;<br><br>#define SEQ (a)(b)(c)<br><br><a href="seq_cat.html">BOOST_PP_SEQ_CAT</a>(SEQ) // expands to abc<br></pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/seq_cat_s.html b/doc/ref/seq_cat_s.html
new file mode 100644
index 0000000..0683176
--- /dev/null
+++ b/doc/ref/seq_cat_s.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+        <title>BOOST_PP_SEQ_CAT_S</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+		<div style="margin-left: 0px;">
+			The <b>BOOST_PP_SEQ_CAT_S</b> macro concatenates all elements in a <i>seq</i>.&nbsp; 
+			It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with maximum efficiency.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_CAT_S</b>(<i>s</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>s</dt>
+			<dd>
+				The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> whose elements are to be concatenated.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			Elements are concatenated left-to-right starting with index <i>0</i>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_cat.html">BOOST_PP_SEQ_CAT</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/cat.html">&lt;boost/preprocessor/seq/cat.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/seq_elem.html b/doc/ref/seq_elem.html
new file mode 100644
index 0000000..fa59744
--- /dev/null
+++ b/doc/ref/seq_elem.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+        <title>BOOST_PP_SEQ_ELEM</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+		<div style="margin-left: 0px;">
+			The <b>BOOST_PP_SEQ_ELEM</b> macro extracts an element from a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_ELEM</b>(<i>i</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The zero-based index of the element to be extracted.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> from which an element is to be extracted.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			The index <i>i</i> must be in the range of <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) 
+			- <i>1</i>.
+		</div>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/elem.html">&lt;boost/preprocessor/seq/elem.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>#include &lt;<a href="../headers/seq/elem.html">boost/preprocessor/seq/elem.hpp</a>&gt;<br><br><a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(1, (a)(b)(c)) // expands to b<br><br>#define SEQ \<br>   (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \<br>   (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \<br>   (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \<br>   (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \<br>   (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \<br>   (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \<br>   (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \<br>   (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \<br>   (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \<br>   (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \<br>   /**/<br><br><a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(88, SEQ) // expands to 88<br></pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/seq_enum.html b/doc/ref/seq_enum.html
new file mode 100644
index 0000000..8c7373d
--- /dev/null
+++ b/doc/ref/seq_enum.html
@@ -0,0 +1,66 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_ENUM</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_ENUM</b> macro enumerates the elements in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_ENUM</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> from whose elements are to be enumerated.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro expands to a comma-separated list of the elements in <i>seq</i>.&nbsp; 
+			For example, <b>BOOST_PP_SEQ_ENUM</b>((<i>x</i>)(<i>y</i>)(<i>z</i>)) expands 
+			to...
+			<div>
+				<i>x</i>, <i>y</i>, <i>z</i>
+			</div>
+		</div>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/enum.html">&lt;boost/preprocessor/seq/enum.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/enum.html">boost/preprocessor/seq/enum.hpp</a>&gt;
+
+#define SEQ (B)(O)(O)(S)(T)
+
+<a href="seq_enum.html">BOOST_PP_SEQ_ENUM</a>(SEQ) // expands to B, O, O, S, T
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_filter.html b/doc/ref/seq_filter.html
new file mode 100644
index 0000000..f08037b
--- /dev/null
+++ b/doc/ref/seq_filter.html
@@ -0,0 +1,93 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FILTER</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FILTER</b> macro filters a <i>seq</i> according to a 
+			supplied criterion.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FILTER</b>(<i>pred</i>, <i>data</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>pred</dt>
+			<dd>
+				A ternary predicate of the form <i>pred</i>(<i>s</i>, <i>data</i>, <i>elem</i>).&nbsp; 
+				This predicate is expanded by <b>BOOST_PP_SEQ_FILTER</b> for each element in <i>seq</i>
+				with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step, the auxiliary <i>data</i>, 
+				and the current element in <i>seq</i>.&nbsp; This macro must return a integral 
+				value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.&nbsp; If this 
+				predicate expands to non-zero for a certain element, that element is included 
+				in the resulting <i>seq</i>.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>pred</i>.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be filtered.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro expands <i>pred</i> for each element in <i>seq</i>.&nbsp; It builds 
+			a new <i>seq</i> out of each element for which <i>pred</i> returns non-zero.
+		</div>
+		<div>
+			For maximum efficiency, use <b>BOOST_PP_SEQ_FILTER_S</b>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li>
+				<a href="seq_filter_s.html">BOOST_PP_SEQ_FILTER_S</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/filter.html">&lt;boost/preprocessor/seq/filter.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/comparison/less_equal.html">boost/preprocessor/comparison/less_equal.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/filter.html">boost/preprocessor/seq/filter.hpp</a>&gt;
+
+#define SEQ (1)(3)(2)(5)
+
+#define PRED(s, data, elem) <a href="less_equal.html">BOOST_PP_LESS_EQUAL</a>(elem, data)
+
+<a href="seq_filter.html">BOOST_PP_SEQ_FILTER</a>(PRED, 3, SEQ)
+   // expands to (1)(3)(2)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_filter_s.html b/doc/ref/seq_filter_s.html
new file mode 100644
index 0000000..9599c4e
--- /dev/null
+++ b/doc/ref/seq_filter_s.html
@@ -0,0 +1,79 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FILTER_S</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FILTER_S</b> macro filters a <i>seq</i> according to a 
+			supplied criterion.&nbsp; It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with 
+			maximum efficiency.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FILTER_S</b>(<i>s</i>, <i>pred</i>, <i>data</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>s</dt>
+			<dd>
+				The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
+			</dd>
+			<dt>pred</dt>
+			<dd>
+				A ternary predicate of the form <i>pred</i>(<i>s</i>, <i>data</i>, <i>elem</i>).&nbsp; 
+				This predicate is expanded by <b>BOOST_PP_SEQ_FILTER</b> for each element in <i>seq</i>
+				with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step, the auxiliary <i>data</i>, 
+				and the current element in <i>seq</i>.&nbsp; This macro must return a integral 
+				value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.&nbsp; If this 
+				predicate expands to non-zero for a certain element, that element is included 
+				in the resulting <i>seq</i>.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>pred</i>.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be filtered.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro expands <i>pred</i> for each element in <i>seq</i>.&nbsp; It builds 
+			a new <i>seq</i> out of each element for which <i>pred</i> returns non-zero.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li>
+				<a href="seq_filter.html">BOOST_PP_SEQ_FILTER</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/filter.html">&lt;boost/preprocessor/seq/filter.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_first_n.html b/doc/ref/seq_first_n.html
new file mode 100644
index 0000000..5c8e9e6
--- /dev/null
+++ b/doc/ref/seq_first_n.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+        <title>BOOST_PP_SEQ_FIRST_N</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+		<div style="margin-left: 0px;">
+			The <b>BOOST_PP_SEQ_FIRST_N</b> macro expands to a <i>seq</i> of the first <i>n</i>
+			elements of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FIRST_N</b>(<i>n</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>n</dt>
+			<dd>
+				The number of elements to extract.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> from which the elements are extracted.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro extracts <i>n</i> elements from the beginning of <i>seq</i> and 
+			returns them as a new <i>seq</i>
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/first_n.html">&lt;boost/preprocessor/seq/first_n.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>#include &lt;<a href="../headers/seq/first_n.html">boost/preprocessor/seq/first_n.hpp</a>&gt;<br><br>#define SEQ (a)(b)(c)(d)(e)<br><br><a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>(2, SEQ) // expands to (a)(b)<br></pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/seq_fold_left.html b/doc/ref/seq_fold_left.html
new file mode 100644
index 0000000..e9feb3d
--- /dev/null
+++ b/doc/ref/seq_fold_left.html
@@ -0,0 +1,90 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOLD_LEFT</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOLD_LEFT</b> macro folds (or accumulates) the elements of 
+			a <i>seq</i> left-to-right.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOLD_LEFT</b>(<i>op</i>, <i>state</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).&nbsp; 
+				This macro is called for each element in <i>seq</i>--each time returning a new <i>state</i>.&nbsp; 
+				This operation is expanded by <b>BOOST_PP_SEQ_FOLD_LEFT</b> with the next 
+				available fold step, the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be folded.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			For the <i>seq</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
+			<div>
+				<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>0</i>),
+				<i>1</i>), <i>2</i>)
+			</div>
+		</div>
+		<div>
+			For maximum efficiency, <b>BOOST_PP_SEQ_FOLD_LEFT</b> can be reentered with <b>BOOST_PP_SEQ_FOLD_LEFT_<i>s</i></b>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_fold_left_s.html">BOOST_PP_SEQ_FOLD_LEFT_<i>s</i></a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/fold_left.html">&lt;boost/preprocessor/seq/fold_left.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/fold_left.html">boost/preprocessor/seq/fold_left.hpp</a>&gt;
+
+#define SEQ (b)(o)(o)(s)(t)
+
+#define OP(s, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a>(OP, <a href="seq_head.html">BOOST_PP_SEQ_HEAD</a>(SEQ), <a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a>(SEQ)) // expands to boost
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_fold_left_s.html b/doc/ref/seq_fold_left_s.html
new file mode 100644
index 0000000..936b674
--- /dev/null
+++ b/doc/ref/seq_fold_left_s.html
@@ -0,0 +1,96 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOLD_LEFT_s</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOLD_LEFT_<i>s</i></b> macro folds (or accumulates) the 
+			elements of a <i>seq</i> left-to-right.&nbsp; It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b>
+			with maximum efficiency.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOLD_LEFT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>s</dt>
+			<dd>
+				The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).&nbsp; 
+				This macro is called for each element in <i>seq</i>--each time returning a new <i>state</i>.&nbsp; 
+				This operation is expanded by <b>BOOST_PP_SEQ_FOLD_LEFT</b> with the next 
+				available fold step, the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be folded.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			For the <i>seq</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
+			<div>
+				<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>0</i>),
+				<i>1</i>), <i>2</i>)
+			</div>
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/fold_left.html">&lt;boost/preprocessor/seq/fold_left.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/fold_left.html">boost/preprocessor/seq/fold_left.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/seq.html">boost/preprocessor/seq/seq.hpp</a>&gt;
+
+#define S1 (a)(b)(c)
+#define S2 (S1)(S1)(S1)
+
+#define OP(s, state, x) state (<a href="seq_fold_left_s.html">BOOST_PP_SEQ_FOLD_LEFT_</a> ## s(OP_2, _, x))
+#define OP_2(s, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a>(OP, <a href="seq_nil.html">BOOST_PP_SEQ_NIL</a>, S2)
+// expands to (_abc)(_abc)(_abc)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_fold_right.html b/doc/ref/seq_fold_right.html
new file mode 100644
index 0000000..0cd8514
--- /dev/null
+++ b/doc/ref/seq_fold_right.html
@@ -0,0 +1,92 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOLD_RIGHT</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOLD_RIGHT</b> macro folds (or accumulates) the elements of 
+			a <i>seq</i> right-to-left.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOLD_RIGHT</b>(<i>op</i>, <i>state</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).&nbsp; 
+				This macro is called for each element in <i>seq</i>--each time returning a new <i>state</i>.&nbsp; 
+				This operation is expanded by <b>BOOST_PP_SEQ_FOLD_RIGHT</b> with the next 
+				available fold step, the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be folded.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			For the <i>seq</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
+			<div>
+				<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>2</i>),
+				<i>1</i>), <i>0</i>)
+			</div>
+		</div>
+		<div>
+			For maximum efficiency, <b>BOOST_PP_SEQ_FOLD_RIGHT</b> can be reentered with <b>BOOST_PP_SEQ_FOLD_RIGHT_<i>s</i></b>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_fold_right_s.html">BOOST_PP_SEQ_FOLD_RIGHT_<i>s</i></a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/fold_right.html">&lt;boost/preprocessor/seq/fold_right.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/elem.html">boost/preprocessor/seq/elem.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/fold_right.html">boost/preprocessor/seq/fold_right.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/pop_back.html">boost/preprocessor/seq/pop_back.hpp</a>&gt;
+
+#define SEQ (t)(s)(o)(o)(b)
+
+#define OP(s, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="seq_fold_right.html">BOOST_PP_SEQ_FOLD_RIGHT</a>(OP, <a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(4, SEQ), <a href="seq_pop_back.html">BOOST_PP_SEQ_POP_BACK</a>(SEQ)) // expands to boost
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_fold_right_s.html b/doc/ref/seq_fold_right_s.html
new file mode 100644
index 0000000..99c348b
--- /dev/null
+++ b/doc/ref/seq_fold_right_s.html
@@ -0,0 +1,97 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOLD_RIGHT_s</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOLD_RIGHT_<i>s</i></b> macro folds (or accumulates) the 
+			elements of a <i>seq</i> right-to-left.&nbsp; It reenters <b>BOOST_PP_SEQ_FOLD_RIGHT</b>
+			with maximum efficiency.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOLD_RIGHT_</b> ## <i>s</i>(<i>op</i>, <i>state</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>s</dt>
+			<dd>
+				The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary operation of the form <i>op</i>(<i>s</i>, <i>state</i>, <i>elem</i>).&nbsp; 
+				This macro is called for each element in <i>seq</i>--each time returning a new <i>state</i>.&nbsp; 
+				This operation is expanded by <b>BOOST_PP_SEQ_FOLD_RIGHT</b> with the next 
+				available fold step, the current <i>state</i>, and the current element.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state of the fold.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be folded.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			For the <i>seq</i>, (<i>0</i>)(<i>1</i>)(<i>2</i>), this macro expands to:
+			<div>
+				<i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>op</i>(<i>s</i>, <i>state</i>, <i>2</i>),
+				<i>1</i>), <i>0</i>)
+			</div>
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_fold_right.html">BOOST_PP_SEQ_FOLD_RIGHT</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/fold_right.html">&lt;boost/preprocessor/seq/fold_right.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/fold_left.html">boost/preprocessor/seq/fold_left.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/fold_right.html">boost/preprocessor/seq/fold_right.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/seq.html">boost/preprocessor/seq/seq.hpp</a>&gt;
+
+#define S1 (a)(b)(c)
+#define S2 (S1)(S1)(S1)
+
+#define OP(s, state, x) state (<a href="seq_fold_left_s.html">BOOST_PP_SEQ_FOLD_RIGHT_</a> ## s(OP_2, _, x))
+#define OP_2(s, state, x) <a href="cat.html">BOOST_PP_CAT</a>(state, x)
+
+<a href="seq_fold_left.html">BOOST_PP_SEQ_FOLD_LEFT</a>(OP, <a href="seq_nil.html">BOOST_PP_SEQ_NIL</a>, S2)
+// expands to (_cba)(_cba)(_cba)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_for_each.html b/doc/ref/seq_for_each.html
new file mode 100644
index 0000000..1f22ff2
--- /dev/null
+++ b/doc/ref/seq_for_each.html
@@ -0,0 +1,90 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOR_EACH</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOR_EACH</b> macro repeats a macro for each element in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOR_EACH</b>(<i>macro</i>, <i>data</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>macro</dt>
+			<dd>
+				A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).&nbsp; 
+				This macro is expanded by <b>BOOST_PP_SEQ_FOR_EACH</b> with each element in <i>seq</i>.&nbsp; 
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the 
+				auxiliary <i>data</i>, and the current element.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> for which <i>macro</i> will be invoked on each element.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro is a repetition construct.&nbsp; If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), 
+			it expands to the sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, <i>data</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>,
+				<i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>c</i>)
+			</div>
+		</div>
+		<div>
+			For maximum efficiency, use <b>BOOST_PP_SEQ_FOR_EACH_R</b>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_for_each_r.html">BOOST_PP_SEQ_FOR_EACH_R</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/for_each.html">&lt;boost/preprocessor/seq/for_each.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/for_each.html">boost/preprocessor/seq/for_each.hpp</a>&gt;
+
+#define SEQ (w)(x)(y)(z)
+
+#define MACRO(r, data, elem) <a href="cat.html">BOOST_PP_CAT</a>(elem, data)
+
+<a href="seq_for_each.html">BOOST_PP_SEQ_FOR_EACH</a>(MACRO, _, SEQ) // expands to w_ x_ y_ z_
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_for_each_i.html b/doc/ref/seq_for_each_i.html
new file mode 100644
index 0000000..c24f40f
--- /dev/null
+++ b/doc/ref/seq_for_each_i.html
@@ -0,0 +1,91 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOR_EACH_I</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOR_EACH_I</b> macro repeats a macro for each element in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOR_EACH_I</b>(<i>macro</i>, <i>data</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>macro</dt>
+			<dd>
+				A macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).&nbsp; 
+				This macro is expanded by <b>BOOST_PP_SEQ_FOR_EACH_I</b> with each element in <i>seq</i>.&nbsp; 
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the 
+				auxiliary <i>data</i>, the index of the current element, and the current 
+				element.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> for which <i>macro</i> will be invoked on each element.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro is a repetition construct.&nbsp; If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), 
+			it expands to the sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, <i>data</i>, <i>0</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>,
+				<i>1</i>, <i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>2</i>, <i>c</i>)
+			</div>
+		</div>
+		<div>
+			For maximum efficiency, use <b>BOOST_PP_SEQ_FOR_EACH_I_R</a></li>
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_for_each_i_r.html">BOOST_PP_SEQ_FOR_EACH_I_R</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/for_each_i.html">&lt;boost/preprocessor/seq/for_each_i.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/for_each_i.html">boost/preprocessor/seq/for_each_i.hpp</a>&gt;
+
+#define SEQ (a)(b)(c)(d)
+
+#define MACRO(r, data, i, elem) <a href="cat.html">BOOST_PP_CAT</a>(elem, <a href="cat.html">BOOST_PP_CAT</a>(data, i))
+
+<a href="seq_for_each_i.html">BOOST_PP_SEQ_FOR_EACH_I</a>(MACRO, _, SEQ) // expands to a_0 b_1 c_2 d_3
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_for_each_i_r.html b/doc/ref/seq_for_each_i_r.html
new file mode 100644
index 0000000..2ab590e
--- /dev/null
+++ b/doc/ref/seq_for_each_i_r.html
@@ -0,0 +1,78 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOR_EACH_I_R</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOR_EACH_I_R</b> macro repeats a macro for each element in 
+			a <i>seq</i>.&nbsp; It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOR_EACH_I_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>r</dt>
+			<dd>
+				The next available <b>BOOST_PP_FOR</b> repetition.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>i</i>, <i>elem</i>).&nbsp; 
+				This macro is expanded by <b>BOOST_PP_SEQ_FOR_EACH_I</b> with each element in <i>seq</i>.&nbsp; 
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the 
+				auxiliary <i>data</i>, the index of the current element, and the current 
+				element.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> for which <i>macro</i> will be invoked on each element.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro is a repetition construct.&nbsp; If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), 
+			it expands to the sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, <i>data</i>, <i>0</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>,
+				<i>1</i>, <i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>2</i>, <i>c</i>)
+			</div>
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_for_each_i.html">BOOST_PP_SEQ_FOR_EACH_I</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/for_each_i.html">&lt;boost/preprocessor/seq/for_each_i.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_for_each_product.html b/doc/ref/seq_for_each_product.html
new file mode 100644
index 0000000..a1876f6
--- /dev/null
+++ b/doc/ref/seq_for_each_product.html
@@ -0,0 +1,100 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOR_EACH_PRODUCT</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOR_EACH_PRODUCT</b> macro repeats a macro for each 
+			cartesian product of several <i>seqs</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOR_EACH_PRODUCT</b>(<i>macro</i>, <i>seqs</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>macro</dt>
+			<dd>
+				The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>).&nbsp; This 
+				macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian 
+				product in <i>seqs</i>.&nbsp; It is expanded with the next available <b>BOOST_PP_FOR</b>
+				repetition and a <i>seq</i> containing a cartesian product.&nbsp;
+			</dd>
+			<dt>seqs</dt>
+			<dd>
+				A <i>seq</i> of <i>seqs</i> from which cartesian products are obtained.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro is a repetition construct.&nbsp; If two <i>seqs</i> are (<i>a</i>)(<i>b</i>)(<i>c</i>) 
+			and (<i>x</i>)(<i>y</i>)(<i>z</i>), this macro will produce the following 
+			sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>a</i>)(<i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \
+				<br>
+				<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>b</i>)(<i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \
+				<br>
+				<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>c</i>)(<i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>z</i>))
+			</div>
+		</div>
+		<div>
+			For maximum efficiency, use <b>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</b>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_for_each_product_r.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/for_each_product.html">&lt;boost/preprocessor/seq/for_each_product.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/for_each_product.html">boost/preprocessor/seq/for_each_product.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/to_tuple.html">boost/preprocessor/seq/to_tuple.hpp</a>&gt;
+
+#define S1 (a)(b)(c)
+#define S2 (x)(y)(z)
+#define S3 (p)(q)
+
+#define MACRO(r, product) <a href="seq_to_tuple.html">BOOST_PP_SEQ_TO_TUPLE</a>(product)
+
+<a href="seq_for_each_product.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT</a>(MACRO, (S1)(S2)(S3))
+   // expands to:
+   //   (a, x, p) (a, x, q) (a, y, p) (a, y, q) (a, z, p) (a, z, q)
+   //   (b, x, p) (b, x, q) (b, y, p) (b, y, q) (b, z, p) (b, z, q)
+   //   (c, x, p) (c, x, q) (c, y, p) (c, y, q) (c, z, p) (c, z, q)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_for_each_product_r.html b/doc/ref/seq_for_each_product_r.html
new file mode 100644
index 0000000..fa2a989
--- /dev/null
+++ b/doc/ref/seq_for_each_product_r.html
@@ -0,0 +1,81 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</b> macro repeats a macro for each 
+			cartesian product of several <i>seqs</i>.&nbsp; It reenters <b>BOOST_PP_FOR</b> 
+			with maximum efficiency.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R</b>(<i>r</i>, <i>macro</i>, <i>seqs</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>r</dt>
+			<dd>
+				The next available <b>BOOST_PP_FOR</b> repetition.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				The binary macro of the form <i>macro</i>(<i>r</i>, <i>product</i>).&nbsp; This 
+				macro is expanded by <b>BOOST_PP_FOR_EACH_PRODUCT</b> with each cartesian 
+				product in <i>seqs</i>.&nbsp; It is expanded with the next available <b>BOOST_PP_FOR</b>
+				repetition and a <i>seq</i> containing a cartesian product.&nbsp;
+			</dd>
+			<dt>seqs</dt>
+			<dd>
+				A <i>seq</i> of <i>seqs</i> from which cartesian products are obtained.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro is a repetition construct.&nbsp; If two <i>seqs</i> are (<i>a</i>)(<i>b</i>)(<i>c</i>) 
+			and (<i>x</i>)(<i>y</i>)(<i>z</i>), this macro will produce the following 
+			sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>a</i>)(<i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>a</i>)(<i>z</i>)) \
+				<br>
+				<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>b</i>)(<i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>b</i>)(<i>z</i>)) \
+				<br>
+				<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>x</i>)) <i>macro</i>(<i>r</i>, (<i>c</i>)(<i>y</i>))
+				<i>macro</i>(<i>r</i>, (<i>c</i>)(<i>z</i>))
+			</div>
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_for_each_product.html">BOOST_PP_SEQ_FOR_EACH_PRODUCT</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/for_each_product.html">&lt;boost/preprocessor/seq/for_each_product.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_for_each_r.html b/doc/ref/seq_for_each_r.html
new file mode 100644
index 0000000..45462e8
--- /dev/null
+++ b/doc/ref/seq_for_each_r.html
@@ -0,0 +1,77 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_FOR_EACH_R</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_FOR_EACH_R</b> macro repeats a macro for each element in a <i>seq</i>.&nbsp; 
+			It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_FOR_EACH_R</b>(<i>r</i>, <i>macro</i>, <i>data</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>r</dt>
+			<dd>
+				The next available <b>BOOST_PP_FOR</b> repetition.
+			</dd>
+			<dt>macro</dt>
+			<dd>
+				A ternary macro of the form <i>macro</i>(<i>r</i>, <i>data</i>, <i>elem</i>).&nbsp; 
+				This macro is expanded by <b>BOOST_PP_SEQ_FOR_EACH</b> with each element in <i>seq</i>.&nbsp; 
+				It is expanded with the next available <b>BOOST_PP_FOR</b> repetition, the 
+				auxiliary <i>data</i>, and the current element.
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>macro</i>.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> for which <i>macro</i> will be invoked on each element.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro is a repetition construct.&nbsp; If <i>seq</i> is (<i>a</i>)(<i>b</i>)(<i>c</i>), 
+			it expands to the sequence:
+			<div>
+				<i>macro</i>(<i>r</i>, <i>data</i>, <i>a</i>) <i>macro</i>(<i>r</i>, <i>data</i>,
+				<i>b</i>) <i>macro</i>(<i>r</i>, <i>data</i>, <i>c</i>)
+			</div>
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_for_each.html">BOOST_PP_SEQ_FOR_EACH</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/for_each.html">&lt;boost/preprocessor/seq/for_each.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_head.html b/doc/ref/seq_head.html
new file mode 100644
index 0000000..93f0fd4
--- /dev/null
+++ b/doc/ref/seq_head.html
@@ -0,0 +1,63 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_HEAD</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_HEAD</b> macro expands to the first element in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_HEAD</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> from which the first element is extracted.
+			</dd>
+		</dl>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/seq.html">&lt;boost/preprocessor/seq/seq.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/seq.html">boost/preprocessor/seq/seq.hpp</a>&gt;
+
+#define SEQ (a)(b)(c)
+
+<a href="seq_head.html">BOOST_PP_SEQ_HEAD</a>(SEQ) // expands to a
+<a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a>(SEQ) // expands to (b)(c)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_insert.html b/doc/ref/seq_insert.html
new file mode 100644
index 0000000..d339ea8
--- /dev/null
+++ b/doc/ref/seq_insert.html
@@ -0,0 +1,70 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_INSERT</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_INSERT</b> macro inserts an element into an <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_INSERT</b>(<i>seq</i>, <i>i</i>, <i>elem</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> into which an element is to be inserted.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based position in <i>seq</i> where an element is to be inserted.&nbsp; 
+				Valid values range from <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) - <i>1</i>.
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The element to insert.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro inserts <i>elem</i> before the element at index <i>i</i>.
+		</div>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/insert.html">&lt;boost/preprocessor/seq/insert.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/insert.html">boost/preprocessor/seq/insert.hpp</a>&gt;
+
+#define SEQ (a)(b)(d)
+
+<a href="seq_insert.html">BOOST_PP_SEQ_INSERT</a>(SEQ, 2, c) // expands to (a)(b)(c)(d)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_nil.html b/doc/ref/seq_nil.html
new file mode 100644
index 0000000..bb446ed
--- /dev/null
+++ b/doc/ref/seq_nil.html
@@ -0,0 +1,81 @@
+<html>
+<head>
+        <title>BOOST_PP_SEQ_NIL</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+		<div style="margin-left: 0px;">
+			The <b>BOOST_PP_SEQ_NIL</b> macro is a placeholder macro for an empty <i>seq</i>.&nbsp; 
+			It is only valid if it's elements are appended to the end of this empty 
+			"seq."&nbsp;
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_NIL</b>
+		</div>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro is a utility macro intended as a empty starting point for appending 
+			to the tail.&nbsp; It is <i>not</i> a nil <i>seq</i>.&nbsp; When an element is 
+			appended to this macro, it expands on the element and to the element--thereby 
+			removing itself.&nbsp; For example, both <b>BOOST_PP_SEQ_NIL</b>(<i>x</i>) and <b>BOOST_PP_SEQ_PUSH_BACK</b>(<b>BOOST_PP_SEQ_NIL</b>,
+			<i>x</i>) expand to <i>x</i>.
+		</div>
+		<div>
+			If any <b>BOOST_PP_SEQ_</b>* macro (other than <b>BOOST_PP_SEQ_PUSH_BACK</b>) 
+			is invoked with an argument that contains <b>BOOST_PP_SEQ_NIL</b>, the behavior 
+			is undefined and in most cases will result in obscure errors.
+		</div>
+		<div>
+			The closest thing available to <b>BOOST_PP_SEQ_NIL</b> for appending to the 
+			head is <b>BOOST_PP_EMPTY</b>.&nbsp; After all the elements have been 
+			prepended, empty parenthesis can be invoked on the tail to remove the <b>BOOST_PP_EMPTY</b>.&nbsp; 
+			As with <b>BOOST_PP_SEQ_NIL</b>, passing an argument that contains <b>BOOST_PP_EMPTY</b>
+			to any <b>BOOST_PP_SEQ_</b>* macro (other than <b>BOOST_PP_SEQ_PUSH_FRONT</b>) 
+			is undefined.&nbsp;
+		</div>
+		<div>
+			(It is also possible to start with an extra element and pop it off when you 
+			have finished appending to it.)
+		</div>
+		<div>
+			In C99, neither of these macros are necessary since it is legal to pass empty 
+			arguments.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="empty.html">BOOST_PP_EMPTY</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/seq.html">&lt;boost/preprocessor/seq/seq.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>#include &lt;<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/push_back.html">boost/preprocessor/seq/push_back.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/push_front.html">boost/preprocessor/seq/push_front.hpp</a>&gt;<br>#include &lt;<a href="../headers/seq/seq.html">boost/preprocessor/seq/seq.hpp</a>&gt;<br><br>#define SEQ_L <a href="seq_nil.html">BOOST_PP_SEQ_NIL</a>
+#define SEQ_R <a href="empty.html">BOOST_PP_EMPTY</a>
+<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(<br>   <a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(SEQ_L, a), b<br>)<br><br>// expands to (a)(b)<br><br><a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(<br>   <a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(SEQ_R, a), b<br>)()<br><br>// expands to (b)(a)<br></pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/seq_pop_back.html b/doc/ref/seq_pop_back.html
new file mode 100644
index 0000000..3e788e5
--- /dev/null
+++ b/doc/ref/seq_pop_back.html
@@ -0,0 +1,68 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_POP_BACK</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_POP_BACK</b> macro pops an element from the end of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_POP_BACK</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to pop an element from.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro returns <i>seq</i> after removing the last element.&nbsp;
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_pop_front.html">BOOST_PP_SEQ_POP_FRONT</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/pop_back.html">&lt;boost/preprocessor/seq/pop_back.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/pop_back.html">boost/preprocessor/seq/pop_back.hpp</a>&gt;
+
+#define SEQ (a)(b)(c)
+
+<a href="seq_pop_back.html">BOOST_PP_SEQ_POP_BACK</a>(SEQ) // expands to (a)(b)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_pop_front.html b/doc/ref/seq_pop_front.html
new file mode 100644
index 0000000..9a575c0
--- /dev/null
+++ b/doc/ref/seq_pop_front.html
@@ -0,0 +1,68 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_POP_FRONT</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_POP_FRONT</b> macro pops an element from the beginning of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_POP_FRONT</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to pop an element from.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro returns <i>seq</i> after removing the first element.&nbsp;
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_pop_back.html">BOOST_PP_SEQ_POP_BACK</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/pop_front.html">&lt;boost/preprocessor/seq/pop_front.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/pop_front.html">boost/preprocessor/seq/pop_front.hpp</a>&gt;
+
+#define SEQ (a)(b)(c)
+
+<a href="seq_pop_front.html">BOOST_PP_SEQ_POP_FRONT</a>(SEQ) // expands to (b)(c)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_push_back.html b/doc/ref/seq_push_back.html
new file mode 100644
index 0000000..bb7c173
--- /dev/null
+++ b/doc/ref/seq_push_back.html
@@ -0,0 +1,76 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_PUSH_BACK</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_PUSH_BACK</b> macro pushes an element onto the end of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_PUSH_BACK</b>(<i>seq</i>, <i>elem</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> onto which <i>elem</i> is pushed.
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The element to push onto the end of <i>seq</i>.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro returns <i>seq</i> after appending <i>elem</i>.&nbsp;
+		</div>
+		<div>
+			This macro is an explicit form of directly appending an element.&nbsp; In other 
+			words, <b>BOOST_PP_SEQ_PUSH_BACK</b>(<i>seq</i>, <i>x</i>) is equivalent to <i>seq</i>(<i>x</i>).
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/push_back.html">&lt;boost/preprocessor/seq/push_back.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/push_back.html">boost/preprocessor/seq/push_back.hpp</a>&gt;
+
+#define SEQ (a)(b)
+
+<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a>(SEQ, c) // expands to (a)(b)(c)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_push_front.html b/doc/ref/seq_push_front.html
new file mode 100644
index 0000000..5231639
--- /dev/null
+++ b/doc/ref/seq_push_front.html
@@ -0,0 +1,78 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_PUSH_FRONT</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_PUSH_FRONT</b> macro pushes an element onto the beginning 
+			of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_PUSH_FRONT</b>(<i>seq</i>, <i>elem</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> onto which <i>elem</i> is pushed.
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The element to push onto the beginning of <i>seq</i>.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro returns <i>seq</i> after prepending <i>elem</i>.&nbsp;
+		</div>
+		<div>
+			This macro is an explicit form of directly prepending an element.&nbsp; In 
+			other words, <b>BOOST_PP_SEQ_PUSH_FRONT</b>(<i>seq</i>, <i>x</i>) is equivalent 
+			to (<i>x</i>)<i>seq</i>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_push_back.html">BOOST_PP_SEQ_PUSH_BACK</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/push_front.html">&lt;boost/preprocessor/seq/push_front.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/push_front.html">boost/preprocessor/seq/push_front.hpp</a>&gt;
+
+#define SEQ (b)(c)
+
+<a href="seq_push_front.html">BOOST_PP_SEQ_PUSH_FRONT</a>(SEQ, a) // expands to (a)(b)(c)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_remove.html b/doc/ref/seq_remove.html
new file mode 100644
index 0000000..c2a36f0
--- /dev/null
+++ b/doc/ref/seq_remove.html
@@ -0,0 +1,66 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_REMOVE</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_REMOVE</b> macro removes an element from a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_REMOVE</b>(<i>seq</i>, <i>i</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> from which an element is to be removed.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based position in <i>seq</i> of the element to be removed.&nbsp; Valid 
+				values range from <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) - <i>1</i>.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro returns <i>seq</i> after removing the element at index <i>i</i>.
+		</div>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/remove.html">&lt;boost/preprocessor/seq/remove.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/remove.html">boost/preprocessor/seq/remove.hpp</a>&gt;
+
+#define SEQ (a)(b)(x)(c)
+
+<a href="seq_remove.html">BOOST_PP_SEQ_REMOVE</a>(SEQ, 2) // expands to (a)(b)(c)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_replace.html b/doc/ref/seq_replace.html
new file mode 100644
index 0000000..9a64e5d
--- /dev/null
+++ b/doc/ref/seq_replace.html
@@ -0,0 +1,71 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_REPLACE</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_REPLACE</b> macro replaces an element in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_REPLACE</b>(<i>seq</i>, <i>i</i>, <i>elem</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> in which an element is to be replaced.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based position in <i>seq</i> of the element to be replaced.&nbsp; 
+				Valid values range from <i>0</i> to <b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>) - <i>1</i>.
+			</dd>
+			<dt>elem</dt>
+			<dd>
+				The element to replace the element at index <i>i</i> within <i>seq</i>.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro returns <i>seq</i> after replacing the element at index <i>i</i> with
+			<i>elem</i>.
+		</div>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/replace.html">&lt;boost/preprocessor/seq/replace.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/replace.html">boost/preprocessor/seq/replace.hpp</a>&gt;
+
+#define SEQ (a)(b)(x)(d)
+
+<a href="seq_replace.html">BOOST_PP_SEQ_REPLACE</a>(SEQ, 2, c) // expands to (a)(b)(c)(d)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_rest_n.html b/doc/ref/seq_rest_n.html
new file mode 100644
index 0000000..808ef9b
--- /dev/null
+++ b/doc/ref/seq_rest_n.html
@@ -0,0 +1,55 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_SEQ_REST_N</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left: 0px;"> The <b>BOOST_PP_SEQ_REST_N</b> macro
+      expands to a <i>seq</i> of all but the first <i>n</i> elements of a <i>seq</i>.
+    </div>
+    <h4> Usage </h4>
+    <div class="code"> <b>BOOST_PP_SEQ_REST_N</b>(<i>n</i>, <i>seq</i>) </div>
+    <h4> Arguments </h4>
+    <dl>
+      <dt>n</dt>
+      <dd> The number of elements to remove. </dd>
+      <dt>seq</dt>
+      <dd> The <i>seq</i> from which the elements are to be removed. </dd>
+    </dl>
+    <h4> Remarks </h4>
+    <div> This macro extracts <i>n</i> elements from the beginning of <i>seq</i>
+      and returns the remainder of <i>seq</i> as a new <i>seq.<br>
+        <br>
+      </i>It is undefined behavior if <i>n </i>is greater or equal to the size
+      of the <i>seq</i>. </div>
+    <h4> See Also </h4>
+    <ul>
+      <li> <a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a></li>
+    </ul>
+    <h4> Requirements </h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/seq/rest_n.html">&lt;boost/preprocessor/seq/rest_n.hpp&gt;</a>
+    </div>
+    <h4> Sample Code </h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>&gt;<br>#include &lt;<a
+href="../headers/seq/elem.html">boost/preprocessor/seq/elem.hpp</a>&gt;<br>#include &lt;<a
+href="../headers/seq/first_n.html">boost/preprocessor/seq/first_n.hpp</a>&gt;<br>#include &lt;<a
+href="../headers/seq/rest_n.html">boost/preprocessor/seq/rest_n.hpp</a>&gt;<br>#include &lt;<a
+href="../headers/seq/size.html">boost/preprocessor/seq/size.hpp</a>&gt;<br><br>#define NUMBERS \<br>   (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \<br>   (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \<br>   (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \<br>   (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \<br>   (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \<br>   (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \<br>   (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \<br>   (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \<br>   (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \<br>   (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \<br>   (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \<br>   (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \<br>   (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \<br>   (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \<br>   (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \<br>   (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \<br>   (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \<br>   (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \<br>   (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \<br>   (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \<br>   (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \<br>   (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \<br>   (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \<br>   (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \<br>   (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \<br>   (250)(251)(252)(253)(254)(255)(256) \<br>   /**/<br><br>#define SUPER_ADD(x, y) <a
+href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(y, <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>(x, NUMBERS))<br><br>SUPER_ADD(100, 100) // expands to 200<br><br>#define SUPER_SUB(x, y) \<br>   <a
+href="seq_size.html">BOOST_PP_SEQ_SIZE</a>( \<br>      <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>( \<br>         <a
+href="inc.html">BOOST_PP_INC</a>(y), \<br>         <a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>( \<br>            <a
+href="inc.html">BOOST_PP_INC</a>(x), NUMBERS \<br>         ) \<br>      ) \<br>   ) \<br>   /**/<br><br>SUPER_SUB(67, 25) // expands to 42</pre>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/seq_reverse.html b/doc/ref/seq_reverse.html
new file mode 100644
index 0000000..eb7cf72
--- /dev/null
+++ b/doc/ref/seq_reverse.html
@@ -0,0 +1,68 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_REVERSE</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_REVERSE</b> macro reverses a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_REVERSE</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be reversed.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			For maximum efficiency, use <b>BOOST_PP_SEQ_REVERSE_S</b>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_reverse_s.html">BOOST_PP_SEQ_REVERSE_S</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/reverse.html">&lt;boost/preprocessor/seq/reverse.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/reverse.html">boost/preprocessor/seq/reverse.hpp</a>&gt;
+
+#define SEQ (1)(2)(3)
+
+<a href="seq_reverse.html">BOOST_PP_SEQ_REVERSE</a>(SEQ) // expands to (3)(2)(1)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_reverse_s.html b/doc/ref/seq_reverse_s.html
new file mode 100644
index 0000000..0d32199
--- /dev/null
+++ b/doc/ref/seq_reverse_s.html
@@ -0,0 +1,55 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_REVERSE_S</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_REVERSE_S</b> macro reverses a <i>seq</i>.&nbsp; It 
+			reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with maximum efficiency.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_REVERSE_S</b>(<i>s</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>s</dt>
+			<dd>
+				The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be reversed.
+			</dd>
+		</dl>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_reverse.html">BOOST_PP_SEQ_REVERSE</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/reverse.html">&lt;boost/preprocessor/seq/reverse.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_size.html b/doc/ref/seq_size.html
new file mode 100644
index 0000000..b9104de
--- /dev/null
+++ b/doc/ref/seq_size.html
@@ -0,0 +1,55 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_SIZE</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_SIZE</b> macro expands to the size of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_SIZE</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> whose size is to be calculated.
+			</dd>
+		</dl>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/size.html">&lt;boost/preprocessor/seq/size.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/size.html">boost/preprocessor/seq/size.hpp</a>&gt;
+
+#define SEQ (a)(b)(c)
+
+<a href="seq_size.html">BOOST_PP_SEQ_SIZE</a>(SEQ) // expands to 3
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_subseq.html b/doc/ref/seq_subseq.html
new file mode 100644
index 0000000..349546f
--- /dev/null
+++ b/doc/ref/seq_subseq.html
@@ -0,0 +1,69 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_SUBSEQ</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_SUBSEQ</b> macro expands to a subseq of elements in a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_SUBSEQ</b>(<i>seq</i>, <i>i</i>, <i>len</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> whose size is to be calculated.
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The index of the first element of the subseq to be extracted.
+			</dd>
+			<dt>len</dt>
+			<dd>
+				The length of the subseq to be extracted.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro expands to a <i>seq</i> extracted from <i>seq</i>.
+		</div>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/subseq.html">&lt;boost/preprocessor/seq/subseq.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/subseq.html">boost/preprocessor/seq/subseq.hpp</a>&gt;
+
+#define SEQ (0)(1)(2)(3)(4)(5)
+
+<a href="seq_subseq.html">BOOST_PP_SEQ_SUBSEQ</a>(SEQ, 2, 3) // expands to (2)(3)(4)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_tail.html b/doc/ref/seq_tail.html
new file mode 100644
index 0000000..8c1bb59
--- /dev/null
+++ b/doc/ref/seq_tail.html
@@ -0,0 +1,63 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_TAIL</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_TAIL</b> macro expands to all but the first element of a <i>seq</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_TAIL</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> from which the tail is extracted.
+			</dd>
+		</dl>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_head.html">BOOST_PP_SEQ_HEAD</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/seq.html">&lt;boost/preprocessor/seq/seq.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/seq.html">boost/preprocessor/seq/seq.hpp</a>&gt;
+
+#define SEQ (a)(b)(c)
+
+<a href="seq_head.html">BOOST_PP_SEQ_HEAD</a>(SEQ) // expands to a
+<a href="seq_tail.html">BOOST_PP_SEQ_TAIL</a>(SEQ) // expands to (b)(c)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_to_array.html b/doc/ref/seq_to_array.html
new file mode 100644
index 0000000..86d344e
--- /dev/null
+++ b/doc/ref/seq_to_array.html
@@ -0,0 +1,55 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_TO_ARRAY</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_TO_ARRAY</b> macro converts a <i>seq</i> to an <i>array</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_TO_ARRAY</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be converted.
+			</dd>
+		</dl>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/to_array.html">&lt;boost/preprocessor/seq/to_array.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/to_array.html">boost/preprocessor/seq/to_array.hpp</a>&gt;
+
+#define SEQ (a)(b)(c)
+
+<a href="seq_to_array.html">BOOST_PP_SEQ_TO_ARRAY</a>(SEQ) // expands to (3, (a, b, c))
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_to_list.html b/doc/ref/seq_to_list.html
new file mode 100644
index 0000000..b05ceec
--- /dev/null
+++ b/doc/ref/seq_to_list.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+  <title>BOOST_PP_SEQ_TO_LIST</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_SEQ_TO_LIST</b>
+macro converts a <i>seq</i> to a <i>list</i>. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_SEQ_TO_LIST</b>(<i>seq</i>)
+</div>
+<h4>Arguments</h4>
+<dl><dt>seq</dt>
+  <dd> The <i>seq</i> to be converted. </dd>
+</dl><b>See Also</b>
+<ul>
+  <li><a href="limit_seq.html">BOOST_PP_LIMIT_SEQ</a></li>
+</ul>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/seq/to_list.html">&lt;boost/preprocessor/seq/to_list.hpp&gt;</a>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;<a href="../headers/seq/to_list.html">boost/preprocessor/seq/to_list.hpp</a>&gt;<br><br><a href="seq_to_list.html">BOOST_PP_SEQ_TO_LIST</a>((x)(y)(z))<br>   // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/seq_to_tuple.html b/doc/ref/seq_to_tuple.html
new file mode 100644
index 0000000..03adf0d
--- /dev/null
+++ b/doc/ref/seq_to_tuple.html
@@ -0,0 +1,55 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_TO_TUPLE</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_TO_TUPLE</b> macro converts a <i>seq</i> to an <i>tuple</i>.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_TO_TUPLE</b>(<i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be converted.
+			</dd>
+		</dl>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/to_tuple.html">&lt;boost/preprocessor/seq/to_tuple.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/seq/to_tuple.html">boost/preprocessor/seq/to_tuple.hpp</a>&gt;
+
+#define SEQ (a)(b)(c)
+
+<a href="seq_to_tuple.html">BOOST_PP_SEQ_TO_TUPLE</a>(SEQ) // expands to (a, b, c)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_transform.html b/doc/ref/seq_transform.html
new file mode 100644
index 0000000..7f2bb4f
--- /dev/null
+++ b/doc/ref/seq_transform.html
@@ -0,0 +1,93 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_TRANSFORM</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_TRANSFORM</b> macro transforms each element in a <i>seq</i> 
+			according to a supplied transformation.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_TRANSFORM</b>(<i>op</i>, <i>data</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>op</dt>
+			<dd>
+				A ternary predicate of the form <i>op</i>(<i>s</i>, <i>data</i>, <i>elem</i>).&nbsp; 
+				This transformation is expanded by <b>BOOST_PP_SEQ_TRANSFORM</b> for each 
+				element in <i>seq</i> with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold 
+				step, the auxiliary <i>data</i>, and the current element in <i>seq</i>.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>pred</i>.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be transformed.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro expands <i>op</i> for each element in <i>seq</i>.&nbsp; It builds a 
+			new <i>seq</i> out of the results of each call.&nbsp; If, for example, <i>seq</i>
+			is (<i>a</i>)(<i>b</i>)(<i>c</i>), this macro expands to...
+			<div>
+				(<i>op</i>(<i>d</i>, <i>data</i>, <i>a</i>))(<i>op</i>(<i>d</i>, <i>data</i>, <i>b</i>))(<i>op</i>(<i>d</i>,
+				<i>data</i>, <i>c</i>))
+			</div>
+		</div>
+		<div>
+			For maximum efficiency, use <b>BOOST_PP_SEQ_TRANSFORM_S</b>.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_transform_s.html">BOOST_PP_SEQ_TRANSFORM_S</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/transform.html">&lt;boost/preprocessor/seq/transform.hpp&gt;</a>
+		</div>
+		<h4>
+			Sample Code
+		</h4>
+		<div>
+			<pre>
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/seq/transform.html">boost/preprocessor/seq/transform.hpp</a>&gt;
+
+#define SEQ (1)(3)(2)(5)
+
+#define OP(s, data, elem) <a href="dec.html">BOOST_PP_DEC</a>(elem)
+
+<a href="seq_transform.html">BOOST_PP_SEQ_TRANSFORM</a>(OP, 3, SEQ)
+   // expands to (0)(2)(1)(4)
+</pre>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/seq_transform_s.html b/doc/ref/seq_transform_s.html
new file mode 100644
index 0000000..dd205ce
--- /dev/null
+++ b/doc/ref/seq_transform_s.html
@@ -0,0 +1,79 @@
+<html>
+	<head>
+		<title>BOOST_PP_SEQ_TRANSFORM_S</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<div style="margin-left:  0px;">
+			The <b>BOOST_PP_SEQ_TRANSFORM_S</b> macro transforms each element in a <i>seq</i>
+			according to a supplied transformation.&nbsp; It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b>
+			with maximum efficiency.
+		</div>
+		<h4>
+			Usage
+		</h4>
+		<div class="code">
+			<b>BOOST_PP_SEQ_TRANSFORM_S</b>(<i>s</i>, <i>op</i>, <i>data</i>, <i>seq</i>)
+		</div>
+		<h4>
+			Arguments
+		</h4>
+		<dl>
+			<dt>s</dt>
+			<dd>
+				The next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold step.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A ternary predicate of the form <i>op</i>(<i>s</i>, <i>data</i>, <i>elem</i>).&nbsp; 
+				This transformation is expanded by <b>BOOST_PP_SEQ_TRANSFORM</b> for each 
+				element in <i>seq</i> with the next available <b>BOOST_PP_SEQ_FOLD_LEFT</b> fold 
+				step, the auxiliary <i>data</i>, and the current element in <i>seq</i>.&nbsp;
+			</dd>
+			<dt>data</dt>
+			<dd>
+				Auxiliary data passed to <i>pred</i>.
+			</dd>
+			<dt>seq</dt>
+			<dd>
+				The <i>seq</i> to be transformed.
+			</dd>
+		</dl>
+		<h4>
+			Remarks
+		</h4>
+		<div>
+			This macro expands <i>op</i> for each element in <i>seq</i>.&nbsp; It builds a 
+			new <i>seq</i> out of the results of each call.&nbsp; If, for example, <i>seq</i>
+			is (<i>a</i>)(<i>b</i>)(<i>c</i>), this macro expands to...
+			<div>
+				(<i>op</i>(<i>d</i>, <i>data</i>, <i>a</i>))(<i>op</i>(<i>d</i>, <i>data</i>, <i>b</i>))(<i>op</i>(<i>d</i>,
+				<i>data</i>, <i>c</i>))
+			</div>
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="seq_transform.html">BOOST_PP_SEQ_TRANSFORM</a></li>
+		</ul>
+		<h4>
+			Requirements
+		</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/seq/transform.html">&lt;boost/preprocessor/seq/transform.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/ref/slot.html b/doc/ref/slot.html
new file mode 100644
index 0000000..0baada4
--- /dev/null
+++ b/doc/ref/slot.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+	<title>BOOST_PP_SLOT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_SLOT</b> macro retrieves a value previously evaluated by <b>BOOST_PP_ASSIGN_SLOT</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_SLOT</b>(<i>i</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>i</dt>
+			<dd>
+				The <i>slot</i> index to be retrieved.&nbsp;
+				This value must be in the range of <i>1</i> to <b>BOOST_PP_LIMIT_SLOT_COUNT</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			Prior to use, the <i>slot</i> at index <i>i</i> must have been assigned with <b>BOOST_PP_ASSIGN_SLOT</b>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="assign_slot.html">BOOST_PP_ASSIGN_SLOT</a></li>
+			<li><a href="limit_slot_count.html">BOOST_PP_LIMIT_SLOT_COUNT</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/slot/slot.html">&lt;boost/preprocessor/slot/slot.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/slot/slot.html">boost/preprocessor/slot/slot.hpp</a>&gt;
+
+#define X() 4
+
+#define <a href="value.html">BOOST_PP_VALUE</a> 1 + 2 + 3 + X()
+#include <a href="assign_slot.html">BOOST_PP_ASSIGN_SLOT</a>(1)
+
+#undef X
+
+<a href="slot.html">BOOST_PP_SLOT</a>(1) // expands to 10
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/stringize.html b/doc/ref/stringize.html
new file mode 100644
index 0000000..1c6f430
--- /dev/null
+++ b/doc/ref/stringize.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+	<title>BOOST_PP_STRINGIZE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_STRINGIZE</b> macro stringizes its argument after it has been expanded.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_STRINGIZE</b>(<i>text</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>text</dt>
+			<dd>
+				The text to be converted to a string literal.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			The preprocessor stringizing operator (<b>#</b>) prevents arguments from expanding.&nbsp;
+			This macro allows its argument to expand before it is stringized.
+		</div>
+<!-- <h4>See Also</h4> -->
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/stringize.html">&lt;boost/preprocessor/stringize.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>&gt;
+#include &lt;<a href="../headers/stringize.html">boost/preprocessor/stringize.hpp</a>&gt;
+
+<a href="stringize.html">BOOST_PP_STRINGIZE</a>(<a href="cat.html">BOOST_PP_CAT</a>(a, b)) // expands to "ab"
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/sub.html b/doc/ref/sub.html
new file mode 100644
index 0000000..6245d1a
--- /dev/null
+++ b/doc/ref/sub.html
@@ -0,0 +1,63 @@
+<html>
+<head>
+	<title>BOOST_PP_SUB</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_SUB</b> macro expands to the difference between its arguments.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_SUB</b>(<i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>x</dt>
+			<dd>
+				The minuend of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The subtrahend of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If the difference between <i>x</i> and <i>y</i> is less than <i>0</i>, the result is saturated to <i>0</i>.
+		</div>
+		<div>
+			Previously, this macro could not be used inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			There is no longer any such restriction.&nbsp;
+			It is more efficient, however, to use <b>BOOST_PP_SUB_D</b> in such a situation.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="sub_d.html">BOOST_PP_SUB_D</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/sub.html">&lt;boost/preprocessor/arithmetic/sub.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/sub.html">boost/preprocessor/arithmetic/sub.hpp</a>&gt;
+
+<a href="sub.html">BOOST_PP_SUB</a>(4, 3) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/sub_d.html b/doc/ref/sub_d.html
new file mode 100644
index 0000000..1142c90
--- /dev/null
+++ b/doc/ref/sub_d.html
@@ -0,0 +1,85 @@
+<html>
+<head>
+	<title>BOOST_PP_SUB_D</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_SUB_D</b> macro expands to the difference between its second and third arguments.&nbsp;
+		It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_SUB_D</b>(<i>d</i>, <i>x</i>, <i>y</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>d</dt>
+			<dd>
+				The next available <b>BOOST_PP_WHILE</b> iteration.&nbsp;
+			</dd>
+			<dt>x</dt>
+			<dd>
+				The minuend of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>y</dt>
+			<dd>
+				The subtrahend of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If the difference between <i>x</i> and <i>y</i> is less than <i>0</i>, the result is saturated to <i>0</i>.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="sub.html">BOOST_PP_SUB</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/arithmetic/sub.html">&lt;boost/preprocessor/arithmetic/sub.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/arithmetic/sub.html">boost/preprocessor/arithmetic/sub.hpp</a>&gt;
+#include &lt;<a href="../headers/control/while.html">boost/preprocessor/control/while.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define PRED(d, data) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, data)
+
+#define OP(d, data) \
+   ( \
+      <a href="dec.html">BOOST_PP_DEC</a>( \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, data) \
+      ), \
+      <a href="sub_d.html">BOOST_PP_SUB_D</a>( \
+         d, \
+         <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, data), \
+         2 \
+      ) \
+   ) \
+   /**/
+
+// decrement 'x' by 2 'n' times
+#define STRIDE(x, n) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, <a href="while.html">BOOST_PP_WHILE</a>(PRED, OP, (n, x)))
+
+STRIDE(10, 2) // expands to 6
+STRIDE(14, 6) // expands to 2
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/tuple_eat.html b/doc/ref/tuple_eat.html
new file mode 100644
index 0000000..f1d7c1c
--- /dev/null
+++ b/doc/ref/tuple_eat.html
@@ -0,0 +1,58 @@
+<html>
+  <head>
+    <title>BOOST_PP_TUPLE_EAT</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+	<div style="margin-left: 0px;">
+		The <b>BOOST_PP_TUPLE_EAT</b> macro expands to a macro that eats a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
+</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>size</dt>
+			<dd>
+				The size of the <i>tuple</i> to be eaten.&nbsp;
+				Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			The <i>size</i> argument must be the actual size of the <i>tuple</i> in the non-variadic version. <br>
+<br>For the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a>&nbsp;the
+size may be left out
+completely so that the macro can be invoked as BOOST_PP_TUPLE_EAT(); you may get a warning from some compilers, but the
+functionality will still work. If you specify a size in the variadic
+version, it will be ignored, but the warning from some compilers will
+not occur.<br>
+ </div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/tuple/eat.html">&lt;boost/preprocessor/tuple/eat.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>#include &lt;<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>&gt;<br>#include &lt;<a href="../headers/tuple/eat.html">boost/preprocessor/tuple/eat.hpp</a>&gt;<br><br>#define OP(a, b) (a b)<br><br>#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, OP, <a href="tuple_eat.html">BOOST_PP_TUPLE_EAT</a>(2))(1, 2)<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br>#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, OP, <a href="tuple_eat.html">BOOST_PP_TUPLE_EAT</a>())(1, 2)<br><br>MACRO(0) // expands to nothing<br>MACRO(1) // expands to (1, 2)<br></pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011,2013</i><br>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/tuple_elem.html b/doc/ref/tuple_elem.html
new file mode 100644
index 0000000..0f4885f
--- /dev/null
+++ b/doc/ref/tuple_elem.html
@@ -0,0 +1,65 @@
+<html>
+  <head>
+    <title>BOOST_PP_TUPLE_ELEM</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+	<div style="margin-left: 0px;">
+		The <b>BOOST_PP_TUPLE_ELEM</b> macro extracts an element from a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_TUPLE_ELEM</b>(<i>size</i>, <i>i</i>, <i>tuple</i>)<sup></sup><br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_ELEM</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
+</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>size</dt>
+			<dd>
+				The size of the <i>tuple</i>.&nbsp;
+				Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+			</dd>
+			<dt>i</dt>
+			<dd>
+				The zero-based index into the <i>tuple</i> of the element to be extracted.&nbsp;
+				Valid values range from <i>0</i> to <i>size</i> - <i>1</i>.
+			</dd>
+			<dt>tuple</dt>
+			<dd>
+				The <i>tuple</i> from which an element is to be extracted.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			The <i>size</i> argument must be the actual size of the <i>tuple</i>,
+			and <i>i</i> must be less than the size of the <i>tuple</i>. <br>
+            <br>You can
+            invoke the variadic version as BOOST_PP_TUPLE_ELEM(<i>i</i>,<i>tuple</i>) or
+            BOOST_PP_TUPLE_ELEM(<i>size</i>,<i>i</i>,<i>tuple</i>). 
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/tuple/elem.html">&lt;boost/preprocessor/tuple/elem.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;<br><br>#define TUPLE (a, b, c, d)<br><br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, TUPLE) // expands to a<br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 3, TUPLE) // expands to d<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(0, TUPLE) // expands to a in the variadic version<br><a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, TUPLE) // expands to d in the variadic version<br></pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002<br>
+        </i><i>© Copyright Edward Diener 2011,2013</i><br>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/tuple_enum.html b/doc/ref/tuple_enum.html
new file mode 100644
index 0000000..310bfff
--- /dev/null
+++ b/doc/ref/tuple_enum.html
@@ -0,0 +1,55 @@
+<html>
+  <head>
+    <title>BOOST_PP_TUPLE_ENUM</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_ENUM</b> macro&nbsp;converts a <i>tuple</i> to its comma-separated elements. The comma-separated elements are in the form of <i>variadic data</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_TUPLE_ENUM</b>(<i>size,tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_ENUM</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
+</div>
+<h4> Arguments </h4>
+<dl>
+  <dt>size</dt>
+  <dd>
+				The size of the <i>tuple</i>.&nbsp;
+				Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. <br>
+  </dd>
+  <dt>tuple</dt>
+  <dd> The <i>tuple</i> whose elements are to be converted. </dd>
+</dl>
+<h4> Remarks </h4>
+<div>
+<br>You can
+invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_ENUM(<i>tuple</i>) or
+BOOST_PP_TUPLE_ENUM(<i>size</i>,<i>tuple</i>).<br>
+</div>
+<h4>See Also</h4>
+<ul>
+<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a><br>
+</li>
+</ul>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/tuple/enum.html">&lt;boost/preprocessor/tuple/enum.hpp&gt;</a>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;<a href="../headers/tuple/enum.html">boost/preprocessor/tuple/enum.hpp</a>&gt;<br><br>#define TUPLE (B,O,O,S,T)<br><br><a href="tuple_enum.html">BOOST_PP_TUPLE_ENUM</a>(5,TUPLE) // expands to B, O, O, S, T<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_enum.html">BOOST_PP_TUPLE_ENUM</a>(TUPLE) // expands to B, O, O, S, T<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+<br>
+<i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011,2013</i><br>
+ </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/tuple_insert.html b/doc/ref/tuple_insert.html
new file mode 100644
index 0000000..0c58681
--- /dev/null
+++ b/doc/ref/tuple_insert.html
@@ -0,0 +1,54 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_INSERT</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_INSERT</b> macro
+      inserts an element into an <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_INSERT</b>(<i>tuple</i>, <i>i</i>, <i>elem</i>)
+      <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>tuple</dt>
+      <dd> The <i>tuple</i> into which an element is to be inserted. </dd>
+      <dt>i</dt>
+      <dd> The zero-based position in <i>tuple</i> where an element is to be
+        inserted.&nbsp; Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>).</dd>
+      <dt>elem</dt>
+      <dd> The element to insert. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro inserts <i>elem</i> before the element at index <i>i</i>.
+    </div>
+    <div> If the operation attempts to create an <i>tuple</i> that is larger
+      than <b>BOOST_PP_LIMIT_TUPLE</b>, the result is undefined.</div>
+    <div> This macro uses <b>BOOST_PP_WHILE</b> interally.&nbsp; Therefore, to
+      use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
+      see <b>BOOST_PP_TUPLE_INSERT_D</b>.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_insert_d.html">BOOST_PP_TUPLE_INSERT_D</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/insert.html">&lt;boost/preprocessor/tuple/insert.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/tuple/insert.html">boost/preprocessor/tuple/insert.hpp</a>&gt;
+
+#define TUPLE (a, b, d)
+
+<a href="tuple_insert.html">BOOST_PP_TUPLE_INSERT</a>(TUPLE, 2, c) // expands to (a, b, c, d)
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_insert_d.html b/doc/ref/tuple_insert_d.html
new file mode 100644
index 0000000..53fbea1
--- /dev/null
+++ b/doc/ref/tuple_insert_d.html
@@ -0,0 +1,46 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_INSERT_D</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_INSERT_D</b> macro
+      inserts an element into a <i>tuple</i>.&nbsp; It reenters <b>BOOST_PP_WHILE</b>
+      with maximum efficiency.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_INSERT_D</b>(<i>d</i>, <i>tuple</i>,
+      <i>i</i>, <i>elem</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>d</dt>
+      <dd> The next available <b>BOOST_PP_WHILE</b> iteration. </dd>
+      <dt>tuple</dt>
+      <dd> The <i>tuple</i> into which an element is to be inserted.</dd>
+      <dt>i</dt>
+      <dd> The zero-based position in <i>tuple</i> where an element is to be
+        inserted.&nbsp; Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>).</dd>
+      <dt>elem</dt>
+      <dd> The element to insert. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro inserts <i>elem</i> before the element at index <i>i</i>.
+    </div>
+    <div> If the operation attempts to create an <i>tuple</i> that is larger
+      than <b>BOOST_PP_LIMIT_TUPLE</b>, the result is undefined.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_insert.html">BOOST_PP_TUPLE_INSERT</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/insert.html">&lt;boost/preprocessor/tuple/insert.hpp&gt;</a>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_pop_back.html b/doc/ref/tuple_pop_back.html
new file mode 100644
index 0000000..63df90a
--- /dev/null
+++ b/doc/ref/tuple_pop_back.html
@@ -0,0 +1,48 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_POP_BACK</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_POP_BACK</b> macro
+      pops an element from the end of an <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_POP_BACK</b>(<i>tuple</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>tuple</dt>
+      <dd>The <i>tuple</i> to pop an element from.</dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div style="background-color: white;"> This macro returns <i>tuple</i>
+      after removing the last element.&nbsp; If <i>tuple</i> has only a single
+      element, it remains unchanged since a&nbsp;<i>tuple </i>must have at
+      least one element.</div>
+    <div> This macro uses <b>BOOST_PP_REPEAT</b> internally.&nbsp; Therefore,
+      to use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>,
+      see <b>BOOST_PP_TUPLE_POP_BACK_Z</b> </div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_pop_back_z.html">BOOST_PP_TUPLE_POP_BACK_Z</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/pop_back.html">&lt;boost/preprocessor/tuple/pop_back.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/tuple/pop_back.html">boost/preprocessor/tuple/pop_back.hpp</a>&gt;
+
+#define TUPLE (a, b, c)
+
+<a href="tuple_pop_back.html">BOOST_PP_TUPLE_POP_BACK</a>(TUPLE) // expands to (a, b)
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_pop_back_z.html b/doc/ref/tuple_pop_back_z.html
new file mode 100644
index 0000000..99b26c6
--- /dev/null
+++ b/doc/ref/tuple_pop_back_z.html
@@ -0,0 +1,40 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_POP_BACK_Z</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_POP_BACK_Z</b> macro
+      pops an element from the end of an <i>tuple</i>.&nbsp; It reenters <b>BOOST_PP_REPEAT</b>
+      with maximum efficiency. </div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_POP_BACK_Z</b>(<i>z</i>, <i>tuple</i>)
+      <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>z</dt>
+      <dd> The next available <b>BOOST_PP_REPEAT</b> dimension. </dd>
+      <dt>tuple</dt>
+      <dd> The <i>tuple</i> to pop an element from.</dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro returns <i>tuple</i> after removing the last
+      element.&nbsp; If <i>tuple</i> has only a single element, it remains
+      unchanged since a&nbsp;<i>tuple </i>must have at least one element.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_pop_back.html">BOOST_PP_TUPLE_POP_BACK</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/pop_back.html">&lt;boost/preprocessor/tuple/pop_back.hpp&gt;</a>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_pop_front.html b/doc/ref/tuple_pop_front.html
new file mode 100644
index 0000000..ca388ce
--- /dev/null
+++ b/doc/ref/tuple_pop_front.html
@@ -0,0 +1,47 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_POP_FRONT</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_POP_FRONT</b> macro
+      pops an element from the beginning of a <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_POP_FRONT</b>(<i>tuple</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>tuple</dt>
+      <dd> The <i>tuple</i> to pop an element from.</dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro returns <i>tuple</i> after removing the first
+      element.&nbsp; If <i>tuple</i> has only a single element, it remains
+      unchanged since a&nbsp;<i>tuple </i>must have at least one element.</div>
+    <div> This macro uses <b>BOOST_PP_REPEAT</b> internally.&nbsp; Therefore,
+      to use the <i>z</i> parameter passed from other macros that use <b>BOOST_PP_REPEAT</b>,
+      see <b>BOOST_PP_TUPLE_POP_FRONT_Z</b> </div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_pop_front_z.html">BOOST_PP_TUPLE_POP_FRONT_Z</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/pop_front.html">&lt;boost/preprocessor/tuple/pop_front.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/tuple/pop_front.html">boost/preprocessor/tuple/pop_front.hpp</a>&gt;
+
+#define TUPLE (a, b, c)
+
+<a href="tuple_pop_front.html">BOOST_PP_TUPLE_POP_FRONT</a>(TUPLE) // expands to (b, c)
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_pop_front_z.html b/doc/ref/tuple_pop_front_z.html
new file mode 100644
index 0000000..d65e7f4
--- /dev/null
+++ b/doc/ref/tuple_pop_front_z.html
@@ -0,0 +1,40 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_POP_FRONT_Z</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_POP_FRONT_Z</b>
+      macro pops an element from the beginning of a&nbsp;<i>tuple</i>.&nbsp; It
+      reenters <b>BOOST_PP_REPEAT</b> with maximum efficiency.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_POP_FRONT_Z</b>(<i>z</i>, <i>tuple</i>)
+      <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>z</dt>
+      <dd> The next available <b>BOOST_PP_REPEAT</b> dimension.</dd>
+      <dt>tuple</dt>
+      <dd> The <i>tuple</i> to pop an element from.</dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro returns <i>tuple</i> after removing the first
+      element.&nbsp; If <i>tuple</i> has only a single element, it remains
+      unchanged since a&nbsp;<i>tuple </i>must have at least one element.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_pop_front.html">BOOST_PP_TUPLE_POP_FRONT</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/pop_front.html">&lt;boost/preprocessor/tuple/pop_front.hpp&gt;</a>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_push_back.html b/doc/ref/tuple_push_back.html
new file mode 100644
index 0000000..3ebc99c
--- /dev/null
+++ b/doc/ref/tuple_push_back.html
@@ -0,0 +1,39 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_PUSH_BACK</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_PUSH_BACK</b> macro
+      appends an element to the end of a <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_PUSH_BACK</b>(<i>tuple</i>, <i>elem</i>)
+      <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>tuple</dt>
+      <dd> The <i>tuple</i> to append an element to.</dd>
+      <dt>elem</dt>
+      <dd> The element to append. </dd>
+    </dl>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/push_back.html">&lt;boost/preprocessor/tuple/push_back.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/tuple/push_back.html">boost/preprocessor/tuple/push_back.hpp</a>&gt;
+
+#define TUPLE (a, b, c)
+
+<a href="tuple_push_back.html">BOOST_PP_TUPLE_PUSH_BACK</a>(TUPLE, d) // expands to (a, b, c, d)
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanyig file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_push_front.html b/doc/ref/tuple_push_front.html
new file mode 100644
index 0000000..cfabc88
--- /dev/null
+++ b/doc/ref/tuple_push_front.html
@@ -0,0 +1,39 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_PUSH_FRONT</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_PUSH_FRONT</b> macro
+      appends an element to the beginning of a <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_PUSH_FRONT</b>(<i>tuple</i>, <i>elem</i>)
+      <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>tuple</dt>
+      <dd> The <i>tuple</i> to append an element to.</dd>
+      <dt>elem</dt>
+      <dd> The element to append. </dd>
+    </dl>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/push_front.html">&lt;boost/preprocessor/tuple/push_front.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/tuple/push_front.html">boost/preprocessor/tuple/push_front.hpp</a>&gt;
+
+#define TUPLE (b, c, d)
+
+<a href="tuple_push_front.html">BOOST_PP_TUPLE_PUSH_FRONT</a>(TUPLE, a) // expands to (a, b, c, d)
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_rem.html b/doc/ref/tuple_rem.html
new file mode 100644
index 0000000..5392e16
--- /dev/null
+++ b/doc/ref/tuple_rem.html
@@ -0,0 +1,60 @@
+<html>
+  <head>
+    <title>BOOST_PP_TUPLE_REM</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+	<div style="margin-left: 0px;">
+		The <b>BOOST_PP_TUPLE_REM</b> macro expands to a macro that removes the parentheses from a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>size</dt>
+			<dd>
+				The size of the <i>tuple</i> from which the parentheses are to be removed.&nbsp;
+				Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			The <i>size</i> argument must be the actual size of the <i>tuple</i> in the non-variadic version.<br>
+<br>
+For the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a>&nbsp;the
+size may be left out
+completely so that the macro can be invoked as BOOST_PP_TUPLE_REM(); you may get a warning from some compilers, but the
+functionality will still work. If you specify a size in the variadic
+version, it will be ignored, but the warning from some compilers will
+not occur.<br>
+<br>Note: For Visual C++ 8.0 ( Visual Studio 2005 ) you must specify the correct <i>size</i> argument as in the non-variadic version.<br>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/tuple/rem.html">&lt;boost/preprocessor/tuple/rem.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>&gt;<br><br><a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>(3)(x, y, z) // expands to x, y, z<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>()(x, y, z) // expands to x, y, z<br></pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011,2013</i><br>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/tuple_rem_ctor.html b/doc/ref/tuple_rem_ctor.html
new file mode 100644
index 0000000..e065923
--- /dev/null
+++ b/doc/ref/tuple_rem_ctor.html
@@ -0,0 +1,61 @@
+<html>
+  <head>
+    <title>BOOST_PP_TUPLE_REM_CTOR</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+	<div style="margin-left: 0px;">
+		The <b>BOOST_PP_TUPLE_REM_CTOR</b> macro removes the parentheses from a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>size</i>, <i>tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>size</dt>
+			<dd>
+				The size of the <i>tuple</i> from which the parentheses are to be removed.&nbsp;
+				Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+			</dd>
+			<dt>tuple</dt>
+			<dd>
+				The <i>tuple</i> from which the parenthesis are removed.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			The <i>size</i> argument must be the actual size of <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_REM_CTOR(<i>tuple</i>) or
+BOOST_PP_TUPLE_REM_CTOR(<i>size</i>,<i>tuple</i>).<br>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/tuple/rem.html">&lt;boost/preprocessor/tuple/rem.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>&gt;<br><br><a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>(3, (x, y, z)) // expands to x, y, z<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>((x, y, z)) // expands to x, y, z<br></pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011,2013</i><br>
+
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/tuple_remove.html b/doc/ref/tuple_remove.html
new file mode 100644
index 0000000..4aebc57
--- /dev/null
+++ b/doc/ref/tuple_remove.html
@@ -0,0 +1,50 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_REMOVE</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_REMOVE</b> macro
+      removes an element from a <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_REMOVE</b>(<i>tuple</i>, <i>i</i>) <a
+        href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>tuple</dt>
+      <dd> The <i>tuple</i> from which an element is to be removed.</dd>
+      <dt>i</dt>
+      <dd> The zero-based position in <i>tuple</i> of the element to be
+        removed.&nbsp; Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>)
+        - <i>1</i>. If <i>tuple</i> has only a single element, it remains
+        unchanged since a&nbsp;<i>tuple </i>must have at least one element.</dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro uses <b>BOOST_PP_WHILE</b> interally.&nbsp; Therefore, to
+      use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
+      see <b>BOOST_PP_TUPLE_REMOVE_D</b>.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_remove_d.html">BOOST_PP_TUPLE_REMOVE_D</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/remove.html">&lt;boost/preprocessor/tuple/remove.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/tuple/remove.html">boost/preprocessor/tuple/remove.hpp</a>&gt;
+
+#define TUPLE (a, b, d)
+
+<a href="tuple_remove.html">BOOST_PP_TUPLE_REMOVE</a>(TUPLE, 2) // expands to (a, b)
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_remove_d.html b/doc/ref/tuple_remove_d.html
new file mode 100644
index 0000000..1be3d1c
--- /dev/null
+++ b/doc/ref/tuple_remove_d.html
@@ -0,0 +1,41 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_REMOVE_D</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_REMOVE_D</b> macro
+      removes an element from a <i>tuple</i>.&nbsp; It reenters <b>BOOST_PP_WHILE</b>
+      with maximum efficiency. </div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_REMOVE_D</b>(<i>d</i>, <i>tuple</i>,
+      <i>i</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>d</dt>
+      <dd> The next available <b>BOOST_PP_WHILE</b> iteration. </dd>
+      <dt>tuple</dt>
+      <dd> The <i>tuple</i> from which an element is to be removed. </dd>
+      <dt>i</dt>
+      <dd> The zero-based position in <i>tuple</i> of the element to be
+        removed.&nbsp; Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>)
+        - <i>1</i>. If <i>tuple</i> has only a single element, it remains
+        unchanged since a&nbsp;<i>tuple </i>must have at least one element.</dd>
+    </dl>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_remove.html">BOOST_PP_TUPLE_REMOVE</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/remove.html">&lt;boost/preprocessor/tuple/remove.hpp&gt;</a>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_replace.html b/doc/ref/tuple_replace.html
new file mode 100644
index 0000000..8654ebb
--- /dev/null
+++ b/doc/ref/tuple_replace.html
@@ -0,0 +1,51 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_REPLACE</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_REPLACE</b> macro
+      replaces an element in a <i>tuple</i>.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_REPLACE</b>(<i>tuple</i>, <i>i</i>, <i>elem</i>)
+      <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>tuple</dt>
+      <dd> A <i>tuple</i> to replace an element in. </dd>
+      <dt>i</dt>
+      <dd> The zero-based position in <i>tuple</i> of the element to be
+        replaced.&nbsp; Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>)
+        - <i>1</i>.</dd>
+      <dt>elem</dt>
+      <dd> The replacement element. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro uses <b>BOOST_PP_WHILE</b> interally.&nbsp; Therefore, to
+      use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
+      see <b>BOOST_PP_TUPLE_REPLACE_D</b>.</div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_replace_d.html">BOOST_PP_TUPLE_REPLACE_D</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/replace.html">&lt;boost/preprocessor/tuple/replace.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/tuple/replace.html">boost/preprocessor/tuple/replace.hpp</a>&gt;
+
+#define TUPLE (a, x, c)
+
+<a href="tuple_replace.html">BOOST_PP_TUPLE_REPLACE</a>(TUPLE, 1, b) // expands to (a, b, c))
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_replace_d.html b/doc/ref/tuple_replace_d.html
new file mode 100644
index 0000000..dc5fc4f
--- /dev/null
+++ b/doc/ref/tuple_replace_d.html
@@ -0,0 +1,42 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_TUPLE_REPLACE_D</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_TUPLE_REPLACE_D</b> macro
+      replaces an element in a <i>tuple</i>.&nbsp; It reenters <b>BOOST_PP_WHILE</b>
+      with maximum efficiency.</div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_TUPLE_REPLACE_D</b>(<i>d</i>, <i>tuple</i>,
+      <i>i</i>, <i>elem</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>d</dt>
+      <dd> The next available <b>BOOST_PP_WHILE</b> iteration. </dd>
+      <dt>tuple</dt>
+      <dd> A <i>tuple</i> to replace an element in. </dd>
+      <dt>i</dt>
+      <dd> The zero-based position in <i>tuple</i> of the element to be
+        replaced.&nbsp; Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>)
+        - <i>1</i>. </dd>
+      <dt>elem</dt>
+      <dd> The replacement element. </dd>
+    </dl>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="tuple_replace.html">BOOST_PP_TUPLE_REPLACE</a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/tuple/replace.html">&lt;boost/preprocessor/tuple/replace.hpp&gt;</a>
+    </div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2013</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/tuple_reverse.html b/doc/ref/tuple_reverse.html
new file mode 100644
index 0000000..41e95fe
--- /dev/null
+++ b/doc/ref/tuple_reverse.html
@@ -0,0 +1,61 @@
+<html>
+  <head>
+    <title>BOOST_PP_TUPLE_REVERSE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+	<div style="margin-left: 0px;">
+		The <b>BOOST_PP_TUPLE_REVERSE</b> macro reverses a <i>tuple</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_TUPLE_REVERSE</b>(<i>size</i>, <i>tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_REVERSE</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>size</dt>
+			<dd>
+				The size of the <i>tuple</i> to be reversed.&nbsp;
+				Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+			</dd>
+			<dt>tuple</dt>
+			<dd>
+				The <i>tuple</i> to be reversed.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_REVERSE(<i>tuple</i>) or
+BOOST_PP_TUPLE_REVERSE(<i>size</i>,<i>tuple</i>).<br>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/tuple/reverse.html">&lt;boost/preprocessor/tuple/reverse.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>#include &lt;<a href="../headers/tuple/reverse.html">boost/preprocessor/tuple/reverse.hpp</a>&gt;<br><br><a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>(3, (x, y, z)) // expands to (z, y, x)<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>((x, y, z)) // expands to (z, y, x)<br></pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011,2013</i><br>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/tuple_size.html b/doc/ref/tuple_size.html
new file mode 100644
index 0000000..b1dfec3
--- /dev/null
+++ b/doc/ref/tuple_size.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+  <title>BOOST_PP_TUPLE_SIZE</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_SIZE</b> macro
+expands to the size of the <i>tuple</i> passed to it. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+  </div>
+<h4>Arguments</h4>
+<dl>
+  <dt>tuple</dt>
+  <dd> A <i>tuple</i> whose size is to be extracted. </dd>
+</dl>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/tuple/size.html">&lt;boost/preprocessor/tuple/size.hpp&gt;</a>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;<a href="../headers/tuple/size.html">boost/preprocessor/tuple/size.hpp</a>&gt;<br><br>#define TUPLE (x, y, z)<br><br><a href="tuple_size.html">BOOST_PP_TUPLE_SIZE</a>(TUPLE) // expands to 3<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011,2013</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/tuple_to_array.html b/doc/ref/tuple_to_array.html
new file mode 100644
index 0000000..be57bac
--- /dev/null
+++ b/doc/ref/tuple_to_array.html
@@ -0,0 +1,50 @@
+<html>
+  <head>
+  <title>BOOST_PP_TUPLE_TO_ARRAY</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_ARRAY</b>
+macro
+converts a <i>tuple</i> to an <i>array</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>size,tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+</div>
+<h4> Arguments </h4>
+<dl>
+  <dt>size</dt>
+  <dd> The size of the <i>tuple</i>.&nbsp; Valid <i>tuple</i> sizes
+range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. <br>
+  </dd>
+  <dt>tuple</dt>
+  <dd> The <i>tuple</i> to be converted.</dd>
+</dl>
+<h4>Remarks</h4>
+<div> 
+			The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_TO_ARRAY(<i>tuple</i>) or
+BOOST_PP_TUPLE_TO_ARRAY(<i>size</i>,<i>tuple</i>).<a href="../headers/seq/to_array.html"></a>
+</div>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/tuple/to_array.html">&lt;boost/preprocessor/tuple/to_array.hpp&gt;</a>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;<a href="../headers/tuple/to_array.html">boost/preprocessor/tuple/to_array.hpp</a>&gt;<br><br>#define TUPLE (a,b,c)<br><br><a href="tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a>(3,TUPLE) // expands to (3, (a, b, c))<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a>(TUPLE) // expands to (3, (a, b, c))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2011,2013</i>
+</div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/tuple_to_list.html b/doc/ref/tuple_to_list.html
new file mode 100644
index 0000000..01b8dbb
--- /dev/null
+++ b/doc/ref/tuple_to_list.html
@@ -0,0 +1,60 @@
+<html>
+  <head>
+    <title>BOOST_PP_TUPLE_TO_LIST</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+	<div style="margin-left: 0px;">
+		The <b>BOOST_PP_TUPLE_TO_LIST</b> macro converts a <i>tuple</i> to a <i>list</i>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>size</i>, <i>tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>size</dt>
+			<dd>
+				The size of the <i>tuple</i> to be converted.&nbsp;
+				Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+			</dd>
+			<dt>tuple</dt>
+			<dd>
+				The <i>tuple</i> to be converted.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_TO_LIST(<i>tuple</i>) or
+BOOST_PP_TUPLE_TO_LIST(<i>size</i>,<i>tuple</i>).<br>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/tuple/to_list.html">&lt;boost/preprocessor/tuple/to_list.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>#include &lt;<a href="../headers/tuple/to_list.html">boost/preprocessor/tuple/to_list.hpp</a>&gt;<br><br><a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>(3, (x, y, z))<br>   // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>((x, y, z))<br>   // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		<br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011,2013</i><br>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/tuple_to_seq.html b/doc/ref/tuple_to_seq.html
new file mode 100644
index 0000000..28e23eb
--- /dev/null
+++ b/doc/ref/tuple_to_seq.html
@@ -0,0 +1,51 @@
+<html>
+  <head>
+    <title>BOOST_PP_TUPLE_TO_SEQ</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_SEQ</b> macro
+converts a <i>tuple</i> to an <i>seq</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>size</i>, <i>tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+</div>
+<h4> Arguments </h4>
+<dl>
+  <dt>size</dt>
+  <dd>
+				The size of the <i>tuple</i> to be converted.&nbsp;
+				Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp; </dd>
+  <dt>tuple</dt>
+  <dd> The <i>tuple</i> to be converted. </dd>
+</dl>
+<h4>Remarks</h4>
+<div> The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_TO_SEQ(<i>tuple</i>) or
+BOOST_PP_TUPLE_TO_SEQ(<i>size</i>,<i>tuple</i>).<a href="../headers/tuple/to_seq.html"></a>
+</div>
+<h4>Requirements </h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/tuple/to_seq.html">&lt;boost/preprocessor/tuple/to_seq.hpp&gt;</a>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;<a href="../headers/tuple/to_seq.html">boost/preprocessor/tuple/to_seq.hpp</a>&gt;<br><br><a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>(3, (a, b, c)) // expands to (a)(b)(c)<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>((a, b, c)) // expands to (a)(b)(c)<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+<br>
+<i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011,2013</i><br>
+ </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/ref/update_counter.html b/doc/ref/update_counter.html
new file mode 100644
index 0000000..ce49033
--- /dev/null
+++ b/doc/ref/update_counter.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+	<title>BOOST_PP_UPDATE_COUNTER</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_UPDATE_COUNTER</b> macro increments the current counter value.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#include <b>BOOST_PP_UPDATE_COUNTER()</b>
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="counter.html">BOOST_PP_COUNTER</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/slot/counter.html">&lt;boost/preprocessor/slot/counter.hpp&gt;</a>
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/value.html b/doc/ref/value.html
new file mode 100644
index 0000000..4659a24
--- /dev/null
+++ b/doc/ref/value.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+	<title>BOOST_PP_VALUE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_VALUE</b> macro is a user-defined <i>named external argument</i> to <b>BOOST_PP_ASSIGN_SLOT</b>.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			#define <b>BOOST_PP_VALUE</b> <i>value</i>
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>value</dt>
+			<dd>
+				An intergral constant expression to be evaluated by <b>BOOST_PP_ASSIGN_SLOT</b>.
+			</dd>
+		</dl>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="assign_slot.html">BOOST_PP_ASSIGN_SLOT</a></li>
+		</ul>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/variadic_elem.html b/doc/ref/variadic_elem.html
new file mode 100644
index 0000000..73cffc5
--- /dev/null
+++ b/doc/ref/variadic_elem.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+  <title>BOOST_PP_VARIADIC_ELEM</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_ELEM</b> variadic macro
+extracts an element from <i>variadic data</i>. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_ELEM</b>(<i>i</i>, <i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+ </div>
+<h4>Arguments</h4>
+<dl><dt>i</dt>
+  <dd> The zero-based index into the <i>variadic data</i> of the element to be
+extracted.&nbsp; Valid values range from <i>0</i> to the size of the variadic data - 1.
+  </dd>
+  <dt>...<br>
+</dt>
+  <dd> The <i>variadic data</i> from which an element is to be extracted. </dd>
+</dl>
+<h4>Remarks</h4>
+<div>The index <i>i</i> must be less than the size of the <i>variadic data</i>. </div>
+<h4>See Also</h4>
+<ul>
+  <li><a href="limit_variadic.html">BOOST_PP_LIMIT_VARIADIC</a></li>
+</ul>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/elem.html">&lt;boost/preprocessor/variadic/elem.hpp&gt;</a>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;<a href="../headers/variadic/elem.html">boost/preprocessor/variadic/elem.hpp</a>&gt;<br><br>#define VAR_DATA a, b, c, d<br><br><a href="variadic_elem.html">BOOST_PP_VARIADIC_ELEM</a>(0, VAR_DATA) // expands to a<br><a href="variadic_elem.html">BOOST_PP_VARIADIC_ELEM</a>(3, VAR_DATA) // expands to d<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011,2013</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/variadic_seq_to_seq.html b/doc/ref/variadic_seq_to_seq.html
new file mode 100644
index 0000000..ba5bdc4
--- /dev/null
+++ b/doc/ref/variadic_seq_to_seq.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+  <title>BOOST_PP_VARIADIC_SEQ_TO_SEQ</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_SEQ_TO_SEQ</b> variadic macro
+converts a <i>variadic seq</i> to a <i>seq</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_SEQ_TO_SEQ</b>(<i>vseq</i>)<a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> </div>
+<h4> Arguments </h4>
+<dl>
+  <dt>vseq<br>
+</dt>
+  <dd> The <i>variadic seq</i> to be converted. </dd>
+</dl>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/seq/variadic_seq_to_seq.html">&lt;boost/preprocessor/seq/variadic_seq_to_seq.hpp&gt;</a>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;<a href="../headers/seq/variadic_seq_to_seq.html">boost/preprocessor/seq/variadic_seq_to_seq.hpp</a>&gt;<br><br>
+<a href="variadic_seq_to_seq.html">BOOST_PP_VARIADIC_SEQ_TO_SEQ</a>((1)(2, 3)(4, 5, 6)) // expands to ((1))((2, 3))((4, 5, 6))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;">
+	<i>© Copyright Paul Mensonides 2012</i>
+</div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/variadic_size.html b/doc/ref/variadic_size.html
new file mode 100644
index 0000000..8986ef8
--- /dev/null
+++ b/doc/ref/variadic_size.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+  <title>BOOST_PP_VARIADIC_SIZE</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_SIZE</b> variadic macro
+expands to the size of the <i>variadic data </i>passed to it. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_SIZE</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+  </div>
+<h4>Arguments</h4>
+<dl>
+  <dt>...<br>
+</dt>
+  <dd>&nbsp; <i>Variadic data </i>whose size is to be extracted. </dd>
+</dl>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/size.html">&lt;boost/preprocessor/variadic/size.hpp&gt;</a>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;<a href="../headers/variadic/size.html">boost/preprocessor/variadic/size.hpp</a>&gt;<br><br>#define VAR_DATA x, y, z<br><br><a href="variadic_size.html">BOOST_PP_VARIADIC_SIZE</a>(VAR_DATA) // expands to 3<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011,2013</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/variadic_to_array.html b/doc/ref/variadic_to_array.html
new file mode 100644
index 0000000..85304a9
--- /dev/null
+++ b/doc/ref/variadic_to_array.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+  <title>BOOST_PP_VARIADIC_TO_ARRAY</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_ARRAY</b> variadic macro
+converts <i>variadic data</i> to an <i>array</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_TO_ARRAY</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+  </div>
+<h4> Arguments </h4>
+<dl>
+  <dt>...</dt>
+  <dd> The <i>variadic data</i> to be converted. </dd>
+</dl>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/to_array.html">&lt;boost/preprocessor/variadic/to_array.hpp&gt;</a>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;<a href="../headers/variadic/to_array.html">boost/preprocessor/variadic/to_array.hpp</a>&gt;<br><br>#define VAR_DATA a, b, c<br><br><a href="variadic_to_array.html">BOOST_PP_VARIADIC_TO_ARRAY</a>(VAR_DATA) // expands to (3, (a, b, c))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011,2013</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/variadic_to_list.html b/doc/ref/variadic_to_list.html
new file mode 100644
index 0000000..e823373
--- /dev/null
+++ b/doc/ref/variadic_to_list.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+  <title>BOOST_PP_VARIADIC_TO_LIST</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_LIST</b>
+variadic macro converts <i>variadic data</i> to a <i>list</i>. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_TO_LIST</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+ </div>
+<h4>Arguments</h4>
+<dl><dt>...</dt>
+  <dd> The <i>variadic data</i> to be converted.<br>
+</dd>
+</dl><h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/to_list.html">&lt;boost/preprocessor/variadic/to_list.hpp&gt;</a>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;<a href="../headers/variadic/to_list.html">boost/preprocessor/variadic/to_list.hpp</a>&gt;<br><br><a href="variadic_to_list.html">BOOST_PP_VARIADIC_TO_LIST</a>(x, y, z)<br>   // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011,2013</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/variadic_to_seq.html b/doc/ref/variadic_to_seq.html
new file mode 100644
index 0000000..19b3b54
--- /dev/null
+++ b/doc/ref/variadic_to_seq.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+  <title>BOOST_PP_VARIADIC_TO_SEQ</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_SEQ</b> variadic macro
+converts a <i>variadic data</i> to a <i>seq</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_TO_SEQ</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
+ </div>
+<h4> Arguments </h4>
+<dl><dt>...<br>
+</dt>
+  <dd> The <i>variadic data</i> to be converted. </dd>
+</dl>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/to_seq.html">&lt;boost/preprocessor/variadic/to_seq.hpp&gt;</a>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;<a href="../headers/variadic/to_seq.html">boost/preprocessor/variadic/to_seq.hpp</a>&gt;<br><br><a href="variadic_to_seq.html">BOOST_PP_VARIADIC_TO_SEQ</a>(a, b, c) // expands to (a)(b)(c)<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/variadic_to_tuple.html b/doc/ref/variadic_to_tuple.html
new file mode 100644
index 0000000..c966cab
--- /dev/null
+++ b/doc/ref/variadic_to_tuple.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+  <title>BOOST_PP_VARIADIC_TO_TUPLE</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_TUPLE</b> variadic macro
+converts <i>variadic data </i>to a <i>tuple</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_TO_TUPLE</b>(<i>...</i>)<a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> </div>
+<h4> Arguments </h4>
+<dl>
+  <dt>...<br>
+</dt>
+  <dd> The <i>variadic data</i> to be converted. </dd>
+</dl>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<a href="../headers/variadic/to_tuple.html">&lt;boost/preprocessor/variadic/to_tuple.hpp&gt;</a>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;<a href="../headers/variadic/to_tuple.html">boost/preprocessor/variadic/to_tuple.hpp</a>&gt;<br><br>#define VAR_DATA a, b, c<br><br><a href="variadic_to_tuple.html">BOOST_PP_VARIADIC_TO_TUPLE</a>(VAR_DATA) // expands to (a, b, c)<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011,2013</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/variadics.html b/doc/ref/variadics.html
new file mode 100644
index 0000000..a08e8c5
--- /dev/null
+++ b/doc/ref/variadics.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+  <title>BOOST_PP_VARIADICS</title>
+  <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADICS </b>macro specifies whether variadic macro support exists.<br>
+</div>
+<h4>Usage</h4>
+<div class="code"><b>BOOST_PP_VARIADICS</b><br>
+</div><b>Remarks</b>
+<div> The macro is an <i>object-like</i> macro. It is used in internal
+code to check for the presence of variadic macro support. It can be
+used by the end-user for the same purpose. The macro equals 1 if
+variadic macros are supported and 0 if they are not. </div><b>Requirements</b>
+<div> <b>Header:</b> &nbsp;<a href="../headers/config/variadics.html">&lt;boost/preprocessor/config/config.hpp&gt;</a>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;<a href="../headers/config/variadics.html">boost/preprocessor/config/config.hpp</a>&gt;<br><br>#if <a href="variadics.html">BOOST_PP_VARIADICS</a><br>#define SOME_MACRO(...) // replacement list<br>#else<br>#define SOME_MACRO(param1,param2) // replacement list<br>#endif<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011,2014</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+</div>
+</body>
+</html>
diff --git a/doc/ref/while.html b/doc/ref/while.html
new file mode 100644
index 0000000..1b6ed00
--- /dev/null
+++ b/doc/ref/while.html
@@ -0,0 +1,116 @@
+<html>
+<head>
+	<title>BOOST_PP_WHILE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_WHILE</b> macro represents a looping construct.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_WHILE</b>(<i>pred</i>, <i>op</i>, <i>state</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>pred</dt>
+			<dd>
+				A binary predicate of the form <i>pred</i>(<i>d</i>, <i>state</i>).&nbsp;
+				This predicate is expanded by <b>BOOST_PP_WHILE</b> with the next available
+				iteration <i>d</i> and the current <i>state</i>.&nbsp;
+				This predicate must expand to value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+				The construct continues to loop until this predicate returns <i>0</i>.&nbsp;
+				When this predicate returns <i>0</i>, <b>BOOST_PP_WHILE</b> returns the current <i>state</i>.
+			</dd>
+			<dt>op</dt>
+			<dd>
+				A binary operation of the form <i>op</i>(<i>d</i>, <i>state</i>).&nbsp;
+				This operation is expanded by <b>BOOST_PP_WHILE</b> with the next available
+				iteration <i>d</i> and the current <i>state</i>.&nbsp;
+				This macro is repeatedly applied to the <i>state</i>, each time producing a new <i>state</i>, until <i>pred</i> returns <i>0</i>.
+			</dd>
+			<dt>state</dt>
+			<dd>
+				The initial state.&nbsp;
+				Often this argument is a <i>tuple</i>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			This macro iterates <i>op</i>(<i>d</i>, <i>state</i>) while <i>pred</i>(<i>d</i>, <i>state</i>) is non-zero.&nbsp;
+			In other words expands to:
+			<div>
+				<i>op</i>(<i>d</i>, ... <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>)) ... ).
+			</div>
+		</div>
+		<div>
+			The <i>d</i> value that is passed to both <i>pred</i> and <i>op</i> represents the next available iteration.&nbsp;
+			Other macros that have <b>_D</b> suffix variants internally use <b>BOOST_PP_WHILE</b>--for example, <b>BOOST_PP_ADD</b> and <b>BOOST_PP_ADD_D</b>.&nbsp;
+			Using these <b>_D</b> versions is not strictly necessary, but passing the <i>d</i> value (that passed to <i>pred</i> or <i>op</i>) to these macros allows them to reenter <b>BOOST_PP_WHILE</b> with maximum efficiency.
+		</div>
+		<div>
+			To directly use this <i>d</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_WHILE_<i>d</i></b>.
+		</div>
+		<div>
+			Previously, this macro could not be used recursively inside <b>BOOST_PP_WHILE</b>.&nbsp;
+			This limitation no longer exists, as the library can automatically detect the next available iteration.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+			<li><a href="while_d.html">BOOST_PP_WHILE_<i>d</i></a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/control/while.html">&lt;boost/preprocessor/control/while.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>&gt;
+#include &lt;<a href="../headers/control/while.html">boost/preprocessor/control/while.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define PRED(n, state) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, state)
+
+#define OP(d, state) \
+   OP_D( \
+      d, \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 0, state), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(2, 1, state) \
+   ) \
+   /**/
+
+#define OP_D(d, res, c) \
+   ( \
+      <a href="add_d.html">BOOST_PP_ADD_D</a>( \
+         d, \
+         res, \
+         <a href="dec.html">BOOST_PP_DEC</a>(c) \
+      ), \
+      <a href="dec.html">BOOST_PP_DEC</a>(c) \
+   ) \
+   /**/
+
+#define SUMMATION(n) \
+   <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>( \
+      2, 0, \
+      <a href="while.html">BOOST_PP_WHILE</a>(PRED, OP, (n, n)) \
+   ) \
+   /**/
+
+SUMMATION(3) // expands to 6
+SUMMATION(4) // expands to 10
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/while_d.html b/doc/ref/while_d.html
new file mode 100644
index 0000000..b7077da
--- /dev/null
+++ b/doc/ref/while_d.html
@@ -0,0 +1,117 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_WHILE_d</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>
+    <div style="margin-left:  0px;"> The <b>BOOST_PP_WHILE_<i>d</i></b> macro
+      represents a reentry into the <b>BOOST_PP_WHILE</b> looping construct. </div>
+    <h4>Usage</h4>
+    <div class="code"> <b>BOOST_PP_WHILE_</b> ## <i>d</i>(<i>pred</i>, <i>op</i>,
+      <i>state</i>) </div>
+    <h4>Arguments</h4>
+    <dl>
+      <dt>d</dt>
+      <dd> The next available <b>BOOST_PP_WHILE</b> iteration. </dd>
+      <dt>pred</dt>
+      <dd> A binary predicate of the form <i>pred</i>(<i>d</i>, <i>state</i>).&nbsp;
+        This predicate is expanded by <b>BOOST_PP_WHILE</b> with the next
+        available iteration <i>d</i> and the current <i>state</i>.&nbsp; This
+        predicate must expand to value in the range of <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+        The construct continues to loop until this predicate returns <i>0</i>.&nbsp;
+        When this predicate returns <i>0</i>, <b>BOOST_PP_WHILE</b> returns
+        the current <i>state</i>. </dd>
+      <dt>op</dt>
+      <dd> A binary operation of the form <i>op</i>(<i>d</i>, <i>state</i>).&nbsp;
+        This operation is expanded by <b>BOOST_PP_WHILE</b> with the next
+        available iteration <i>d</i> and the current <i>state</i>.&nbsp; This
+        macro is repeatedly applied to the <i>state</i>, each time producing a
+        new <i>state</i>, until <i>pred</i> returns <i>0</i>. </dd>
+      <dt>state</dt>
+      <dd> The initial state.&nbsp; Often this argument is a <i>tuple</i>. </dd>
+    </dl>
+    <h4>Remarks</h4>
+    <div> This macro iterates <i>op</i>(<i>d</i>, <i>state</i>) while <i>pred</i>(<i>d</i>,
+      <i>state</i>) is non-zero.&nbsp; In other words expands to:
+      <div> <i>op</i>(<i>d</i>, ... <i>op</i>(<i>d</i>, <i>op</i>(<i>d</i>, <i>state</i>))
+        ... ). </div>
+    </div>
+    <div> At certain times, it may be necessary to perform the concatenation
+      with <b>BOOST_PP_CAT</b> rather than the preprocessor token-pasting
+      operator.&nbsp; This happens when the <i>d</i> value is a macro
+      invocation itself.&nbsp; It needs a delay to allow it to expand.&nbsp; The
+      syntax in such a scenario becomes:
+      <div> <b>BOOST_PP_CAT</b>(<b>BOOST_PP_WHILE_</b>, <i>d</i>)(<i>pred</i>,
+        <i>op</i>, <i>state</i>). </div>
+    </div>
+    <div> Previously, it was possible to concatenate <i>d</i> directly to <b>BOOST_PP_WHILE</b>
+      (without the trailing underscore).&nbsp; This is no longer supported. </div>
+    <h4>See Also</h4>
+    <ul>
+      <li><a href="cat.html">BOOST_PP_CAT</a></li>
+      <li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+      <li><a href="while.html">BOOST_PP_WHILE</a></li>
+      <li><a href="while_d_macros.html"><span style="color: gray;">Macros with D
+            re-entrancy forms</span></a></li>
+    </ul>
+    <h4>Requirements</h4>
+    <div> <b>Header:</b> &nbsp;<a href="../headers/control/while.html">&lt;boost/preprocessor/control/while.hpp&gt;</a>
+    </div>
+    <h4>Sample Code</h4>
+    <div>
+      <pre>#include &lt;<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>&gt;
+#include &lt;<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>&gt;
+#include &lt;<a href="../headers/array/elem.html">boost/preprocessor/array/elem.hpp</a>&gt;
+#include &lt;<a href="../headers/array/size.html">boost/preprocessor/array/size.hpp</a>&gt;
+#include &lt;<a href="../headers/control/while.html">boost/preprocessor/control/while.hpp</a>&gt;
+#include &lt;<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>&gt;
+
+#define PRED(d, data) <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 1, data)
+
+#define OP(d, data) \
+   OP_D( \
+      d, \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 0, data), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 1, data), \
+      <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, 2, data) \
+   ) \
+   /**/
+
+#define OP_D(d, res, i, array) \
+   ( \
+      <a href="add_d.html">BOOST_PP_ADD_D</a>( \
+         d, res, \
+         <a href="array_elem.html">BOOST_PP_ARRAY_ELEM</a>(<a href="dec.html">BOOST_PP_DEC</a>(i), array)), \
+      <a href="dec.html">BOOST_PP_DEC</a>(i), \
+      array \
+   ) \
+   /**/
+
+#define ACCUMULATE_D(d, array) \
+   <a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>( \
+      3, 0, \
+      <a href="while_d.html">BOOST_PP_WHILE_</a> ## d( \
+         PRED, OP, \
+         (0, <a href="array_size.html">BOOST_PP_ARRAY_SIZE</a>(array), array) \
+      ) \
+   ) \
+   /**/
+
+#define ARRAY (4, (1, 2, 3, 4))
+
+ACCUMULATE_D(1, ARRAY)// expands to 10
+</pre></div>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright <a href="http://www.housemarque.com"
+          target="_top">Housemarque Oy</a> 2002</i> <br>
+      <i>© Copyright Paul Mensonides 2002<br>
+      </i><i>© Copyright Edward Diener 2014</i><br>
+    </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/while_d_macros.html b/doc/ref/while_d_macros.html
new file mode 100644
index 0000000..a9c61f1
--- /dev/null
+++ b/doc/ref/while_d_macros.html
@@ -0,0 +1,89 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>BOOST_PP_WHILE_d_macros</title>
+    <link rel="stylesheet" type="text/css" href="../styles.css">
+  </head>
+  <body>This is a list, based on functionality, of the macros which have an
+    alternate <b>_<i>d</i></b> name, representing a reentry into the <b>BOOST_PP_WHILE</b>
+    looping construct:<br>
+    <br>
+    arithmetic<br>
+    <ul>
+      <li><a href="add_d.html"><span style="color: gray;">BOOST_PP_ADD_D</span></a></li>
+      <li><a href="div_d.html"><span style="    color: gray;">BOOST_PP_DIV_D</span></a></li>
+      <li><a href="div_d.html"><span
+            style="    color: gray;"></span></a><a href="mod_d.html"><span style="                      color: gray;">BOOST_PP_MOD_D</span></a></li>
+      <li><a href="mod_d.html"><span
+            style="                      color: gray;"></span></a><a href="mul_d.html"><span
+            style="                       color: gray;">BOOST_PP_MUL_D</span></a></li>
+      <li><a href="mul_d.html"><span
+            style="                       color: gray;"></span></a><a href="sub_d.html"><span
+            style="                          color: gray;">BOOST_PP_SUB_D</span></a></li>
+    </ul>
+    array<br>
+    <ul>
+      <li><a href="array_insert_d.html"><span style="color: gray;">BOOST_PP_ARRAY_INSERT_D</span></a></li>
+      <li><span style=" color: gray;"><a href="array_remove_d.html">BOOST_PP_ARRAY_REMOVE_D</a></span></li>
+      <li><a href="array_replace_d.html"><span style="  color: gray;">BOOST_PP_ARRAY_REPLACE_D</span></a></li>
+    </ul>
+    comparison<br>
+    <ul>
+      <li><a href="equal_d.html"><span style="     color: gray;">BOOST_PP_EQUAL_D</span></a></li>
+      <li><a href="greater_d.html"><span style="     color: gray;">BOOST_PP_GREATER_D</span></a></li>
+      <li><a href="greater_equal_d.html"><span style="      color: gray;">BOOST_PP_GREATER_EQUAL_D</span></a></li>
+      <li><a href="less_d.html"><span style="       color: gray;">BOOST_PP_LESS_D</span></a></li>
+      <li><a href="less_equal_d.html"><span style="        color: gray;">BOOST_PP_LESS_EQUAL_D</span></a></li>
+      <li><a href="not_equal_d.html"><span style="     color: gray;">BOOST_PP_NOT_EQUAL_D</span></a></li>
+    </ul>
+    control<br>
+    <ul>
+      <li><a href="deduce_d.html"><span style="   color: gray;">BOOST_PP_DEDUCE_D</span></a></li>
+    </ul>
+    list<br>
+    <ul>
+    </ul>
+    <ul>
+      <li><a href="list_append_d.html"><span style="         color: gray;">BOOST_PP_LIST_APPEND_D</span></a></li>
+      <li><a href="list_at_d.html"><span style="          color: gray;">BOOST_PP_LIST_AT_D</span></a></li>
+      <li><a href="list_cat_d.html"><span style="           color: gray;">BOOST_PP_LIST_CAT_D</span></a></li>
+      <li><a href="list_filter_d.html"><span style="            color: gray;">BOOST_PP_LIST_FILTER_D</span></a></li>
+      <li><a href="list_first_n_d.html"><span style="             color: gray;">BOOST_PP_LIST_FIRST_N_D</span></a></li>
+      <li><a href="list_fold_left_d.html"><span style="              color: gray;">BOOST_PP_LIST_FOLD_LEFT_d</span></a></li>
+      <li><a href="list_fold_right_d.html"><span style="               color: gray;">BOOST_PP_LIST_FOLD_RIGHT_d</span></a></li>
+      <li><a href="list_rest_n_d.html"><span style="                color: gray;">BOOST_PP_LIST_REST_N_D</span></a></li>
+      <li><a href="list_reverse_d.html"><span style="                 color: gray;">BOOST_PP_LIST_REVERSE_D</span></a></li>
+      <li><a href="list_size_d.html"><span style="                 color: gray;">BOOST_PP_LIST_SIZE_D</span></a></li>
+      <li><a href="list_to_array_d.html"><span style="                  color: gray;">BOOST_PP_LIST_TO_ARRAY_D</span></a></li>
+      <li><a href="list_transform_d.html"><span style="                   color: gray;">BOOST_PP_LIST_TRANSFORM_D</span></a></li>
+    </ul>
+    selection<br>
+    <ul>
+      <li><a href="max_d.html"><span style="                    color: gray;">BOOST_PP_MAX_D</span></a></li>
+      <li><a href="min_d.html"><span style="                     color: gray;">BOOST_PP_MIN_D</span></a></li>
+    </ul>
+    repetition<br>
+    <ul>
+      <li><a href="repeat_from_to_d.html"><span style="                        color: gray;">BOOST_PP_REPEAT_FROM_TO_D</span></a></li>
+      <li><a href="repeat_from_to_d_z.html"><span style="                         color: gray;">BOOST_PP_REPEAT_FROM_TO_D_z</span></a></li>
+    </ul>
+    tuple<br>
+    <ul>
+      <li><a href="tuple_insert_d.html"><span style="                           color: gray;">BOOST_PP_TUPLE_INSERT_D</span></a></li>
+      <li><a href="tuple_remove_d.html"><span style="                            color: gray;">BOOST_PP_TUPLE_REMOVE_D</span></a></li>
+      <li><a href="tuple_replace_d.html"><span style="                             color: gray;">BOOST_PP_TUPLE_REPLACE_D</span></a></li>
+    </ul>
+    base<br>
+    <ul>
+      <li><a href="while_d.html"><span style="                     color: gray;">BOOST_PP_WHILE_D</span></a></li>
+    </ul>
+    <br>
+    <hr size="1">
+    <div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2014</i> </div>
+    <div style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License, Version 1.0. (See
+          accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  </body>
+</html>
diff --git a/doc/ref/wstringize.html b/doc/ref/wstringize.html
new file mode 100644
index 0000000..9a3c277
--- /dev/null
+++ b/doc/ref/wstringize.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+	<title>BOOST_PP_WSTRINGIZE</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_WSTRINGIZE</b> macro wide stringizes its argument after it has been expanded.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_WSTRINGIZE</b>(<i>text</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>text</dt>
+			<dd>
+				The text to be converted to a wide string literal.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			The preprocessor stringizing operator (<b>#</b>) prevents arguments from expanding.&nbsp;
+			This macro allows its argument to expand before it is stringized.
+		</div>
+<!-- <h4>See Also</h4> -->
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/wstringize.html">&lt;boost/preprocessor/wstringize.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/wstringize.html">boost/preprocessor/wstringize.hpp</a>&gt;
+
+<a href="wstringize.html">BOOST_PP_WSTRINGIZE</a>(some text) // expands to L"some text"
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/xor.html b/doc/ref/xor.html
new file mode 100644
index 0000000..1b8c7b4
--- /dev/null
+++ b/doc/ref/xor.html
@@ -0,0 +1,64 @@
+<html>
+<head>
+	<title>BOOST_PP_XOR</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<div style="margin-left:  0px;">
+		The <b>BOOST_PP_XOR</b> macro expands to the logical <i>XOR</i> of its operands.
+	</div>
+	<h4>Usage</h4>
+		<div class="code">
+			<b>BOOST_PP_XOR</b>(<i>p</i>, <i>q</i>)
+		</div>
+	<h4>Arguments</h4>
+		<dl>
+			<dt>p</dt>
+			<dd>
+				The left operand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+			<dt>q</dt>
+			<dd>
+				The right operand of the operation.&nbsp;
+				Valid values range from <i>0</i> to <b>BOOST_PP_LIMIT_MAG</b>.
+			</dd>
+		</dl>
+	<h4>Remarks</h4>
+		<div>
+			If either <i>p</i> or <i>q</i> is non-zero exclusively, this macro expands to <i>1</i>.&nbsp;
+			Otherwise, it expands to <i>0</i>.
+		</div>
+		<div>
+			This macro performs a boolean conversion on each operand before performing the logical <i>XOR</i> operation.&nbsp;
+			If that conversion is not necessary, use <b>BOOST_PP_BITXOR</b> instead.
+		</div>
+	<h4>See Also</h4>
+		<ul>
+			<li><a href="bitxor.html">BOOST_PP_BITXOR</a></li>
+			<li><a href="limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
+		</ul>
+	<h4>Requirements</h4>
+		<div>
+			<b>Header:</b> &nbsp;<a href="../headers/logical/xor.html">&lt;boost/preprocessor/logical/xor.hpp&gt;</a>
+		</div>
+	<h4>Sample Code</h4>
+<div><pre>
+#include &lt;<a href="../headers/logical/xor.html">boost/preprocessor/logical/xor.hpp</a>&gt;
+
+<a href="xor.html">BOOST_PP_XOR</a>(4, 3) // expands to 0
+<a href="xor.html">BOOST_PP_XOR</a>(5, 0) // expands to 1
+</pre></div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/styles.css b/doc/styles.css
new file mode 100644
index 0000000..fe12e1f
--- /dev/null
+++ b/doc/styles.css
@@ -0,0 +1,87 @@
+a {
+	color:  black;
+	font-weight:  normal;
+}
+a.na:link, a.na:visited {
+	color:  #dddddd;
+	text-decoration:  line-through;
+}
+a:link, a:visited, a:active {
+	color:  gray;
+	text-decoration:  none;
+}
+a.local {
+	font-weight:  bold;
+}
+a:hover, a.na:hover {
+	color:  blue;
+}
+body {
+	color:  black; background-color:  white;
+}
+.code {
+	color:  black; background-color:  #dddddd;
+	letter-spacing:  1px;
+	border:  1px solid; border-color:  black;
+	padding-left:  12px; padding-right:  12px; padding-top:  5px; padding-bottom:  5px;
+	margin-left:  20px;
+}
+dd {
+	padding-left:  40px;
+	margin-left:  0px; margin-bottom:  10px;
+}
+div {
+	margin-top:  10px; margin-bottom:  10px; margin-left:  20px;
+}
+dl {
+	margin-top:  0px; margin-bottom:  0px;
+}
+dt {
+	font-style:  italic;
+	padding-left:  20px;
+	margin-top:  10px;
+}
+h4, h5 {
+	margin-top:  10px; margin-bottom:  10px;
+}
+hr {
+	margin-top:  0px; margin-bottom:  0px;
+}
+.incompatibility {
+	color:  red;
+}
+.indent {
+	margin-top:  0px; margin-bottom:  0px;
+}
+pre {
+	letter-spacing:  1px;
+	padding:  0px;
+	margin:  0px;
+}
+pre a:hover {
+	color:  orange;
+}
+s {
+	color:  #dddddd;
+}
+.sig {
+	font-style:  italic;
+	color:  #aaaaaa;
+	text-align:  right;
+}
+span {
+	display:  block;
+	margin:  0px;
+}
+ul {
+	margin-top:  10px; margin-bottom:  10px; margin-left:  20px;
+	padding-left:  17px;
+}
+
+/*
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
+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)
+*/
diff --git a/doc/syntax.html b/doc/syntax.html
new file mode 100644
index 0000000..abc0b2a
--- /dev/null
+++ b/doc/syntax.html
@@ -0,0 +1,307 @@
+<html>
+  <head>
+    <title>syntax.html</title>
+    <link rel="stylesheet" type="text/css" href="styles.css">
+  </head>
+  <body>
+	<h4>Identifiers for Syntax Highlighting</h4>
+	<div>
+	<!-- A -->
+	<br>BOOST_PP_ADD
+	<br>BOOST_PP_ADD_D
+	<br>BOOST_PP_AND
+	<br>BOOST_PP_APPLY
+	<br>BOOST_PP_ARRAY_DATA
+	<br>BOOST_PP_ARRAY_ELEM
+    <br>BOOST_PP_ARRAY_ENUM
+    <br>BOOST_PP_ARRAY_INSERT
+	<br>BOOST_PP_ARRAY_INSERT_D
+	<br>BOOST_PP_ARRAY_POP_BACK
+	<br>BOOST_PP_ARRAY_POP_BACK_Z
+	<br>BOOST_PP_ARRAY_POP_FRONT
+	<br>BOOST_PP_ARRAY_POP_FRONT_Z
+	<br>BOOST_PP_ARRAY_PUSH_BACK
+	<br>BOOST_PP_ARRAY_PUSH_FRONT
+	<br>BOOST_PP_ARRAY_REMOVE
+	<br>BOOST_PP_ARRAY_REMOVE_D
+	<br>BOOST_PP_ARRAY_REPLACE
+	<br>BOOST_PP_ARRAY_REPLACE_D
+	<br>BOOST_PP_ARRAY_REVERSE
+	<br>BOOST_PP_ARRAY_SIZE
+    <br>BOOST_PP_ARRAY_TO_LIST
+    <br>BOOST_PP_ARRAY_TO_SEQ
+    <br>BOOST_PP_ARRAY_TO_TUPLE
+    <br>BOOST_PP_ASSERT
+	<br>BOOST_PP_ASSERT_MSG
+	<br>BOOST_PP_ASSIGN_SLOT
+	<!-- B -->
+	<br>BOOST_PP_BITAND
+	<br>BOOST_PP_BITNOR
+	<br>BOOST_PP_BITOR
+	<br>BOOST_PP_BITXOR
+	<br>BOOST_PP_BOOL
+	<!-- C -->
+	<br>BOOST_PP_CAT
+	<br>BOOST_PP_COMMA
+	<br>BOOST_PP_COMMA_IF
+	<br>BOOST_PP_COMPL
+	<br>BOOST_PP_CONFIG_EXTENDED_LINE_INFO
+	<br>BOOST_PP_COUNTER
+	<!-- D -->
+	<br>BOOST_PP_DEC
+	<br>BOOST_PP_DEDUCE_D
+	<br>BOOST_PP_DEDUCE_R
+	<br>BOOST_PP_DEDUCE_Z
+	<br>BOOST_PP_DIV
+	<br>BOOST_PP_DIV_D
+	<!-- E -->
+	<br>BOOST_PP_EMPTY
+	<br>BOOST_PP_ENUM
+	<br>BOOST_PP_ENUM_BINARY_PARAMS
+	<br>BOOST_PP_ENUM_BINARY_PARAMS_Z
+	<br>BOOST_PP_ENUM_PARAMS
+	<br>BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT
+	<br>BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS
+	<br>BOOST_PP_ENUM_PARAMS_Z
+	<br>BOOST_PP_ENUM_SHIFTED
+	<br>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS
+	<br>BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z
+	<br>BOOST_PP_ENUM_SHIFTED_PARAMS
+	<br>BOOST_PP_ENUM_SHIFTED_PARAMS_Z
+	<br>BOOST_PP_ENUM_SHIFTED_
+	<br>BOOST_PP_ENUM_TRAILING
+	<br>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS
+	<br>BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z
+	<br>BOOST_PP_ENUM_TRAILING_PARAMS
+	<br>BOOST_PP_ENUM_TRAILING_PARAMS_Z
+	<br>BOOST_PP_ENUM_TRAILING_
+	<br>BOOST_PP_ENUM_
+	<br>BOOST_PP_EQUAL
+	<br>BOOST_PP_EQUAL_D
+	<br>BOOST_PP_EXPAND
+	<br>BOOST_PP_EXPR_IF
+	<br>BOOST_PP_EXPR_IIF
+	<!-- F -->
+	<br>BOOST_PP_FILENAME_1
+	<br>BOOST_PP_FILENAME_2
+	<br>BOOST_PP_FILENAME_3
+	<br>BOOST_PP_FILENAME_4
+	<br>BOOST_PP_FILENAME_5
+	<br>BOOST_PP_FOR
+	<br>BOOST_PP_FOR_
+	<br>BOOST_PP_FRAME_FINISH
+	<br>BOOST_PP_FRAME_FLAGS
+	<br>BOOST_PP_FRAME_ITERATION
+	<br>BOOST_PP_FRAME_START
+	<!-- G -->
+	<br>BOOST_PP_GREATER
+	<br>BOOST_PP_GREATER_D
+	<br>BOOST_PP_GREATER_EQUAL
+	<br>BOOST_PP_GREATER_EQUAL_D
+	<!-- I -->
+	<br>BOOST_PP_IDENTITY
+	<br>BOOST_PP_IF
+	<br>BOOST_PP_IIF
+	<br>BOOST_PP_INC
+	<br>BOOST_PP_INCLUDE_SELF
+	<br>BOOST_PP_INDIRECT_SELF
+	<br>BOOST_PP_INTERCEPT
+	<br>BOOST_PP_IS_ITERATING
+	<br>BOOST_PP_IS_SELFISH
+	<br>BOOST_PP_ITERATE
+	<br>BOOST_PP_ITERATION
+	<br>BOOST_PP_ITERATION_DEPTH
+	<br>BOOST_PP_ITERATION_FINISH
+	<br>BOOST_PP_ITERATION_FLAGS
+	<br>BOOST_PP_ITERATION_LIMITS
+	<br>BOOST_PP_ITERATION_PARAMS_1
+	<br>BOOST_PP_ITERATION_PARAMS_2
+	<br>BOOST_PP_ITERATION_PARAMS_3
+	<br>BOOST_PP_ITERATION_PARAMS_4
+	<br>BOOST_PP_ITERATION_PARAMS_5
+	<br>BOOST_PP_ITERATION_START
+	<!-- L -->
+	<br>BOOST_PP_LESS
+	<br>BOOST_PP_LESS_D
+	<br>BOOST_PP_LESS_EQUAL
+	<br>BOOST_PP_LESS_EQUAL_D
+	<br>BOOST_PP_LIMIT_DIM
+	<br>BOOST_PP_LIMIT_FOR
+	<br>BOOST_PP_LIMIT_ITERATION
+	<br>BOOST_PP_LIMIT_ITERATION_DIM
+	<br>BOOST_PP_LIMIT_MAG
+	<br>BOOST_PP_LIMIT_REPEAT
+	<br>BOOST_PP_LIMIT_SEQ
+	<br>BOOST_PP_LIMIT_SLOT_COUNT
+	<br>BOOST_PP_LIMIT_SLOT_SIG
+	<br>BOOST_PP_LIMIT_TUPLE
+    <br>BOOST_PP_LIMIT_VARIADIC
+    <br>BOOST_PP_LIMIT_WHILE
+	<br>BOOST_PP_LINE
+	<br>BOOST_PP_LIST_APPEND
+	<br>BOOST_PP_LIST_APPEND_D
+	<br>BOOST_PP_LIST_AT
+	<br>BOOST_PP_LIST_AT_D
+	<br>BOOST_PP_LIST_CAT
+	<br>BOOST_PP_LIST_CAT_D
+	<br>BOOST_PP_LIST_CONS
+	<br>BOOST_PP_LIST_ENUM
+	<br>BOOST_PP_LIST_ENUM_R
+	<br>BOOST_PP_LIST_FILTER
+	<br>BOOST_PP_LIST_FILTER_D
+	<br>BOOST_PP_LIST_FIRST
+	<br>BOOST_PP_LIST_FIRST_N
+	<br>BOOST_PP_LIST_FIRST_N_D
+	<br>BOOST_PP_LIST_FOLD_LEFT
+	<br>BOOST_PP_LIST_FOLD_LEFT_2ND
+	<br>BOOST_PP_LIST_FOLD_LEFT_2ND_D
+	<br>BOOST_PP_LIST_FOLD_LEFT_
+	<br>BOOST_PP_LIST_FOLD_LEFT_D
+	<br>BOOST_PP_LIST_FOLD_RIGHT
+	<br>BOOST_PP_LIST_FOLD_RIGHT_2ND
+	<br>BOOST_PP_LIST_FOLD_RIGHT_2ND_D
+	<br>BOOST_PP_LIST_FOLD_RIGHT_
+	<br>BOOST_PP_LIST_FOLD_RIGHT_D
+	<br>BOOST_PP_LIST_FOR_EACH
+	<br>BOOST_PP_LIST_FOR_EACH_I
+	<br>BOOST_PP_LIST_FOR_EACH_I_R
+	<br>BOOST_PP_LIST_FOR_EACH_PRODUCT
+	<br>BOOST_PP_LIST_FOR_EACH_PRODUCT_R
+	<br>BOOST_PP_LIST_FOR_EACH_R
+	<br>BOOST_PP_LIST_IS_CONS
+	<br>BOOST_PP_LIST_IS_NIL
+	<br>BOOST_PP_LIST_NIL
+	<br>BOOST_PP_LIST_REST
+	<br>BOOST_PP_LIST_REST_N
+	<br>BOOST_PP_LIST_REST_N_D
+	<br>BOOST_PP_LIST_REVERSE
+	<br>BOOST_PP_LIST_REVERSE_D
+	<br>BOOST_PP_LIST_SIZE
+	<br>BOOST_PP_LIST_SIZE_D
+    <br>BOOST_PP_LIST_TO_ARRAY
+    <br>BOOST_PP_LIST_TO_SEQ
+    <br>BOOST_PP_LIST_TO_TUPLE
+	<br>BOOST_PP_LIST_TO_TUPLE_R
+	<br>BOOST_PP_LIST_TRANSFORM
+	<br>BOOST_PP_LIST_TRANSFORM_D
+	<br>BOOST_PP_LOCAL_ITERATE
+	<br>BOOST_PP_LOCAL_LIMITS
+	<br>BOOST_PP_LOCAL_MACRO
+	<br>BOOST_PP_LPAREN
+	<br>BOOST_PP_LPAREN_IF
+	<!-- M -->
+	<br>BOOST_PP_MAX
+	<br>BOOST_PP_MAX_D
+	<br>BOOST_PP_MIN
+	<br>BOOST_PP_MIN_D
+	<br>BOOST_PP_MOD
+	<br>BOOST_PP_MOD_D
+	<br>BOOST_PP_MUL
+	<br>BOOST_PP_MUL_D
+	<!-- N -->
+	<br>BOOST_PP_NIL
+	<br>BOOST_PP_NOR
+	<br>BOOST_PP_NOT
+	<br>BOOST_PP_NOT_EQUAL
+	<br>BOOST_PP_NOT_EQUAL_D
+	<!-- O -->
+	<br>BOOST_PP_OR
+    <br>BOOST_PP_OVERLOAD
+    <!-- R -->
+	<br>BOOST_PP_RELATIVE_FINISH
+	<br>BOOST_PP_RELATIVE_FLAGS
+	<br>BOOST_PP_RELATIVE_ITERATION
+	<br>BOOST_PP_RELATIVE_START
+	<br>BOOST_PP_REPEAT
+	<br>BOOST_PP_REPEAT_1ST
+	<br>BOOST_PP_REPEAT_2ND
+	<br>BOOST_PP_REPEAT_3RD
+	<br>BOOST_PP_REPEAT_FROM_TO
+	<br>BOOST_PP_REPEAT_FROM_TO_1ST
+	<br>BOOST_PP_REPEAT_FROM_TO_2ND
+	<br>BOOST_PP_REPEAT_FROM_TO_3RD
+	<br>BOOST_PP_REPEAT_FROM_TO_D
+	<br>BOOST_PP_REPEAT_FROM_TO_D_
+	<br>BOOST_PP_REPEAT_FROM_TO_
+	<br>BOOST_PP_REPEAT_
+	<br>BOOST_PP_RPAREN
+	<br>BOOST_PP_RPAREN_IF
+	<!-- S -->
+	<br>BOOST_PP_SEQ_CAT
+	<br>BOOST_PP_SEQ_CAT_S
+	<br>BOOST_PP_SEQ_ELEM
+	<br>BOOST_PP_SEQ_ENUM
+	<br>BOOST_PP_SEQ_FILTER
+	<br>BOOST_PP_SEQ_FILTER_S
+	<br>BOOST_PP_SEQ_FIRST_N
+	<br>BOOST_PP_SEQ_FOLD_LEFT
+	<br>BOOST_PP_SEQ_FOLD_LEFT_
+	<br>BOOST_PP_SEQ_FOLD_RIGHT
+	<br>BOOST_PP_SEQ_FOLD_RIGHT_
+	<br>BOOST_PP_SEQ_FOR_EACH
+	<br>BOOST_PP_SEQ_FOR_EACH_I
+	<br>BOOST_PP_SEQ_FOR_EACH_I_R
+	<br>BOOST_PP_SEQ_FOR_EACH_PRODUCT
+	<br>BOOST_PP_SEQ_FOR_EACH_PRODUCT_R
+	<br>BOOST_PP_SEQ_FOR_EACH_R
+	<br>BOOST_PP_SEQ_HEAD
+	<br>BOOST_PP_SEQ_INSERT
+	<br>BOOST_PP_SEQ_NIL
+	<br>BOOST_PP_SEQ_POP_BACK
+	<br>BOOST_PP_SEQ_POP_FRONT
+	<br>BOOST_PP_SEQ_PUSH_BACK
+	<br>BOOST_PP_SEQ_PUSH_FRONT
+	<br>BOOST_PP_SEQ_REMOVE
+	<br>BOOST_PP_SEQ_REPLACE
+	<br>BOOST_PP_SEQ_REST_N
+	<br>BOOST_PP_SEQ_REVERSE
+	<br>BOOST_PP_SEQ_REVERSE_S
+	<br>BOOST_PP_SEQ_SIZE
+	<br>BOOST_PP_SEQ_SUBSEQ
+	<br>BOOST_PP_SEQ_TAIL
+	<br>BOOST_PP_SEQ_TO_ARRAY
+    <br>BOOST_PP_SEQ_TO_LIST
+    <br>BOOST_PP_SEQ_TO_TUPLE
+	<br>BOOST_PP_SEQ_TRANSFORM
+	<br>BOOST_PP_SEQ_TRANSFORM_S
+	<br>BOOST_PP_SLOT
+	<br>BOOST_PP_STRINGIZE
+	<br>BOOST_PP_SUB
+	<br>BOOST_PP_SUB_D
+	<!-- T -->
+	<br>BOOST_PP_TUPLE_EAT
+	<br>BOOST_PP_TUPLE_ELEM
+    <br>BOOST_PP_TUPLE_ENUM
+    <br>BOOST_PP_TUPLE_REM
+	<br>BOOST_PP_TUPLE_REM_CTOR
+	<br>BOOST_PP_TUPLE_REVERSE
+    <br>BOOST_PP_TUPLE_SIZE
+    <br>BOOST_PP_TUPLE_TO_ARRAY
+    <br>BOOST_PP_TUPLE_TO_LIST
+	<br>BOOST_PP_TUPLE_TO_SEQ
+	<!-- U -->
+	<br>BOOST_PP_UPDATE_COUNTER
+	<!-- V -->
+	<br>BOOST_PP_VALUE
+    <br>BOOST_PP_VARIADIC_ELEM
+    <br>BOOST_PP_VARIADIC_SIZE
+    <br>BOOST_PP_VARIADIC_TO_ARRAY
+    <br>BOOST_PP_VARIADIC_TO_LIST
+    <br>BOOST_PP_VARIADIC_TO_SEQ
+    <br>BOOST_PP_VARIADIC_TO_TUPLE
+    <!-- W -->
+	<br>BOOST_PP_WHILE
+	<br>BOOST_PP_WHILE_
+	<br>BOOST_PP_WSTRINGIZE
+	<!-- X -->
+	<br>BOOST_PP_XOR
+    </div>
+<!--
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
+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)
+-->
+  </body>
+</html>
\ No newline at end of file
diff --git a/doc/terms.html b/doc/terms.html
new file mode 100644
index 0000000..7edfb2d
--- /dev/null
+++ b/doc/terms.html
@@ -0,0 +1,23 @@
+<html>
+<head>
+	<title>terms.html</title>
+	<link rel="stylesheet" type="text/css" href="styles.css">
+	<base target="desc">
+</head>
+<body>
+<h4>Terminology <small><a href="contents.html" target="index">[back]</a></small></h4>
+<ul>
+	<li><a href="terms/evaluated.html">evaluated parameter</a></li>
+	<li><a href="terms/named_external.html">named external argument</a></li>
+</ul>
+
+<!--
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
+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)
+-->
+
+</body>
+</html>
diff --git a/doc/terms/evaluated.html b/doc/terms/evaluated.html
new file mode 100644
index 0000000..a57b183
--- /dev/null
+++ b/doc/terms/evaluated.html
@@ -0,0 +1,27 @@
+<html>
+<head>
+	<title>Evaluated Parameter</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<h4>Evaluated Parameter</h4>
+	<div>
+		An <i>evaluated parameter</i> is a numeric value that is evaluated by the library as a constant expression.&nbsp;
+		This means that the expression can include simple arithmetic, logical, and condition expressions.&nbsp;
+		It also means that the value of the parameter no longer depends on the source of the parameter.&nbsp;
+		In other words, if the value is dependent on some macro, it will no longer be dependent on that macro after it is evaluated.&nbsp;
+		This disables the lazy-evaluation that the preprocessor normallly uses.
+	</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/terms/named_external.html b/doc/terms/named_external.html
new file mode 100644
index 0000000..0678bcf
--- /dev/null
+++ b/doc/terms/named_external.html
@@ -0,0 +1,25 @@
+<html>
+<head>
+	<title>Named External Argument</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<h4>Named External Argument</h4>
+	<div>
+		A <i>named external argument</i> is an argument to a macro that is <i>included</i>.&nbsp;
+		There is no way to pass arguments to a file directly, so they must be passed to files in the form of macros with known names that are defined by the user.&nbsp;
+		Every time that the library uses this idiom, the file that is included automatically undefines the macro in order to better simulate <i>normal</i> parameters.
+	</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/title.html b/doc/title.html
new file mode 100644
index 0000000..ea7871e
--- /dev/null
+++ b/doc/title.html
@@ -0,0 +1,25 @@
+<html>
+  <head>
+    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
+    <title>title.html</title>
+    <link rel="stylesheet" type="text/css" href="styles.css">
+  </head>
+  <body>
+    <h4>Introduction</h4>
+    <div> The Boost Preprocessing library is a library of macros, with support
+      for preprocessor metaprogramming. The library supports both C++ and C
+      compilation. It does not depend on any other Boost libraries and therefore
+      may be used as a standalone library. </div>
+    <div> An excerpt from <i>C++ Template Metaprogramming: Concepts, Tools, and
+        Techniques from Boost and Beyond</i> by Dave Abrahams and Aleksey
+      Gurtovoy has been made <a href="AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html"
+        target="_top"><font color="blue"><b><u><i>available</i></u></b></font></a>.
+      This excerpt contains a basic introduction to the Preprocessor library and
+      preprocessor metaprogramming which may help users new to the library and
+      users interested in seeing some of the facilities offered by the library.
+    </div>
+    <!--
+© Copyright Housemarque Oy 2002© Copyright Paul Mensonides 2002Distributed 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)-->
+  </body>
+</html>
diff --git a/doc/top.html b/doc/top.html
new file mode 100644
index 0000000..1676e66
--- /dev/null
+++ b/doc/top.html
@@ -0,0 +1,32 @@
+<html>
+	<head>
+		<title>top.html</title>
+		<link rel="stylesheet" type="text/css" href="styles.css">
+			<style>
+				td { height: 60px; width: 100%; text-align: center; vertical-align: middle; 
+				margin: 0px; padding: 0px; font-weight: bold; }
+			</style>
+	</head>
+	<body style="margin:  0px; padding:  0px;">
+		<table style="width:  100%;">
+			<tr align="center">
+				<td>
+					The <a href="../../../index.htm" target="_parent"><font color="blue"><b>Boost</b></font></a>
+					Library
+					<br>
+					<a href="index.html" target="_parent"><font color="green"><b>Preprocessor</b></font></a>
+					Subset for <font color="red">C/C++</font>
+				</td>
+			</tr>
+		</table>
+
+<!--
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
+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)
+-->
+
+	</body>
+</html>
diff --git a/doc/topics.html b/doc/topics.html
new file mode 100644
index 0000000..5826a58
--- /dev/null
+++ b/doc/topics.html
@@ -0,0 +1,27 @@
+<html>
+<head>
+    <title>topics.html</title>
+	<link rel="stylesheet" type="text/css" href="styles.css">
+	<base target="desc">
+</head>
+<body>
+<h4>Topics <small><a href="contents.html" target="index">[back]</a></small></h4>
+<ul>
+	<li><a href="topics/motivation.html">motivation</a></li>
+	<li><a href="topics/problems.html">known problems of the preprocessor</a>	</li><li><a href="topics/techniques.html">techniques</a></li>
+	<li><a href="topics/incompatible.html">incompatibilities</a></li>
+	<li><a href="topics/reentrancy.html">reentrancy</a></li>
+	<li><a href="topics/local_iteration.html">local iteration</a></li>
+	<li><a href="topics/file_iteration.html">file iteration</a></li>
+	<li><a href="topics/evaluated_slots.html">evaluated slots</a></li>
+    <li><a href="topics/variadic_macros.html">variadic macros</a></li>
+</ul>
+<!--
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
+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)
+-->
+</body>
+</html>
diff --git a/doc/topics/evaluated_slots.html b/doc/topics/evaluated_slots.html
new file mode 100644
index 0000000..dbe2539
--- /dev/null
+++ b/doc/topics/evaluated_slots.html
@@ -0,0 +1,157 @@
+<html>
+<head>
+	<title>evaluated_slots.html</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<h4>Evaluated Slots</h4>
+<div>
+	The evaluated slot mechanism is a tool to fully evaluate a constant integral expression and avoid the lazy evaluation normally performed by the preprocessor.
+</div>
+<h4>Tutorial</h4>
+<div>
+	In order to understand the use of such a mechanism, I will start with a simple file-iteration example.&nbsp;
+	Consider the following scenario....
+</div>
+<div class ="code"><pre>
+for (int i = 0; i < 10; ++i) {
+   for (int j = 0; j < i; ++j) {
+      // ... use i and j
+   }
+}
+</pre></div>
+<div>
+	The above is a simple runtime model of the following multidimensional file-iteration....
+</div>
+<div class="code"><pre>
+// file.hpp
+#if !BOOST_PP_IS_ITERATING
+   #ifndef FILE_HPP_
+   #define FILE_HPP_
+
+   #include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
+
+   #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, 9, "file.hpp"))
+   #include BOOST_PP_ITERATE()
+
+   #endif // FILE_HPP_
+#elif BOOST_PP_ITERATION_DEPTH() == 1
+   #define I BOOST_PP_ITERATION()
+
+   #define BOOST_PP_ITERATION_PARAMS_2 (3, (0, I, "file.hpp"))
+   #include BOOST_PP_ITERATE()
+
+   #undef I
+#elif BOOST_PP_ITERATION_DEPTH() == 2
+   #define J BOOST_PP_ITERATION()
+
+   // use I and J
+
+   #undef J
+#endif
+</pre></div>
+<div>
+	There is a problem with the code above.&nbsp;
+	The writer expected <i>I</i> to refer the previous iteration frame.&nbsp;
+	However, that is not the case.&nbsp;
+	When the user refers to <i>I</i>, he is actually referring to <b>BOOST_PP_ITERATION</b>(),
+	not the value of <b>BOOST_PP_ITERATION</b>() at the point of definition.&nbsp;
+	Instead, it refers to exactly the same value to which <i>J</i> refers.
+</div>
+<div>
+	The problem is that the preprocessor always evaluates everything with lazy evaluation.&nbsp;
+	To solve the problem, we need <i>I</i> to be <i>evaluated</i> here:
+</div>
+<div class="code"><pre>
+// ...
+#elif BOOST_PP_ITERATION_DEPTH() == 1
+   #define I BOOST_PP_ITERATION()
+// ...
+</pre></div>
+<div>
+	Fortunately, the library offers a mechanism to do just that:&nbsp; evaluated slots.&nbsp;
+	The following code uses this mechanism to "fix" the example above...
+</div>
+<div class="code"><pre>
+// ...
+#elif BOOST_PP_ITERATION_DEPTH() == 1
+   #define BOOST_PP_VALUE BOOST_PP_ITERATION()
+   #include BOOST_PP_ASSIGN_SLOT(1)
+   #define I BOOST_PP_SLOT(1)
+// ...
+</pre></div>
+<div>
+	There are two steps to the assignment of an evaluated slot.&nbsp;
+	First, the user must define the <i>named external argument</i> <b>BOOST_PP_VALUE</b>.&nbsp;
+	This value must be an integral constant expression.&nbsp;
+	Second, the user must <i>include</i> <b>BOOST_PP_ASSIGN_SLOT</b>(<i>x</i>), where <i>x</i> is the particular slot to be assigned to (<i>1</i> to <b>BOOST_PP_LIMIT_SLOT_COUNT</b>).&nbsp;
+	This will evaluate <b>BOOST_PP_VALUE</b> and assign the result to the slot at index <i>x</i>.
+</div>
+<div>
+	To retrieve a slot's value, the user must use <b>BOOST_PP_SLOT</b>(<i>x</i>).
+</div>
+<div>
+	In the case above, <i>I</i> is <i>still</i> lazily evaluated.&nbsp;
+	However, it now evaluates to <b>BOOST_PP_SLOT</b>(<i>1</i>).&nbsp;
+	This value <i>will not change</i> unless there is a subsequent call to <b>BOOST_PP_ASSIGN_SLOT</b>(<i>1</i>).
+</div>
+<h4>Advanced Techniques</h4>
+<div>
+	The slot mechanism can also be used to perform calculations:
+</div>
+<div class="code"><pre>
+#include &lt;iostream&gt;
+
+#include &lt;boost/preprocessor/slot/slot.hpp&gt;
+#include &lt;boost/preprocessor/stringize.hpp&gt;
+
+#define X() 4
+
+#define BOOST_PP_VALUE 1 + 2 + 3 + X()
+#include BOOST_PP_ASSIGN_SLOT(1)
+
+#undef X
+
+int main(void) {
+   std::cout
+      &lt;&lt; BOOST_PP_STRINGIZE(BOOST_PP_SLOT(1))
+      &lt;&lt; &amp;std::endl;
+   return 0;
+}
+</pre></div>
+<div>
+	In essence, anything that can be evaluated in an #if (or #elif) preprocessor directive is available <i>except</i> the <i>defined</i> operator.
+</div>
+<div>
+	It is even possible to use a particular slot itself while reassigning it:
+</div>
+<div class="code"><pre>
+#define BOOST_PP_VALUE 20
+#include BOOST_PP_ASSIGN_SLOT(1)
+
+#define BOOST_PP_VALUE 2 * BOOST_PP_SLOT(1)
+#include BOOST_PP_ASSIGN_SLOT(1)
+
+BOOST_PP_SLOT(1) // 40
+</pre></div>
+<h4>See Also</h4>
+<ul>
+	<li><a href="../ref/assign_slot.html">BOOST_PP_ASSIGN_SLOT</a></li>
+	<li><a href="../ref/limit_slot_count.html">BOOST_PP_LIMIT_SLOT_COUNT</a></li>
+	<li><a href="../ref/slot.html">BOOST_PP_SLOT</a></li>
+	<li><a href="../ref/value.html">BOOST_PP_VALUE</a></li>
+</ul>
+<div class="sig">- Paul Mensonides</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/topics/file_iteration.html b/doc/topics/file_iteration.html
new file mode 100644
index 0000000..d3bb528
--- /dev/null
+++ b/doc/topics/file_iteration.html
@@ -0,0 +1,1044 @@
+<html>
+	<head>
+		<title>file_iteration.html</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<h4>
+			File Iteration
+		</h4>
+		<div>
+			File iteration is a complex, but powerful, vertical repetition construct.&nbsp; 
+			It repeatedly includes a <i>file</i> for each number in a user-specified range.
+		</div>
+		<h4>
+			Tutorial
+		</h4>
+		<div>
+			This mechanism requires two pieces of information to operate:&nbsp; a range to 
+			iterate over and a file to include on each iteration.&nbsp; It can optionally 
+			take a third piece of information that represents flags used to discriminate 
+			between different iterations of the same file.&nbsp; This information is 
+			obtained by the mechanism through one or two <i>named external arguments</i>.&nbsp; 
+			These arguments are specified as user-defined macros named <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>
+			or the combination of <b>BOOST_PP_FILENAME_<i>x</i></b> and <b>BOOST_PP_ITERATION_LIMITS</b>.
+		</div>
+		<div>
+			<b>BOOST_PP_ITERATION_LIMITS</b> specifies the range of values to iterate 
+			over.&nbsp; It <i>must</i> expand to a <i>tuple</i> containing two elements--a 
+			lower and upper bound.&nbsp; Both the upper and lower bounds must be numeric 
+			values in the range of <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>.&nbsp; For 
+			example, if the user wishes a file to be included for numbers ranging from <i>0</i>
+			to <i>10</i>, <b>BOOST_PP_ITERATION_LIMITS</b> would be defined like this:
+		</div>
+		<div class="code">
+			<pre>
+#define BOOST_PP_ITERATION_LIMITS (0, 10)
+</pre>
+		</div>
+		<div>
+			Note that there is whitespace after the name of the macro.&nbsp; The macro <i>does 
+				not</i> take <i>two</i> arguments.&nbsp; In the case above, if there was 
+			no whitespace, a preprocessing error would occur because <i>0</i> and <i>10</i> 
+			are invalid identifiers.
+		</div>
+		<div>
+			Both the upper and lower bounds specified in the <b>BOOST_PP_ITERATION_LIMITS</b>
+			macro are <i>evaluated parameters</i>.&nbsp; This implies that they can include 
+			simple arithmetic or logical expressions.&nbsp; For instance, the above 
+			definition could easily have been written like this:
+		</div>
+		<div class="code">
+			<pre>
+#define N() 5
+#define BOOST_PP_ITERATION_LIMITS (0, N() + 5)
+</pre>
+		</div>
+		<div>
+			Because of this, if the whitespace after the macro name is elided, it is 
+			possible for the definition to be syntactically valid:
+		</div>
+		<div class="code">
+			<pre>
+#define A 0
+#define B 10
+#define BOOST_PP_ITERATION_LIMITS(A, B)
+   // note:  no whitespace       ^
+</pre>
+		</div>
+		<div>
+			If this happens, an error will occur inside the mechanism when it attempts to 
+			use this macro.&nbsp; The error messages that result may be obscure, so always 
+			remember to include the whitespace.&nbsp; A <i>correct</i> version of the above 
+			looks like this:
+		</div>
+		<div class="code">
+			<pre>
+#define A 0
+#define B 10
+#define BOOST_PP_ITERATION_LIMITS (A, B)
+   // note:  has whitespace      ^
+</pre>
+		</div>
+		<div>
+			<b>BOOST_PP_FILENAME_<i>x</i></b> specifies the file to iterate over.&nbsp; The <i>x</i>
+			is a placeholder for the dimension of iteration.&nbsp; (For now, we'll assume 
+			this is <i>1</i>--i.e. the first dimension, so we are actually dealing with <b>BOOST_PP_FILENAME_1</b>.)&nbsp; 
+			This macro must expand to a valid filename--in quotes or in angle brackets 
+			depending on how the file is accessed:
+		</div>
+		<div class="code">
+			<pre>
+#define BOOST_PP_FILENAME_1 "file.h"
+// -or-
+#define BOOST_PP_FILENAME_1 &lt;file.h&gt;
+</pre>
+		</div>
+		<div>
+			All that we need now to perform a simple file iteration is to invoke the 
+			mechanism:
+		</div>
+		<div class="code">
+			<pre>
+??=include BOOST_PP_ITERATE()
+</pre>
+		</div>
+		<div>
+			(The <code>??=</code> token is a trigraph for <code>#</code>.&nbsp; I use the 
+			trigraph to make it clear that I am <i>including</i> a file rather than 
+			defining or expanding a macro, but it is not necessary.&nbsp; Even the digraph 
+			version, <code>%:</code>, could be used.&nbsp; Some compilers do not readily 
+			accept trigraphs and digraphs, so keep that in mind.&nbsp; Other than that, use 
+			whichever one you prefer.)
+		</div>
+		<div>
+			So, if we wish to iterate "file.h" from <i>1</i> to <i>10</i>, we just need to 
+			put the pieces together:
+		</div>
+		<div class="code">
+			<pre>
+#define BOOST_PP_ITERATION_LIMITS (1, 10)
+#define BOOST_PP_FILENAME_1 "file.h"
+??=include BOOST_PP_ITERATE()
+</pre>
+		</div>
+		<div>
+			The above code has the effect of including "file.h" ten times in 
+			succession.&nbsp;
+		</div>
+		<div>
+			Alternately, both the range and the file to iterate over can be expressed in 
+			one macro, <b>BOOST_PP_ITERATION_PARAMS_<i>x</i></b>.&nbsp; Once again, the <i>x</i>
+			is a placeholder for the dimension of iteration--which we'll assume is <i>1</i>.&nbsp; 
+			This macro must expand to an <i>array</i> that includes the lower bound, upper 
+			bound, filename, and optional flags (in that order).
+		</div>
+		<div class="code">
+			<pre>
+#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 10, "file.h"))
+??=include BOOST_PP_ITERATE()
+</pre>
+		</div>
+		<div>
+			This has the same effect as the previous version.&nbsp; Only one of these two 
+			ways to specify the parameters can be used at a time.&nbsp; (The reason that 
+			there are two different methods has to do with dimensional abstraction which 
+			I'll get to later.)
+		</div>
+		<div>
+			There is nothing particularly useful about including a file ten times.&nbsp; 
+			The difference is that the current macro state changes each time.&nbsp; For 
+			example, the current "iteration value" is available with <b>BOOST_PP_ITERATION</b>().&nbsp; 
+			If "file.h" is defined like this...
+		</div>
+		<div class="code">
+			<pre>
+// file.h
+template&lt;&gt; struct sample&lt;BOOST_PP_ITERATION()&gt; { };
+</pre>
+		</div>
+		<div>
+			...and it is iterated as follows...
+		</div>
+		<div class="code">
+			<pre>
+template&lt;int&gt; struct sample;
+
+#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 5, "file.h"))
+??=include BOOST_PP_ITERATE()
+</pre>
+		</div>
+		<div>
+			...the result is different each time:
+		</div>
+		<div>
+			<pre>
+template&lt;&gt; struct sample&lt;1&gt; { };
+template&lt;&gt; struct sample&lt;2&gt; { };
+template&lt;&gt; struct sample&lt;3&gt; { };
+template&lt;&gt; struct sample&lt;4&gt; { };
+template&lt;&gt; struct sample&lt;5&gt; { };
+</pre>
+		</div>
+		<div>
+			There is no reason that a file can't iterate over itself.&nbsp; This has the 
+			advantage of keeping the code together.&nbsp; The problem is that you have to 
+			discriminate the "regular" section of the file from the iterated section of the 
+			file.&nbsp; The library provides the <b>BOOST_PP_IS_ITERATING</b> macro to help 
+			in this regard.&nbsp; This macro is defined as <i>1</i> if an iteration is in 
+			progress.&nbsp; For example, to merge the contents of "file.h" into the file 
+			that iterates it:
+		</div>
+		<div class="code">
+			<pre>
+// sample.h
+#if !BOOST_PP_IS_ITERATING
+
+   #ifndef SAMPLE_H
+   #define SAMPLE_H
+
+   #include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
+
+   template&lt;int&gt; struct sample;
+
+   #define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 5, "sample.h"))
+   ??=include BOOST_PP_ITERATE()
+
+   #endif // SAMPLE_H
+
+#else
+
+   template&lt;&gt; struct sample&lt;BOOST_PP_ITERATION()&gt; { };
+
+#endif
+</pre>
+		</div>
+		<div>
+			Using the same file like this raises another issue.&nbsp; What happens when a 
+			file performs two separate file iterations over itself?&nbsp; This is the 
+			purpose of the optional flags parameter.&nbsp; It is used to discriminate 
+			between separate iterations.
+		</div>
+		<div class="code">
+			<pre>
+// sample.h
+#if !BOOST_PP_IS_ITERATING
+
+   #ifndef SAMPLE_H
+   #define SAMPLE_H
+
+   #include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
+   #include &lt;boost/preprocessor/repetition/enum_params.hpp&gt;
+   #include &lt;boost/preprocessor/repetition/enum_shifted_params.hpp&gt;
+
+   template&lt;int&gt; struct sample;
+
+   #define BOOST_PP_ITERATION_PARAMS_1 (4, (1, 5, "sample.h", 1))
+   ??=include BOOST_PP_ITERATE()
+
+   template&lt;class T, class U&gt; struct typelist_t {
+      typedef T head;
+      typedef U tail;
+   };
+
+   template&lt;int&gt; struct typelist;
+   struct null_t;
+
+   template&lt;&gt; struct typelist&lt;1&gt; {
+      template&lt;class T0&gt; struct args {
+         typedef typelist_t&lt;T0, null_t&gt; type;
+      };
+   };
+
+   #ifndef TYPELIST_MAX
+   #define TYPELIST_MAX 50
+   #endif
+
+   #define BOOST_PP_ITERATION_PARAMS_1 (4, (2, TYPELIST_MAX, "sample.h", 2))
+   ??=include BOOST_PP_ITERATE()
+
+   #endif // SAMPLE_H
+
+#elif BOOST_PP_ITERATION_FLAGS() == 1
+
+   template&lt;&gt; struct sample&lt;BOOST_PP_ITERATION()&gt; { };
+
+#elif BOOST_PP_ITERATION_FLAGS() == 2
+
+   #define N BOOST_PP_ITERATION()
+
+   template&lt;&gt; struct typelist&lt;N&gt; {
+      template&lt;BOOST_PP_ENUM_PARAMS(N, class T)&gt; struct args {
+         typedef typelist_t&lt;
+            T0,
+            typename typelist&lt;N - 1&gt;::args&lt;BOOST_PP_ENUM_SHIFTED_PARAMS(N, T)&gt;::type
+         &gt; type;
+      };
+   };
+
+   #undef N
+
+#endif
+</pre>
+		</div>
+		<div>
+			Notice the use of the "flags" parameter (which is accessed through <b>BOOST_PP_ITERATION_FLAGS</b>()).&nbsp; 
+			It discriminates between our recurring <code>sample</code> iteration and a 
+			typelist linearization iteration.&nbsp;
+		</div>
+		<div>
+			The second iteration illustrates the power of the file iteration 
+			mechanism.&nbsp; It generates typelist linearizations of the form <code>typelist&lt;3&gt;::args&lt;int, 
+				double, char&gt;::type</code>.
+		</div>
+		<div>
+			Actually, to continue the typelist example, with the help of another iteration 
+			we can <i>fully</i> linearize typelist creation....
+		</div>
+		<div class="code">
+			<pre>
+// extract.h
+#if !BOOST_PP_IS_ITERATING
+
+   #ifndef EXTRACT_H
+   #define EXTRACT_H
+
+   #include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
+   #include &lt;boost/preprocessor/repetition/enum.hpp&gt;
+   #include &lt;boost/preprocessor/repetition/enum_params.hpp&gt;
+   #include &lt;boost/preprocessor/repetition/enum_trailing_params.hpp&gt;
+
+   // certain types such as "void" can't be function argument types
+
+   template&lt;class T&gt; struct incomplete {
+      typedef T type;
+   };
+
+   template&lt;class T&gt; struct strip_incomplete {
+      typedef T type;
+   };
+
+   template&lt;class T&gt; struct strip_incomplete&lt;incomplete&lt;T&gt; &gt; {
+      typedef T type;
+   };
+
+   template&lt;template&lt;int&gt; class output, class func_t&gt; struct extract;
+
+   #ifndef EXTRACT_MAX
+   #define EXTRACT_MAX 50
+   #endif
+
+   #define BOOST_PP_ITERATION_PARAMS_1 (3, (1, EXTRACT_MAX, "extract.h"))
+   ??=include BOOST_PP_ITERATE()
+
+   #endif // EXTRACT_H
+
+#else
+
+   #define N BOOST_PP_ITERATION()
+   #define STRIP(z, n, _) \
+      typename strip_incomplete&lt;T ## n&gt;::type \
+      /**/
+
+   template&lt;template&lt;int&gt; class output, class R BOOST_PP_ENUM_TRAILING_PARAMS(N, class T)&gt;
+   struct extract&lt;R (BOOST_PP_ENUM_PARAMS(N, T))&gt; {
+      typedef typename output&lt;N&gt;::template args&lt;BOOST_PP_ENUM(N, STRIP, nil)&gt;::type type;
+   };
+
+   #undef STRIP
+   #undef N
+
+#endif
+</pre>
+		</div>
+		<div>
+			Now we can define a helper macro to finish the job:
+		</div>
+		<div class="code">
+			<pre>
+#define TYPELIST(args) extract&lt;typelist, void args&gt;::type
+
+typedef TYPELIST((int, double, incomplete&lt;void&gt;)) xyz;
+</pre>
+		</div>
+		<div>
+			There are two minor caveats with this result.&nbsp; First, certain types like <code>void</code>
+			can't be the type of an argument, so they have to be wrapped with <code>incomplete&lt;T&gt;</code>.&nbsp; 
+			Second, the necessary double parenthesis is annoying.&nbsp; If and when C++ 
+			gets C99's variadic macros, <code>TYPELIST</code> can be redefined:
+		</div>
+		<div class="code">
+			<pre>
+#define TYPELIST(...) extract&lt;typelist, void (__VA_ARGS__)&gt;::type
+
+typedef TYPELIST(int, double, short) xyz;
+</pre>
+		</div>
+		<div>
+			Note also that both the lower and upper bounds of an iteration are also 
+			accessible inside an iteration with <b>BOOST_PP_ITERATION_START</b>() and <b>BOOST_PP_ITERATION_FINISH</b>().
+		</div>
+		<div>
+			It is my hope that the explanation and examples presented here demonstrate the 
+			power of file iteration.&nbsp; Even so, this is just the beginning.&nbsp; The 
+			file iteration mechanism also defines a full suite of facilities to support 
+			multidimensional iteration.
+		</div>
+		<h4>
+			Multiple Dimensions
+		</h4>
+		<div>
+			The file iteration mechanism supports up to <b>BOOST_PP_LIMIT_ITERATION_DIM</b> 
+			dimensions.&nbsp; The first dimension (i.e. the outermost) we have already used 
+			above.&nbsp; In order to use the second dimension (inside the first), we simply 
+			have to replace the placeholder <i>x</i> with <i>2</i> instead of <i>1</i>.
+		</div>
+		<div class="code">
+			<pre>
+#define BOOST_PP_ITERATION_PARAMS_2 /* ... */
+                                  ^
+</pre>
+		</div>
+		<div>
+			...or...
+		</div>
+		<div class="code">
+			<pre>
+#define BOOST_PP_FILENAME_2 /* ... */
+                          ^
+</pre>
+		</div>
+		<div>
+			Each dimension must be used <i>in order</i> starting with <i>1</i>.&nbsp; 
+			Therefore, the above can <i>only</i> be valid immediately inside the first 
+			dimension.&nbsp;
+		</div>
+		<div>
+			At this point, further explanation is necessary regarding <b>BOOST_PP_ITERATION</b>,
+			<b>BOOST_PP_ITERATION_START</b>, and <b>BOOST_PP_ITERATION_FINISH</b>.&nbsp; <b>BOOST_PP_ITERATION</b>() 
+			expands to the iteration value of the <i>current</i> dimension--regardless of 
+			what dimension that is.&nbsp; Likewise, <b>BOOST_PP_ITERATION_START</b>() and <b>BOOST_PP_ITERATION_FINISH</b>() 
+			expand to the lower and upper bounds of the <i>current</i> dimension.&nbsp; 
+			Using the following pseudo-code as reference:
+		</div>
+		<div class="code">
+			<pre>
+for (int i = start(1); i <= finish(1); ++i) {
+   // A
+   for (int j = start(2); j <= finish(2); ++j) {
+      // B
+   }
+   // C
+}
+</pre>
+		</div>
+		<div>
+			At point <i>A</i>, <b>BOOST_PP_ITERATION</b>() refers to <code>i</code>.&nbsp; <b>BOOST_PP_ITERATION_START</b>() 
+			and <b>BOOST_PP_ITERATION_FINISH</b>() refer to <code>start(1)</code> and <code>finish(1)</code>
+			respectively.&nbsp; At point <i>B</i>, however, <b>BOOST_PP_ITERATION</b>() 
+			refers to <code>j</code>--the <i>current</i> iteration value at point <i>B</i>.&nbsp; 
+			The same is true for <b>BOOST_PP_ITERATION_START</b>() which refers to <code>start(2)</code>, 
+			etc..
+		</div>
+		<div>
+			If separate files are used for each dimension, then there are no major 
+			problems, and using multiple dimensions is straightforward.&nbsp; However, if 
+			more than one dimension is located in the same file, they need to be 
+			distinguished from one another.&nbsp; The file iteration mechanism provides the 
+			macro <b>BOOST_PP_ITERATION_DEPTH</b> for this purpose:
+		</div>
+		<div class="code">
+			<pre>
+// file.h
+#if !BOOST_PP_IS_ITERATING
+
+   #ifndef FILE_H
+   #define FILE_H
+
+   #include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
+
+   #define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 2, "file.h"))
+   ??=include BOOST_PP_ITERATE()
+
+   #endif // FILE_H
+
+#elif BOOST_PP_ITERATION_DEPTH() == 1
+
+   // A
+   + BOOST_PP_ITERATION()
+
+   #define BOOST_PP_ITERATION_PARAMS_2 (3, (1, 2, "file.h"))
+   ??=include BOOST_PP_ITERATE()
+
+   // C
+
+#elif BOOST_PP_ITERATION_DEPTH() == 2
+
+   // B
+   - BOOST_PP_ITERATION()
+
+#endif
+</pre>
+		</div>
+		<div>
+			This will result to the following:
+		</div>
+		<div>
+			<pre>
++ 1
+- 1
+- 2
++ 2
+- 1
+- 2
+</pre>
+		</div>
+		<div>
+			Multiple dimensions raise another question.&nbsp; How does one access the state 
+			of dimensions <i>other</i> than the current dimension?&nbsp; In other words, 
+			how does one access <code>i</code> at point <i>A</i>?&nbsp; Because of the 
+			preprocessor's lazy evaluation, this <i>doesn't</i> work....
+		</div>
+		<div class="code">
+			<pre>
+// ...
+
+#elif BOOST_PP_ITERATION_DEPTH() == 1
+
+   #define I BOOST_PP_ITERATION()
+
+   #define BOOST_PP_ITERATION_PARAMS_2 (3, (1, 2, "file.h"))
+   ??=include BOOST_PP_ITERATE()
+
+   #undef I
+
+#elif BOOST_PP_ITERATION_DEPTH() == 2
+
+   #define J BOOST_PP_ITERATION()
+
+   // use I and J
+
+   #undef I
+
+#endif
+</pre>
+		</div>
+		<div>
+			The problem here is that <code>I</code> refers to <b>BOOST_PP_ITERATION</b>(), 
+			not to the <i>value</i> of <b>BOOST_PP_ITERATION</b>() at the point of <code>I</code>'s 
+			definition.
+		</div>
+		<div>
+			The library provides macros to access these values in two ways--absolutely or 
+			relatively.&nbsp; The first variety accesses a value of a specific iteration 
+			frame (i.e. dimension).&nbsp; To access the iteration value of the first 
+			dimension--from <i>any</i> dimension--<b>BOOST_PP_FRAME_ITERATION</b>(<i>1</i>) 
+			is used.&nbsp; To access the iteration value of the second dimension, <b>BOOST_PP_FRAME_ITERATION</b>(<i>2</i>) 
+			is used, and so on.&nbsp;
+		</div>
+		<div>
+			There are also frame versions to access the lower bound, the upper bound, and 
+			the flags of a dimension:&nbsp; <b>BOOST_PP_FRAME_START</b>, <b>BOOST_PP_FRAME_FINISH</b>, 
+			and <b>BOOST_PP_FRAME_FLAGS</b>.
+		</div>
+		<div>
+			So, to fix the last example, we modify the definition of <code>I</code>....
+		</div>
+		<div class="code">
+			<pre>
+// ...
+
+#elif BOOST_PP_ITERATION_DEPTH() == 1
+
+   #define I BOOST_PP_FRAME_ITERATION(1)
+
+// ...
+</pre>
+		</div>
+		<div>
+			The library also provides macros to access values in dimensions <i>relative</i> 
+			to the current dimension (e.g. the <i>previous</i> dimension).&nbsp; These 
+			macros take an argument that is interpreted as an offset from the current 
+			frame.&nbsp; For example, <b>BOOST_PP_RELATIVE_ITERATION</b>(<i>1</i>) always 
+			refers to the outer dimension immediately previous to the current 
+			dimension.&nbsp; An argument of <i>0</i> is interpreted as an offset of <i>0</i>
+			which causes <b>BOOST_PP_RELATIVE_ITERATION</b>(<i>0</i>) to be equivalent to <b>BOOST_PP_ITERATION</b>().&nbsp;
+			<b>BOOST_PP_RELATIVE_ITERATION</b>(<i>2</i>) refers to the iteration value of 
+			the dimension immediately preceding the dimension that precedes the current 
+			dimension.&nbsp;
+		</div>
+		<div>
+			The lower and upper bounds of a dimension can be accessed in this fashion as 
+			well with <b>BOOST_PP_RELATIVE_START</b> and <b>BOOST_PP_RELATIVE_FINISH</b>.&nbsp; 
+			The flags of a relative dimension can be accessed with <b>BOOST_PP_RELATIVE_FLAGS</b>.
+		</div>
+		<h4>
+			Relativity
+		</h4>
+		<div>
+			I mentioned earlier that there is a reason that there are two ways to 
+			parametize the mechanism.&nbsp; The reason is dimensional abstraction.&nbsp; In 
+			certain situations the dimension is unknown by the code that is being 
+			iterated--possibly because the code is reused at multiple, different 
+			dimensions.&nbsp; If that code needs to iterate again, it has to define the 
+			right parameters (based on the dimension) for the mechanism to consume.&nbsp;
+		</div>
+		<div>
+			All of the macro state maintained by the mechanism can be referred to in an 
+			indirect way relative to a dimension.&nbsp; This is the purpose of the <b>BOOST_PP_RELATIVE_</b>
+			accessors.&nbsp;
+		</div>
+		<div>
+			Likewise, the user-defined <i>named external arguments</i> can be defined this 
+			way as well--<i>except</i> the name of the file to iterate.&nbsp; Because the 
+			lower and upper boundaries are <i>evaluated</i> by the mechanism, the 
+			implementation no longer needs the macro <b>BOOST_PP_ITERATION_LIMITS</b>, and 
+			the identifier can be reused for each dimension of iteration.&nbsp;
+		</div>
+		<div>
+			Unfortunately, the filename is a different story.&nbsp; The library has no way 
+			to evaluate the quoted (or angle-bracketed) text.&nbsp; Therefore, it has to 
+			use a different macro for each dimension.&nbsp; That is the purpose of the <b>BOOST_PP_FILENAME_<i>x</i></b>
+			macros.&nbsp; They exist to isolate the only non-abstractable piece of data 
+			required by the mechanism.&nbsp;
+		</div>
+		<div>
+			In order to define the filename in an abstract fashion, you need to do 
+			something like this:
+		</div>
+		<div class="code">
+			<pre>
+#define UNIQUE_TO_FILE "some_file.h"
+
+#if BOOST_PP_ITERATION_DEPTH() == 0
+   #define BOOST_PP_FILENAME_1 UNIQUE_TO_FILE
+#elif BOOST_PP_ITERATION_DEPTH() == 1
+   #define BOOST_PP_FILENAME_2 UNIQUE_TO_FILE
+#elif BOOST_PP_ITERATION_DEPTH() == 2
+   #define BOOST_PP_FILENAME_3 UNIQUE_TO_FILE
+
+// ... up to BOOST_PP_LIMIT_ITERATION_DIM
+
+#endif
+</pre>
+		</div>
+		<div>
+			The intent is to avoid having to do this for anything but the filename.&nbsp; 
+			If this needs to be done more than once in a file (<b>BOOST_PP_FILENAME_<i>x</i></b>
+			is undefined by the mechanism after it is used.), consider using a separate 
+			file to make the proper definition:
+		</div>
+		<div class="code">
+			<pre>
+# // detail/define_file_h.h
+# ifndef FILE_H
+#   error FILE_H is not defined
+# endif
+#
+# if BOOST_PP_ITERATION_DEPTH() == 0
+#   define BOOST_PP_FILENAME_1 FILE_H
+# elif BOOST_PP_ITERATION_DEPTH() == 1
+#   define BOOST_PP_FILENAME_2 FILE_H
+# elif BOOST_PP_ITERATION_DEPTH() == 2
+#   define BOOST_PP_FILENAME_3 FILE_H
+# elif BOOST_PP_ITERATION_DEPTH() == 3
+#   define BOOST_PP_FILENAME_4 FILE_H
+# elif BOOST_PP_ITERATION_DEPTH() == 4
+#   define BOOST_PP_FILENAME_5 FILE_H
+# else
+#   error unsupported iteration dimension
+# endif
+</pre>
+		</div>
+		<div>
+			And then use it like this....
+		</div>
+		<div class="code">
+			<pre>
+// file.h
+#if !BOOST_PP_IS_ITERATING
+
+   #ifndef FILE_H
+   #define FILE_H "file.h"
+
+   #define BOOST_PP_ITERATION_LIMITS (1, 10)
+   #include "detail/define_file_h.h"
+
+   ??=include BOOST_PP_ITERATE()
+
+#endif // FILE_H
+
+#else
+   // iterated portion
+#endif
+</pre>
+		</div>
+		<div>
+			With a little effort like this, it is possible to maintain the abstraction 
+			without the code bloat that would otherwise be required.&nbsp; Unfortunately, 
+			this is not a completely general solution as it would need to be done for each 
+			unique filename, but it is better than nothing.
+		</div>
+		<h4>
+			Conclusion
+		</h4>
+		<div>
+			That about covers the facilities that are available from the mechanism.&nbsp; 
+			Using these facilities, let's implement a <code>function_traits</code> template 
+			to demonstrate a full-fledge use of the mechanism.
+		</div>
+		<h4>
+			Function Traits - An Involved Example
+		</h4>
+		<div>
+			Implementing a comprehensive <code>function_traits</code> template metafunction 
+			requires the use of every major part of the file iteration mechanism.&nbsp;
+		</div>
+		<div>
+			(This example makes no attempt of work around compiler deficiencies and exists 
+			only to illustrate the mechanism.)
+		</div>
+		<div>
+			The result should have the following features:
+		</div>
+		<ul>
+			<li>
+				return type</li>
+			<li>
+				number and types of parameters</li>
+			<li>
+				whether or not the type is a pointer-to-function, reference-to-function, 
+				pointer-to-member-function, or a plain function type</li>
+			<li>
+				whether the type has an ellipsis</li>
+			<li>
+				if not a pointer-to-member-function, the equivalent pointer-to-function, 
+				reference-to-function, and function type</li>
+			<li>
+				otherwise, the pointer-to-member type, the class type to which it refers, and 
+				whether it is const and/or volatile qualified</li>
+		</ul>
+		<div>
+			There are a myriad of ways that this can be implemented.&nbsp; I'll give a 
+			brief summary here of what is happening in the implementation below.&nbsp;
+		</div>
+		<div>
+			The implementation inherently has to deal with function arity.&nbsp; Therefore, 
+			at minimum, we need to iterate over function arities and define partial 
+			specializations of the primary template <code>function_traits</code>.&nbsp; The 
+			situation is further complicated by variadic functions (i.e. functions with an 
+			ellipsis).&nbsp; Therefore, for every arity, we need a variadic version as 
+			well.
+		</div>
+		<div>
+			We also need to handle pointers-to-member-functions.&nbsp; This implies that we 
+			have to handle not just arity and variadics, but also cv-qualifications.&nbsp;
+		</div>
+		<div>
+			For the sake of clarity, the implementation below handles function types and 
+			pointers-to-member-functions separately.&nbsp; They could be merged, but the 
+			result would be significantly messier.
+		</div>
+		<div>
+			To handle function types, the implementation below iterates over function 
+			arities.&nbsp; For each arity, it iterates over each parameter to provide 
+			access to each individually.&nbsp; It then re-includes itself to define a 
+			variadic specialization of the same arity.&nbsp; It performs the rough 
+			equivalent of the following pseudo-code:
+		</div>
+		<div class="code">
+			<pre>
+void make_spec(int i, bool variadic) {
+   :open function_traits&lt;i, variadic&gt;
+      for (int j = 0; j < i; ++j) {
+         :parameter&lt;j&gt;
+      }
+   :close
+   if (!variadic) {
+      make_spec(i, true);
+   }
+   return;
+}
+
+void function_types(int max_arity) {
+   for (int i = 0; i <= max_arity; ++i) {
+      make_spec(i, false);
+   }
+   return;
+}
+</pre>
+		</div>
+		<div>
+			The implementation of pointers-to-member-functions is a bit different.&nbsp; 
+			First, it iterates over cv-qualifiers.&nbsp; For each cv-qualifier, it iterates 
+			over function arities.&nbsp; For each function arity, it iterates again over 
+			each parameter.&nbsp; It then re-includes itself to define a variadic 
+			specialization of the same arity....
+		</div>
+		<div class="code">
+			<pre>
+void make_spec(int j, const char* cv, bool variadic) {
+   :open function_traits&lt;j, cv, variadic&gt;
+      for (int k = 0; k < j; ++k) {
+         parameter&lt;k&gt;
+      }
+   :close
+   if (!variadic) {
+      make_spec(j, cv, true);
+   }
+   return;
+}
+
+void gen_arities(const char* cv, int max_arity) {
+   for (int j = 0; j <= max_arity; ++j) {
+      make_spec(j, cv, false);
+   }
+   return;
+}
+
+void pointers_to_members(int max_arity) {
+   static const char* cv_qualifiers[] = { "", "const", "volatile", "const volatile" };
+   for (int i = 0; i < 4; ++i) {
+      gen_arities(cv_qualifiers[i], max_arity);
+   }
+   return;
+}
+</pre>
+		</div>
+		<div>
+			Here is the complete implementation.&nbsp; This example represents the power of 
+			the file iteration mechanism as well as the library in general, so follow it 
+			carefully if you wish to fully understand what the mechanism does....
+		</div>
+		<div class="code">
+			<pre>
+// function_traits.hpp
+
+#if !BOOST_PP_IS_ITERATING
+
+#ifndef FUNCTION_TRAITS_HPP
+#define FUNCTION_TRAITS_HPP
+
+#include &lt;boost/preprocessor/cat.hpp&gt;
+#include &lt;boost/preprocessor/facilities/apply.hpp&gt;
+#include &lt;boost/preprocessor/iteration/iterate.hpp&gt;
+#include &lt;boost/preprocessor/iteration/self.hpp&gt;
+#include &lt;boost/preprocessor/repetition/enum_params.hpp&gt;
+#include &lt;boost/preprocessor/repetition/enum_trailing_params.hpp&gt;
+#include &lt;boost/preprocessor/tuple/elem.hpp&gt;
+
+// enable user-expansion
+#ifndef FUNCTION_TRAITS_MAX_ARITY
+   #define FUNCTION_TRAITS_MAX_ARITY 15
+#endif
+
+namespace detail {
+
+// avoid replication of "default" values
+struct function_traits_base {
+   static const bool is_plain = false;
+   static const bool is_pointer = false;
+   static const bool is_reference = false;
+   static const bool is_member = false;
+};
+
+} // detail
+
+// no definition
+template&lt;class&gt; struct function_traits;
+
+// extract ellipsis state
+#define ELLIPSIS(n) \
+   BOOST_PP_APPLY( \
+      BOOST_PP_TUPLE_ELEM(2, n, ELLIPSIS_I) \
+   ) \
+   /**/
+
+// iterate over function arities for function types
+#define BOOST_PP_ITERATION_PARAMS_1 \
+   (4, (0, FUNCTION_TRAITS_MAX_ARITY, "function_traits.hpp", 0)) \
+   /**/
+??=include BOOST_PP_ITERATE()
+
+// obtain a cv-qualifier by index
+#define QUALIFIER(n) \
+   BOOST_PP_APPLY( \
+      BOOST_PP_TUPLE_ELEM( \
+         4, n, \
+         (BOOST_PP_NIL, (const), (volatile), (const volatile)) \
+      ) \
+   ) \
+   /**/
+
+// iterate over cv-qualifiers for pointers-to-members
+#define BOOST_PP_ITERATION_PARAMS_1 \
+   (4, (0, 3, "function_traits.hpp", 1)) \
+   /**/
+??=include BOOST_PP_ITERATE()
+
+// remove temporary macros
+#undef QUALIFIER
+#undef ELLIPSIS
+
+// overriding jumper for pointers-to-functions
+template&lt;class T&gt; struct function_traits&lt;T*&gt; : function_traits&lt;T&gt; {
+   static const bool is_plain = false;
+   static const bool is_pointer = true;
+};
+
+// overriding jumper for references-to-functions
+template&lt;class T&gt; struct function_traits&lt;T&amp;&gt; : function_traits&lt;T&gt; {
+   static const bool is_plain = false;
+   static const bool is_reference = true;
+};
+
+// eof
+#endif // FUNCTION_TRAITS_HPP
+
+// specializations for function types
+#elif BOOST_PP_ITERATION_DEPTH() == 1 \
+   &amp;&amp; BOOST_PP_ITERATION_FLAGS() == 0 \
+   /**/
+
+   // define ellipsis state
+   #if BOOST_PP_IS_SELFISH
+      #define ELLIPSIS_I ((true), (...))
+   #else
+      #define ELLIPSIS_I ((false), BOOST_PP_NIL)
+   #endif
+
+   #define N BOOST_PP_ITERATION()
+
+   template&lt;class R BOOST_PP_ENUM_TRAILING_PARAMS(N, class T)&gt;
+   struct function_traits&lt;R (BOOST_PP_ENUM_PARAMS(N, T) ELLIPSIS(1))&gt;
+      : detail::function_traits_base {
+      static const bool is_plain = true;
+      typedef R function_type(BOOST_PP_ENUM_PARAMS(N, T) ELLIPSIS(1));
+      typedef function_type* pointer_type;
+      typedef function_type&amp; reference_type;
+      static const bool has_ellipsis = ELLIPSIS(0);
+      typedef R return_type;
+      static const int parameter_count = N;
+      template&lt;int, class D = int&gt; struct parameter;
+      #if N
+         // iterate over parameters
+         #define BOOST_PP_ITERATION_PARAMS_2 \
+            (3, (0, N - 1, "function_traits.hpp")) \
+            /**/
+         ??=include BOOST_PP_ITERATE()
+      #endif
+   };
+
+   #undef N
+   #undef ELLIPSIS_I
+
+   // re-include this section for an ellipsis variant
+   #if !BOOST_PP_IS_SELFISH
+      #define BOOST_PP_INDIRECT_SELF "function_traits.hpp"
+      ??=include BOOST_PP_INCLUDE_SELF()
+   #endif
+
+// iteration over cv-qualifiers
+#elif BOOST_PP_ITERATION_DEPTH() == 1 \
+   &amp;&amp; BOOST_PP_ITERATION_FLAGS() == 1 \
+   /**/
+
+   #define BOOST_PP_ITERATION_PARAMS_2 \
+      (3, (0, FUNCTION_TRAITS_MAX_ARITY, "function_traits.hpp")) \
+      /**/
+   ??=include BOOST_PP_ITERATE()
+
+// generate specializations for pointers-to-members
+#elif BOOST_PP_ITERATION_DEPTH() == 2 \
+   &amp;&amp; BOOST_PP_FRAME_FLAGS(1) == 1 \
+
+   // define ellipsis state
+   #if BOOST_PP_IS_SELFISH
+      #define ELLIPSIS_I ((true), (...))
+   #else
+      #define ELLIPSIS_I ((false), BOOST_PP_NIL)
+   #endif
+
+   #define N BOOST_PP_ITERATION()
+   #define Q QUALIFIER(BOOST_PP_FRAME_ITERATION(1))
+
+   template&lt;class R, class O BOOST_PP_ENUM_TRAILING_PARAMS(N, class T)&gt;
+   struct function_traits&lt;R (O::*)(BOOST_PP_ENUM_PARAMS(N, T) ELLIPSIS(1)) Q&gt;
+      : detail::function_traits_base {
+      static const bool is_member = true;
+      typedef R (O::* pointer_to_member_type)(BOOST_PP_ENUM_PARAMS(N, T) ELLIPSIS(1)) Q;
+      typedef O class_type;
+      typedef Q O qualified_class_type;
+      static const bool has_ellipsis = ELLIPSIS(0);
+      static const bool is_const =
+         BOOST_PP_FRAME_ITERATION(1) == 1 || BOOST_PP_FRAME_ITERATION(1) == 3;
+      static const bool is_volatile =
+         BOOST_PP_FRAME_ITERATION(1) == 2 || BOOST_PP_FRAME_ITERATION(1) == 3;
+      typedef R return_type;
+      static const int parameter_count = N;
+      template&lt;int, class D = int&gt; struct parameter;
+      #if N
+         // iterate over parameters
+         #define BOOST_PP_ITERATION_PARAMS_3 \
+            (3, (0, N - 1, "function_traits.hpp")) \
+            /**/
+         ??=include BOOST_PP_ITERATE()
+      #endif
+   };
+
+   #undef Q
+   #undef N
+   #undef ELLIPSIS_I
+
+   // re-include this section for an ellipsis variant
+   #if !BOOST_PP_IS_SELFISH
+      #define BOOST_PP_INDIRECT_SELF "function_traits.hpp"
+      ??=include BOOST_PP_INCLUDE_SELF()
+   #endif
+
+// parameter specializations
+#else
+
+   #define X BOOST_PP_ITERATION()
+
+      template&lt;class D&gt; struct parameter&lt;X, D&gt; {
+         typedef BOOST_PP_CAT(T, X) type;
+      };
+
+   #undef X
+
+#endif
+</pre>
+		</div>
+		<div>
+			One problem that still exists is the lack of support for <code>throw</code> specifications.&nbsp; 
+			There is no way that we can completely handle it anyway because we cannot 
+			partially specialize on <code>throw</code> specifications.&nbsp; However, we 
+			could accurately report the "actual" function type, etc., including the <code>throw</code>
+			specification (which the above implementation doesn't do, as it reconstructs 
+			those types).&nbsp; If you like, you can figure out how to do that on your own 
+			as an exercise.&nbsp;
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li>
+				<a href="../ref/iterate.html">BOOST_PP_ITERATE</a></li>
+		</ul>
+		<div class="sig">
+			- Paul Mensonides
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/topics/incompatible.html b/doc/topics/incompatible.html
new file mode 100644
index 0000000..7fb3762
--- /dev/null
+++ b/doc/topics/incompatible.html
@@ -0,0 +1,140 @@
+<html>
+<head>
+	<title>incompatible.html</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+	<h4>Incompatibilities</h4>
+	<div>
+		There are several incompatibilities with the previous Boost release (1.28).&nbsp;
+		These fall into roughly three categories:&nbsp;
+	</div>
+	<ul>
+		<li>the horizontal repetition primitives based on <b>BOOST_PP_REPEAT</b></li>
+		<li>the reentrancy syntax</li>
+		<li><i>list</i> folding</li>
+	</ul>
+	<h4>Repetition Targets</h4>
+	<div>
+		First, and probably the most commonly used, is the target macros passed into <b>BOOST_PP_REPEAT</b> and the horizontal repetition contructs that use <b>BOOST_PP_REPEAT</b>.&nbsp;
+		This includes all of the <b>BOOST_PP_REPEAT_</b>* primitives and all of the <b>BOOST_PP_ENUM_</b>* primitives that require a target macro.
+	</div>
+	<div>
+		The incompatiblity is trivial, but it will require that the source be updated.&nbsp;
+	</div>
+	<div>
+		These target macros must now except a <i>third</i> parameter.&nbsp;
+		This extra parameter becomes the <i>first</i> parameter in every target macro.&nbsp;
+		It represents the next repetition dimension and brings <b>BOOST_PP_REPEAT</b> inline with rest of the library.&nbsp;
+	</div>
+	<div>
+		So, what once was:
+	</div>
+	<div class="code">
+		#define <i>macro</i>(<i>n</i>, <i>data</i>) ...<br>
+		<b>BOOST_PP_REPEAT</b>(<i>5</i>, <i>macro</i>, <i>data</i>)
+	</div>
+	<div>
+		...is now:
+	</div>
+	<div class="code">
+		#define <i>macro</i>(<i>z</i>, <i>n</i>, <i>data</i>) ...<br>
+		<b>BOOST_PP_REPEAT</b>(<i>5</i>, <i>macro</i>, <i>data</i>)
+	</div>
+	<div>
+		This parameter can be used for highly efficient reentrance into the <b>BOOST_PP_REPEAT</b> mechanism.&nbsp;
+		However, it is not necessary to use it as the library can automatically detect the next available repetition dimension.
+	</div>
+	<h4>Dimensional Ordering</h4>
+	<div>
+		Because of this detection, however, it is unsafe to use <b>BOOST_PP_REPEAT_1ST</b>, <b>BOOST_PP_REPEAT_2ND</b>, and <b>BOOST_PP_REPEAT_3RD</b> out of order.&nbsp;
+		These macros bypass the <i>automatic-recursion</i> mechanism, and the <i>automatic-recursion</i> mechanism relies on macros being used in the proper order.&nbsp;
+		To clarify, if you use these bypass macros, the outer-most repetition <i>must</i> be <b>BOOST_PP_REPEAT_1ST</b>, then <b>BOOST_PP_REPEAT_2ND</b>, and finally <b>BOOST_PP_REPEAT_3RD</b>.&nbsp;
+		Any other usage is not supported by the library.&nbsp;
+		Sometimes it may work, and other times it won't.
+	</div>
+	<h4>Reentrancy Syntax</h4>
+	<div>
+		<i>Automatic-recursion</i> brings with it another issue as well.&nbsp;Previously, the reentrancy syntax for <b>BOOST_PP_WHILE</b> (and similarly for <b>BOOST_PP_FOR</b>) was:
+	</div>
+	<div class="code">
+		<b>BOOST_PP_WHILE</b> ## <i>d</i>(<i>pred</i>, <i>op</i>, <i>state</i>)
+	</div>
+	<div>
+		...or:
+	</div>
+	<div class="code">
+		<b>BOOST_PP_CAT</b>(<b>BOOST_PP_WHILE</b>, <i>d</i>)(<i>pred</i>, <i>op</i>, <i>state</i>)
+	</div>
+	<div>
+		Under the <i>automatic-recursion</i> model, the <b>BOOST_PP_CAT</b> version breaks.&nbsp;
+		This is because <b>BOOST_PP_CAT</b> allows its arguments to expand prior to concatenation,
+		and <b>BOOST_PP_WHILE</b> is a macro that expands without arguments.&nbsp;
+		The library makes it appear that it takes three parameters, but that is the trick of <i>automatic-recursion</i>.&nbsp;
+		It works similarly to the following:
+	</div>
+	<div class="code">
+		#define A(x, y) ...<br>
+		#define B A<br>
+		// ...<br>
+		B(2, 3)
+	</div>
+	<div>
+		The syntax makes it look like the <i>B</i> macro above takes two arguments, but it doesn't.&nbsp;
+		The <i>automatic-recursion</i> mechanism works in this fashion, except that the "<i>B</i>" macro deduces the next available "<i>A</i>" macro.
+	</div>
+	<div>
+		Because some preprocessors are still slow, direct reentrancy (sans <i>automatic-recursion</i>) is still necessary in non-trivial cases.&nbsp;
+		Consequently, the library uses a new syntax to handle reentrancy:
+	</div>
+	<div class="code">
+		<b>BOOST_PP_FOR_</b> ## <i>r</i>(<i>state</i>, <i>pred</i>, <i>op</i>, <i>macro</i>)<br>
+		<b>BOOST_PP_REPEAT_</b> ## <i>z</i>(<i>count</i>, <i>macro</i>, <i>data</i>)<br>
+		<b>BOOST_PP_WHILE_</b> ## <i>d</i>(<i>pred</i>, <i>op</i>, <i>state</i>)
+	</div>
+	<h4>Folding</h4>
+	<div>
+		Previously, the <b>BOOST_PP_LIST_FOLD_RIGHT</b> macros' arguments were the reverse of <b>BOOST_PP_LIST_FOLD_LEFT</b>.&nbsp;
+		Also, the accumulation macro passed into <b>BOOST_PP_LIST_FOLD_RIGHT</b> was called with reversed parameters as well.&nbsp;
+		This discrepancy has been eliminated.
+	</div>
+	<div>
+		To illustrate, <b>BOOST_PP_LIST_FOLD_RIGHT</b> used to be used like this:
+	</div>
+	<div class="code">
+		#define <i>macro</i>(<i>d</i>, <u><i>elem</i></u>, <u><i>state</i></u>)<br>
+		<b>BOOST_PP_LIST_FOLD_RIGHT</b>(<i>macro</i>, <u><i>list</i></u>, <u><i>state</i></u>)
+	</div>
+	<div>
+		This signature has been replaced by...
+	</div>
+	<div class="code">
+		#define <i>macro</i>(<i>d</i>, <u><i>state</i></u>, <u><i>elem</i></u>)<br>
+		<b>BOOST_PP_LIST_FOLD_RIGHT</b>(<i>macro</i>, <u><i>state</i></u>, <u><i>list</i></u>)
+	</div>
+	<h4>Summary</h4>
+	<div>
+		The library has many new features not present in the 1.28 release, and this list does not attempt to enumerate them.&nbsp;
+		This is simply a list of things that <i>must</i> change for code to be compatible with this new release.
+	</div>
+	<h4>See Also</h4>
+	<ul>
+		<li><a href="../ref/for.html">BOOST_PP_FOR</a></li>
+		<li><a href="../ref/list_fold_right.html">BOOST_PP_LIST_FOLD_RIGHT</a></li>
+		<li><a href="../ref/repeat.html">BOOST_PP_REPEAT</a></li>
+		<li><a href="../ref/while.html">BOOST_PP_WHILE</a></li>
+	</ul>
+	<div class="sig">- Paul Mensonides</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/topics/local_iteration.html b/doc/topics/local_iteration.html
new file mode 100644
index 0000000..5f75430
--- /dev/null
+++ b/doc/topics/local_iteration.html
@@ -0,0 +1,156 @@
+<html>
+<head>
+	<title>local_iteration.html</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<h4>Local Iteration</h4>
+<div>
+	Local iteration is a simple vertical repetition construct.&nbsp;
+	It expands a macro with each number in a user-specified range.&nbsp;
+	Each expansion is on a separate line.
+</div>
+<h4>Tutorial</h4>
+<div>
+	This mechanism requires two pieces of information to operate:&nbsp;
+	a range to iterate over and a macro to expand on each iteration.&nbsp;
+	This information is obtained by the mechanism through two <i>named external arguments</i>.&nbsp;
+	These arguments are specified as user-defined macros named <b>BOOST_PP_LOCAL_LIMITS</b> and <b>BOOST_PP_LOCAL_MACRO</b>.
+</div>
+<div>
+	<b>BOOST_PP_LOCAL_LIMITS</b> specifies a range of values to iterate over.&nbsp;
+	It <i>must</i> expand to a <i>tuple</i> containing two elements--a lower and upper bound.&nbsp;
+	Both the upper and lower bounds must be numeric values in the range of <i>0</i> to <b>BOOST_PP_LIMIT_ITERATION</b>.&nbsp;
+	For example, if the user wishes a macro to be expanded with numbers ranging from <i>0</i> to <i>10</i>,
+	<b>BOOST_PP_LOCAL_LIMITS</b> would be defined like this:
+</div>
+<div class="code"><pre>
+#define BOOST_PP_LOCAL_LIMITS (0, 10)
+</pre></div>
+<div>
+	Note that there is whitespace after the name of the macro.&nbsp;
+	The macro <i>does not</i> take <i>two</i> arguments.&nbsp;
+	In the case above, if there was no whitespace, a preprocessing error would occur because <i>0</i> and <i>10</i> are invalid identifiers.
+</div>
+<div>
+	Both the upper and lower bounds specified in the <b>BOOST_PP_LOCAL_LIMITS</b> macro are <i>evaluated parameters</i>.&nbsp;
+	This implies that they can include simple arithmetic or logical expressions.&nbsp;
+	For instance, the above definition could easily have been written like this:
+</div>
+<div class="code"><pre>
+#define N() 5
+#define BOOST_PP_LOCAL_LIMITS (0, N() + 5)
+</pre></div>
+<div>
+	Because of this, if the whitespace after the macro name is elided, it is possible for the definition to be syntactically valid:
+</div>
+<div class="code"><pre>
+#define A 0
+#define B 10
+#define BOOST_PP_LOCAL_LIMITS(A, B)
+   // note:  no whitespace   ^
+</pre></div>
+<div>
+	If this happens, an error will occur inside the mechanism when it attempts to use this macro.&nbsp;
+	The error messages that result may be obscure, so always remember to include the whitespace.&nbsp;
+	A <i>correct</i> version of the above looks like this:
+</div>
+<div class="code"><pre>
+#define A 0
+#define B 10
+#define BOOST_PP_LOCAL_LIMITS (A, B)
+   // note:  has whitespace  ^
+</pre></div>
+<div>
+	<b>BOOST_PP_LOCAL_MACRO</b> is the macro that is expanded by the mechanism.&nbsp;
+	This macro is expanded on each iteration with the current number of the iteration.&nbsp;
+	It must defined as a unary macro <i>or</i> result in a macro that can be called with one argument:
+</div>
+<div class="code"><pre>
+#define BOOST_PP_LOCAL_MACRO(n) \
+   template&lt;&gt; struct sample&lt;n&gt; { }; \
+   /**/
+</pre></div>
+<div>
+	...or...
+</div>
+<div class="code"><pre>
+#define SAMPLE(n) \
+   template&lt;&gt; struct sample&lt;n&gt; { }; \
+   /**/
+
+#define BOOST_PP_LOCAL_MACRO SAMPLE
+</pre></div>
+<div>
+	Once these two macros are defined, the local iteration is initiated by <i>including</i> <b>BOOST_PP_LOCAL_ITERATE</b>().
+</div>
+<div class="code"><pre>
+??=include BOOST_PP_LOCAL_ITERATE()
+</pre></div>
+<div>
+	(The <code>??=</code> token is a trigraph for <code>#</code>.&nbsp;
+	I use the trigraph to make it clear that I am <i>including</i> a file rather than defining or expanding a macro, but it is not necessary.&nbsp;
+	Even the digraph version, <code>%:</code>, could be used.&nbsp;
+	Some compilers do not readily accept trigraphs and digraphs, so keep that in mind.&nbsp;
+	Other than that, use whichever one you prefer.)
+</div>
+<div>
+	In order to repeat the <code>sample</code> specialization, the pieces must be put together....
+</div>
+<div class="code"><pre>
+#define BOOST_PP_LOCAL_MACRO(n) \
+   template&lt;&gt; struct sample&lt;n&gt; { }; \
+   /**/
+
+#define BOOST_PP_LOCAL_LIMITS (0, 10)
+??=include BOOST_PP_LOCAL_ITERATE()
+</pre></div>
+<div>
+	This will result in a specialization of <code>sample</code> for each number in the range of <i>0</i> to <i>10</i>.&nbsp;
+	The output will look something like this:
+</div>
+<div class="code"><pre>
+template&lt;&gt; struct sample&lt;0&gt; { };
+template&lt;&gt; struct sample&lt;1&gt; { };
+template&lt;&gt; struct sample&lt;2&gt; { };
+
+// ...
+
+template&lt;&gt; struct sample&lt;10&gt; { };
+</pre></div>
+<div>
+	After the local-iteration is complete, both <b>BOOST_PP_LOCAL_LIMITS</b> and <b>BOOST_PP_LOCAL_MACRO</b> are automatically undefined.&nbsp;
+	If the values need to be retained for a future local-iteration, they must be defined indirectly:
+</div>
+<div class="code"><pre>
+#define LIMITS (0, 10)
+
+#define SAMPLE(n) \
+   template&lt;&gt; struct sample&lt;n&gt; { }; \
+   /**/
+
+#define BOOST_PP_LOCAL_LIMITS LIMITS
+#define BOOST_PP_LOCAL_MACRO(n) SAMPLE(n)
+
+??=include BOOST_PP_LOCAL_ITERATE()
+</pre></div>
+<h4>See Also</h4>
+<ul>
+	<li><a href="../ref/local_iterate.html">BOOST_PP_LOCAL_ITERATE</a></li>
+	<li><a href="../ref/local_limits.html">BOOST_PP_LOCAL_LIMITS</a></li>
+	<li><a href="../ref/local_macro.html">BOOST_PP_LOCAL_MACRO</a></li>
+</ul>
+<div class="sig">- Paul Mensonides</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/topics/motivation.html b/doc/topics/motivation.html
new file mode 100644
index 0000000..eee5120
--- /dev/null
+++ b/doc/topics/motivation.html
@@ -0,0 +1,119 @@
+<html>
+<head>
+	<title>motivation.html</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<h4>Motivation</h4>
+<div>
+	The C++ function and template parameter lists are special syntactic constructs, and it is impossible to directly
+	manipulate or generate them using C++ constructs.&nbsp;
+	This leads to unnecessary code repetition.
+</div>
+<div>
+	Consider the implementation of the <code>is_function&lt;&gt;</code> metafunction is Boost.&nbsp;
+	The implementation uses an overloaded <code>is_function_tester()</code> function that is used for testing if a type is convertible
+	to a pointer to a function.&nbsp;
+	Because of the special treatment of parameter lists, it is not possible to directly match a function with an arbitrary parameter list.&nbsp;
+	Instead, the <code>is_function_tester()</code> must be overloaded for every distinct number of parameters that is to be supported.&nbsp;
+	For example:
+</div>
+<div class="code"><pre>
+template&lt;class R&gt;
+yes_type is_function_tester(R (*)());
+
+template&lt;class R, class A0&gt;
+yes_type is_function_tester(R (*)(A0));
+
+template&lt;class R, class A0, class A1&gt;
+yes_type is_function_tester(R (*)(A0, A1));
+
+template&lt;class R, class A0, class A1, class A2&gt;
+yes_type is_function_tester(R (*)(A0, A1, A2));
+
+// ...
+</pre></div>
+<div>
+	The need for this kind of repetition occurs particularly frequently while implementing generic components or metaprogramming facilities,
+	but the need also manifests itself in many far simpler situations.
+</div>
+<h4>Typical Solutions</h4>
+<div>
+	Typically the repetition is done manually.&nbsp;
+	Manual code repetition is highly unproductive, but sometimes more readable to the untrained eye.
+</div>
+<div>
+	Another solution is to write an external program for generating the repeated code or use some other extra linguistic means such as a smart editor.&nbsp;
+	Unfortunately, using external code generators has many disadvantages:
+	<ul>
+		<li>Writing the generator takes time.&nbsp; (This could be helped by using a standard generator.)</li>
+		<li>It is no longer productive to manipulate C++ code directly.</li>
+		<li>Invoking the generator may be difficult.</li>
+		<li>Automating the invocation of the generator can be difficult in certain environments.&nbsp; (Automatic invocation is desirable for active libraries.)</li>
+		<li>Porting and distributing the generator may be difficult or simply takes precious time.</li>
+	</ul>
+</div>
+<h4>What about the preprocessor?</h4>
+<div>
+	Because C++ comes with a preprocessor, one would assume that it would support these kinds of needs directly.&nbsp;
+	Using the preprocessor in this case is highly desirable because:
+	<ul>
+		<li>The preprocessor is highly portable.</li>
+		<li>The preprocessor is automatically invoked as part of the compilation process.</li>
+		<li>Preprocessor metacode can be directly embedded into the C++ source code.</li>
+		<li>Compilers generally allow viewing or outputting the preprocessed code, which can be used for debugging or to copy and paste the generated code.</li>
+	</ul>
+</div>
+<div>
+	Most unfortunately, the preprocessor is a very low level preprocessor that specifically does not support repetition or recursive macros.&nbsp;
+	Library support is needed!
+</div>
+<div>
+	<i>For detailed information on the capabilities and limitations of the preprocessor, please refer to the C++ standard <a href="../bibliography.html#std">[Std]</a>.</i>
+</div>
+<h4>The Motivation Example Revisited</h4>
+<div>
+	Using the primitives of the preprocessor library, the <code>is_function_tester()</code>'s could be implemented like this:
+</div>
+<div class="code"><pre>
+#include &lt;boost/preprocessor/arithmetic/inc.hpp&gt;
+#include &lt;boost/preprocessor/punctuation/comma_if.hpp&gt;
+#include &lt;boost/preprocessor/repetition.hpp&gt;
+
+#ifndef MAX_IS_FUNCTION_TESTER_PARAMS
+#define MAX_IS_FUNCTION_TESTER_PARAMS 15
+#endif
+
+#define IS_FUNCTION_TESTER(Z, N, _) \
+   template&lt;class R BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, class A)&gt; \
+   yes_type is_function_tester(R (*)(BOOST_PP_ENUM_PARAMS(N, A))); \
+   /**/
+
+BOOST_PP_REPEAT(BOOST_PP_INC(MAX_IS_FUNCTION_TESTER_PARAMS), IS_FUNCTION_TESTER, _)
+
+#undef IS_FUNCTION_TESTER
+</pre></div>
+<div>
+	In order to change the maximum number of function parameters supported, you now simply change the <code>MAX_IS_FUNCTION_TESTER_PARAMS</code> definition and recompile.
+</div>
+<hr size="1">
+<div style="margin-left: 0px;">
+	<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+</div>
+<div style="margin-left: 0px;">
+Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies.&nbsp;
+This document is provided "as is" without express or implied warranty and with no claim as to its suitability for any purpose.
+</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/topics/problems.html b/doc/topics/problems.html
new file mode 100644
index 0000000..43e0059
--- /dev/null
+++ b/doc/topics/problems.html
@@ -0,0 +1,135 @@
+<html>
+<head>
+	<title>problems.html</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<h4>Known Problems of the C/C++ Preprocessor</h4>
+<div>
+	Preprocessor metaprogramming is subject to heated discussions.&nbsp;
+	Part of this is caused by bad experiences with dangerous techniques,
+	such as defining inline functions using macros.&nbsp;
+	As a rule of thumb, if you can find a clean and manageable way to do something
+	without the preprocessor, then you should do it that way.
+</div>
+<div>
+	Let's survey some of the widely known problems of the preprocessor in a problem/solution format.
+</div>
+<h4>Problem #1</h4>
+<div>
+	The preprocessor does not respect scope, therefore macros can accidentally and sometimes silently replace code.
+</div>
+<div>
+	<b>Solution A</b>
+	<div>
+		Use all caps identifiers for macros and only macros.&nbsp;
+		This practically eliminates the possibility that a macro might replace other kinds of code accidentally.
+	</div>
+</div>
+<div>
+	<b>Solution B</b>
+	<div>
+		Use the local macro idiom:
+	</div>
+<div class="code"><pre>
+#define MACRO ...
+// use MACRO
+#undef MACRO
+</pre></div>
+	<div>
+		This makes sure that a macro cannot accidentally replace code outside of the scope of the local macro.
+	</div>
+	<div>
+		A problem with this solution is that the #undef cannot be automated and may be forgotten.&nbsp;
+		Experienced programmers generally write the #undef either immediately before (in time)
+		or immediately after writing the macro definition.
+	</div>
+</div>
+<div>
+	<b>Solution C</b>
+	<div>
+		Use the unique macro prefix idiom.
+	</div>
+<div class="code"><pre>
+#define UMP_MACRO
+// use UMP_MACRO
+</pre></div>
+	<div>
+		This makes accidental substitution and collisions highly unlikely.&nbsp;
+		Problems with this solution include:
+	</div>
+	<ul>
+		<li>There can still be naming collisions inside a large project.</li>
+		<li>Macros still pollute the global namespace.</li>
+	</ul>
+	<i>By combining all solutions, whenever possible, the scope problem can be largely avoided.</i>
+</div>
+<h4>Problem #2</h4>
+<div>
+	Preprocessor code is difficult to read.&nbsp;
+	It requires an understanding of the basic process of how the preprocessor recursively expands macros,
+	finding macro definitions, and mentally substituting the parameters of the macro.
+</div>
+<div>
+	<b>Solution</b>
+	<div>
+		Any kind of programming requires a basic understanding of how the code is executed.&nbsp;
+		Any parameterization technique, including simple functions and templates requires finding
+		the definition and mentally substituting parameters.
+	</div>
+	<div>
+		However, it is good to know a few techniques:
+	</div>
+	<ul>
+		<li>By using as many local macros as reasonable, the bulk of the searching process can be eliminated.</li>
+		<li>Code browsers and text search tools make it easier to find the definitions.</li>
+		<li>The compiler can be used for generating the preprocessed source code in order to look for bugs.</li>
+		<li>
+			Before turning something into a preprocessor metaprogram, first implement a small scale version
+			of it without the preprocessor.&nbsp;
+			The work bottom-up, replacing hand-written constructs by using the preprocessor.&nbsp;
+			This way you can test the code incrementally.&nbsp;
+			Experienced programmers often skip many stages, but if something proves too complex to write
+			directly, it is always possible to fall back to incremental methods.
+		</li>
+		<li>
+			If you insert a special symbol into the preprocessor code in places where there should be a line break,
+			you can make code readable after preprocessing simply by using a search and replace tool.
+		</li>
+	</ul>
+	<i>An especially important thing to remember is to limit the use of the preprocessor to
+	structured, well-understood, and safe methods.&nbsp;
+	Structure helps to understand complex systems <a href="../bibliography.html#mcconnell">[McConnell]</a>.</i>
+</div>
+<h4>Problem #3</h4>
+<div>
+	"I'd like to see Cpp abolished." - <i>Bjarne Stroustrup</i> in <a href="../bibliography.html#stroustrup">[Stroustrup]</a>.
+</div>
+<div>
+	<b>Solution</b>
+	<div>
+		The C/C++ preprocessor will be here for a long time.
+	</div>
+	<i>In practice, preprocessor metaprogramming is far simpler and more portable than template metaprogramming <a href="../bibliography.html#czarnecki">[Czarnecki]</a>.</i>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;">
+	<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+</div>
+<div style="margin-left: 0px;">
+Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies.&nbsp;
+This document is provided "as is" without express or implied warranty and with no claim as to its suitability for any purpose.
+</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/topics/reentrancy.html b/doc/topics/reentrancy.html
new file mode 100644
index 0000000..b8f2cbc
--- /dev/null
+++ b/doc/topics/reentrancy.html
@@ -0,0 +1,298 @@
+<html>
+	<head>
+		<title>reentrancy.html</title>
+		<link rel="stylesheet" type="text/css" href="../styles.css">
+	</head>
+	<body>
+		<h4>
+			Reentrancy
+		</h4>
+		<div>
+			Macro expansion in the preprocessor is entirely functional.&nbsp; Therefore, 
+			there is no iteration.&nbsp; Unfortunately, the preprocessor also disallows 
+			recursion.&nbsp; This means that the library must fake iteration or recursion 
+			by defining sets of macros that are implemented similarly.&nbsp;
+		</div>
+		<div>
+			To illustrate, here is a simple concatenation macro:
+		</div>
+		<div class="code">
+			<pre>
+#define CONCAT(a, b) CONCAT_D(a, b)
+#define CONCAT_D(a, b) a ## b
+
+CONCAT(a, CONCAT(b, c)) // abc
+</pre>
+		</div>
+		<div>
+			This is fine for a simple case like the above, but what happens in a scenario 
+			like the following:
+		</div>
+		<div class="code">
+			<pre>
+#define AB(x, y) CONCAT(x, y)
+
+CONCAT(A, B(p, q)) // CONCAT(p, q)
+</pre>
+		</div>
+		<div>
+			Because there is no recursion, the example above expands to <code>CONCAT(p, q)</code>
+			rather than <code>pq</code>.
+		</div>
+		<div>
+			There are only two ways to "fix" the above.&nbsp; First, it can be documented 
+			that <code>AB</code> uses <code>CONCAT</code> and disallow usage similar to the 
+			above.&nbsp; Second, multiple concatenation macros can be provided....
+		</div>
+		<div class="code">
+			<pre>
+#define CONCAT_1(a, b) CONCAT_1_D(a, b)
+#define CONCAT_1_D(a, b) a ## b
+
+#define CONCAT_2(a, b) CONCAT_2_D(a, b)
+#define CONCAT_2_D(a, b) a ## b
+
+#define AB(x, y) CONCAT_2(x, y)
+
+CONCAT_1(A, B(p, q)) // pq
+</pre>
+		</div>
+		<div>
+			This solves the problem.&nbsp; However, it is now necessary to know that <code>AB</code>
+			uses, not only <i>a</i> concatenation macro, but <code>CONCAT_2</code> specifically.
+		</div>
+		<div>
+			A better solution is to abstract <i>which</i> concatenation macro is used....
+		</div>
+		<div class="code">
+			<pre>
+#define AB(c, x, y) CONCAT_ ## c(x, y)
+
+CONCAT_1(A, B(2, p, q)) // pq
+</pre>
+		</div>
+		<div>
+			This is an example of <i>generic reentrance</i>, in this case, into a fictional 
+			set of concatenation macros.&nbsp; The <code>c</code> parameter represents the 
+			"state" of the concatenation construct, and as long as the user keeps track of 
+			this state, <code>AB</code> can be used inside of a concatenation macro.
+		</div>
+		<div>
+			The library has the same choices.&nbsp; It either has to disallow a construct 
+			being inside itself or provide multiple, equivalent definitions of a construct 
+			and provide a uniform way to <i>reenter</i> that construct.&nbsp; There are 
+			several contructs that <i>require</i> recursion (such as <b>BOOST_PP_WHILE</b>).&nbsp; 
+			Consequently, the library chooses to provide several sets of macros with 
+			mechanisms to reenter the set at a macro that has not already been used.
+		</div>
+		<div>
+			In particular, the library must provide reentrance for <b>BOOST_PP_FOR</b>, <b>BOOST_PP_REPEAT</b>, 
+			and <b>BOOST_PP_WHILE</b>.&nbsp; There are two mechanisms that are used to 
+			accomplish this:&nbsp; state parameters (like the above concatenation example) 
+			and <i>automatic recursion</i>.
+		</div>
+		<h4>
+			State Parameters
+		</h4>
+		<div>
+			Each of the above constructs (<b>BOOST_PP_FOR</b>, <b>BOOST_PP_REPEAT</b>, and <b>BOOST_PP_WHILE</b>) 
+			has an associated state.&nbsp; This state provides the means to reenter the 
+			respective construct.
+		</div>
+		<div>
+			Several user-defined macros are passed to each of these constructs (for use as 
+			predicates, operations, etc.).&nbsp; Every time a user-defined macro is 
+			invoked, it is passed the current state of the construct that invoked it so 
+			that the macro can reenter the respective set if necessary.
+		</div>
+		<div>
+			These states are used in one of two ways--either by concatenating to or passing 
+			to another macro.
+		</div>
+		<div>
+			There are three types of macros that use these state parameters.&nbsp; First, 
+			the set itself which is reentered through concatenation.&nbsp; Second, 
+			corresponding sets that act like they are a part of the the primary set.&nbsp; 
+			These are also reentered through concatenation.&nbsp; And third, macros that 
+			internally use the first or second type of macro.&nbsp; These macros take the 
+			state as an additional argument.
+		</div>
+		<div>
+			The state of <b>BOOST_PP_WHILE</b> is symbolized by the letter <i>D</i>.&nbsp; 
+			Two user-defined macros are passed to <b>BOOST_PP_WHILE</b>--a predicate and an 
+			operation.&nbsp; When <b>BOOST_PP_WHILE</b> expands these macros, it passes 
+			along its state so that these macros can reenter the <b>BOOST_PP_WHILE</b> set.&nbsp;
+		</div>
+		<div>
+			Consider the following multiplication implementation that illustrates this 
+			technique:
+		</div>
+		<div class="code">
+			<pre>
+// The addition interface macro.
+// The _D signifies that it reenters
+// BOOST_PP_WHILE with concatenation.
+
+#define ADD_D(d, x, y) \
+   BOOST_PP_TUPLE_ELEM( \
+      2, 0, \
+      BOOST_PP_WHILE_ ## d(ADD_P, ADD_O, (x, y)) \
+   ) \
+   /**/
+
+// The predicate that is passed to BOOST_PP_WHILE.
+// It returns "true" until "y" becomes zero.
+
+#define ADD_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy)
+
+// The operation that is passed to BOOST_PP_WHILE.
+// It increments "x" and decrements "y" which will
+// eventually cause "y" to equal zero and therefore
+// cause the predicate to return "false."
+
+#define ADD_O(d, xy) \
+   ( \
+      BOOST_PP_INC( \
+         BOOST_PP_TUPLE_ELEM(2, 0, xy) \
+      ), \
+      BOOST_PP_DEC( \
+         BOOST_PP_TUPLE_ELEM(2, 1, xy) \
+      ) \
+   ) \
+   /**/
+
+// The multiplication interface macro.
+
+#define MUL(x, y) \
+   BOOST_PP_TUPLE_ELEM( \
+      3, 0, \
+      BOOST_PP_WHILE(MUL_P, MUL_O, (0, x, y)) \
+   ) \
+   /**/
+
+// The predicate that is passed to BOOST_PP_WHILE.
+// It returns "true" until "y" becomes zero.
+
+#define MUL_P(d, rxy) BOOST_PP_TUPLE_ELEM(3, 2, rxy)
+
+// The operation that is passed to BOOST_PP_WHILE.
+// It adds "x" to "r" and decrements "y" which will
+// eventually cause "y" to equal zero and therefore
+// cause the predicate to return "false."
+
+#define MUL_O(d, rxy) \
+   ( \
+      ADD_D( \
+         d, /* pass the state on to ADD_D */ \
+         BOOST_PP_TUPLE_ELEM(3, 0, rxy), \
+         BOOST_PP_TUPLE_ELEM(3, 1, rxy) \
+      ), \
+      BOOST_PP_TUPLE_ELEM(3, 1, rxy), \
+      BOOST_PP_DEC( \
+         BOOST_PP_TUPLE_ELEM(3, 2, rxy) \
+      ) \
+   ) \
+   /**/
+
+MUL(3, 2) // expands to 6
+</pre>
+		</div>
+		<div>
+			There are a couple things to note in the above implementation.&nbsp; First, 
+			note how <code>ADD_D</code> reenters <b>BOOST_PP_WHILE</b> using the <i>d</i> state 
+			parameter.&nbsp; Second, note how <code>MUL</code>'s operation, which is 
+			expanded by <b>BOOST_PP_WHILE</b>, passes the state on to <code>ADD_D</code>.&nbsp; 
+			This illustrates state reentrance by both argument and concatenation.
+		</div>
+		<div>
+			For every macro in the library that uses <b>BOOST_PP_WHILE</b>, there is a 
+			state reentrant variant.&nbsp; If that variant uses an argument rather than 
+			concatenation, it is suffixed by <code>_D</code> to symbolize its method of 
+			reentrance.&nbsp; Examples or this include the library's own <b>BOOST_PP_ADD_D</b>
+			and <b>BOOST_PP_MUL_D</b>.&nbsp; If the variant uses concatenation, it is 
+			suffixed by an underscore.&nbsp; It is completed by concatenation of the 
+			state.&nbsp; This includes <b>BOOST_PP_WHILE</b> itself with <b>BOOST_PP_WHILE_</b>
+			## <i>d</i> and, for example, <b>BOOST_PP_LIST_FOLD_LEFT</b> with <b>BOOST_PP_LIST_FOLD_LEFT_</b>
+			## <i>d</i>.
+		</div>
+		<div>
+			The same set of conventions are used for <b>BOOST_PP_FOR</b> and <b>BOOST_PP_REPEAT</b>, 
+			but with the letters <i>R</i> and <i>Z</i>, respectively, to symbolize their 
+			states.
+		</div>
+		<div>
+			Also note that the above <code>MUL</code> implementation, though not 
+			immediately obvious, is using <i>all three</i> types of reentrance.&nbsp; Not 
+			only is it using both types of <i>state</i> reentrance, it is also using <i>automatic 
+				recursion</i>....
+		</div>
+		<h4>
+			Automatic Recursion
+		</h4>
+		<div>
+			Automatic recursion is a technique that vastly simplifies the use of reentrant 
+			constructs.&nbsp; It is used by simply <i>not</i> using any state parameters at 
+			all.
+		</div>
+		<div>
+			The <code>MUL</code> example above uses automatic recursion when it uses <b>BOOST_PP_WHILE</b>
+			by itself.&nbsp; In other words, <code>MUL</code> can <i>still</i> be used 
+			inside <b>BOOST_PP_WHILE</b> even though it doesn't reenter <b>BOOST_PP_WHILE</b>
+			by concatenating the state to <b>BOOST_PP_WHILE_</b>.
+		</div>
+		<div>
+			To accomplish this, the library uses a "trick."&nbsp; Despite what it looks 
+			like, the macro <b>BOOST_PP_WHILE</b> does not take three arguments.&nbsp; In 
+			fact, it takes no arguments at all.&nbsp; Instead, the <b>BOOST_PP_WHILE</b> macro 
+			expands <i>to</i> a macro that takes three arguments.&nbsp; It simply detects 
+			what the next available <b>BOOST_PP_WHILE_</b> ## <i>d</i> macro is and returns 
+			it.&nbsp; This detection process is somewhat involved, so I won't go into <i>how</i>
+			it works here, but suffice to say it <i>does</i> work.
+		</div>
+		<div>
+			Using automatic recursion to reenter various sets of macros is obviously much 
+			simpler.&nbsp; It completely hides the underlying implementation details.&nbsp; 
+			So, if it is so much easier to use, why do the state parameters still 
+			exist?&nbsp; The reason is simple as well.&nbsp; When state parameters are 
+			used, the state is <i>known</i> at all times.&nbsp; This is not the case when 
+			automatic recursion is used.&nbsp; The automatic recursion mechanism has to <i>deduce</i>
+			the state at each point that it is used.&nbsp; This implies a cost in macro 
+			complexity that in some situations--notably at deep macro depths--will slow 
+			some preprocessors to a crawl.
+		</div>
+		<h4>
+			Conclusion
+		</h4>
+		<div>
+			It is really a tradeoff whether to use state parameters or automatic recursion 
+			for reentrancy.&nbsp; The strengths of automatic recursion are ease of use and 
+			implementation encapsulation.&nbsp; These come at a performance cost on some 
+			preprocessors in some situations.&nbsp; The primary strength of state 
+			parameters, on the other hand, is efficiency.&nbsp; Use of the state parameters 
+			is the only way to achieve <i>maximum</i> efficiency.&nbsp; This efficiency 
+			comes at the cost of both code complexity and exposition of implementation.
+		</div>
+		<h4>
+			See Also
+		</h4>
+		<ul>
+			<li><a href="../ref/for.html">BOOST_PP_FOR</a></li>
+			<li><a href="../ref/repeat.html">BOOST_PP_REPEAT</a></li>
+			<li><a href="../ref/while.html">BOOST_PP_WHILE</a></li>
+		</ul>
+		<div class="sig">
+			- Paul Mensonides
+		</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+	</body>
+</html>
diff --git a/doc/topics/techniques.html b/doc/topics/techniques.html
new file mode 100644
index 0000000..feb487c
--- /dev/null
+++ b/doc/topics/techniques.html
@@ -0,0 +1,350 @@
+<html>
+<head>
+	<title>techniques.html</title>
+	<link rel="stylesheet" type="text/css" href="../styles.css">
+	<style>
+		u { font-weight:  normal; text-decoration:  none; }
+	</style>
+</head>
+<body>
+<h4>Techniques</h4>
+<div>
+	The preprocessor metaprogramming techniques are presented in example format.
+</div>
+
+<h4>Example<u> - Use a local macro to avoid small scale repetition.</u></h4>
+<div class="code"><pre>
+#define BOOST_PP_DEF(op) /* ..................................... */ \
+   template&lt;class T, int n&gt;                                          \
+   vec&lt;T, n&gt; operator op ## =(vec&lt;T, n&gt; lhs, const vec&lt;T, n&gt;& rhs) { \
+      for (int i = 0; i &lt; n; ++i) {                                  \
+         lhs(i) op ## = rhs(i);                                      \
+      }                                                              \
+   }                                                                 \
+   /**/
+
+BOOST_PP_DEF(+)
+BOOST_PP_DEF(-)
+BOOST_PP_DEF(*)
+BOOST_PP_DEF(/)
+
+#undef BOOST_PP_DEF
+</pre></div>
+<div>
+	<b>Tip:</b>&nbsp; It is usually okay to use a standard macro name like <code>BOOST_PP_DEF</code> for this kind of code
+	because the macro is both defined and undefined in the immediate site of its use.
+</div>
+<div>
+	<b>Tip:</b>&nbsp; It is easier to verify proper use of the line continuation operator when they are aligned.
+</div>
+<div>
+	<b>Notes:</b>&nbsp; You can extend this example by defining more and different kinds of operators.&nbsp;
+	Before doing so, consider using the <i>algebraic categories</i> technique introduced in <a href="../bibliography.html#barton">[Barton]</a>
+	or a <i>layered architecture</i> (see for instance <a href="../bibliography.html#czarnecki">[Czarnecki]</a>).&nbsp;
+	However, at some point you must type the operator tokens <code>*</code>, <code>/</code>, <code>+</code>, <code>-</code>, etc.,
+	because it is impossible to generate them using templates.&nbsp;
+	The resulting <i>categorical repetition</i> of tokens can be eliminated by using preprocessor metaprogramming.
+</div>
+
+<h4>Example<u> - Use BOOST_PP_EMPTY as an unused parameter in local macro instantiations.</u></h4>
+<div class="code"><pre>
+#define BOOST_PP_DEF(cv) /* ... */ \
+   template&lt;class base&gt;            \
+   cv() typename implement_subscript_using_begin_subscript&lt;base&gt;::value_type& \
+   implement_subscript_using_begin_subscript&lt;base&gt;::operator[](index_type i) cv() { \
+      return base::begin()[i];     \
+   }                               \
+   /**/
+
+   BOOST_PP_DEF(BOOST_PP_EMPTY)
+   BOOST_PP_DEF(BOOST_PP_IDENTITY(const))
+</pre></div>
+<div>
+	<b>How:</b>&nbsp; BOOST_PP_EMPTY() expands to nothing and can be used as an unused parameter.
+</div>
+<div>
+	<b>Note:</b>&nbsp; BOOST_PP_EMPTY with the () never gets expanded.&nbsp;
+	The () is necessary to invoke a function-like macro.
+</div>
+<div>
+	<b>Caveat:</b>&nbsp; You cannot safely use concatenation while using BOOST_PP_EMPTY().
+</div>
+<div>
+	<b>Tip:</b>&nbsp; Occasionally, one or two lines are considerably longer than the rest.&nbsp;
+	It can often save some work to <i>not</i> align all the line continuation operators without making the code too unreadable.
+</div>
+<div>
+	<b>Tip:</b>&nbsp; Use syntax highlighting on preprocessor metaprogramming macro identifiers such as:
+	<ul>
+		<li>BOOST_PP_DEF</li>
+		<li>BOOST_PP_EMPTY</li>
+		<li>BOOST_PP_REPEAT</li>
+		<li>...</li>
+	</ul>
+	It can greatly improve readability.
+</div>
+
+<h4>Example<u> - Use BOOST_PP_CAT instead of ## when necessary.</u></h4>
+<div class="code"><pre>
+#define STATIC_ASSERT(expr) \
+   enum { BOOST_PP_CAT(static_check_, __LINE__) = (expr) ? 1 : -1 }; \
+   typedef char \
+      BOOST_PP_CAT(static_assert_, __LINE__)[BOOST_PP_CAT(static_check_, __LINE__)] \
+   /**/
+
+// ...
+
+STATIC_ASSERT(sizeof(int) &lt;= sizeof(long));
+</pre></div>
+<div>
+	<b>Why:</b>&nbsp; Macro expansion proceeds recursively in "layers."&nbsp;
+	Token pasting prevents the preprocessor from performing macro expansion,
+	therefore it is often necessary to delay token concatenation.
+</div>
+
+<h4>Example<u> - Use BOOST_PP_STRINGIZE instead of # whenever necessary.</u></h4>
+<div class="code"><pre>
+#define NOTE(str) \
+   message(__FILE__ "(" BOOST_PP_STRINGIZE(__LINE__) ") : " str) \
+   /**/
+
+// ...
+
+#pragma NOTE("TBD!")
+</pre></div>
+<div>
+	<b>Why:</b>&nbsp; Macro expansion proceeds recursively in "layers."&nbsp;
+	Stringization prevents the preprocessor from performing macro expansion, therefore it is often necessary to delay stringization.
+</div>
+
+<h4>Example<u> - Use BOOST_PP_ENUM_PARAMS (and its variants) or BOOST_PP_REPEAT and BOOST_PP_COMMA_IF to avoid <i>O</i>(<i>n</i>) repetition on lists in general.</u></h4>
+<div class="code"><pre>
+struct make_type_list_end;
+
+template&lt;
+   BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
+      MAKE_TYPE_LIST_MAX_LENGTH, 
+      class T, 
+      make_type_list_end
+   )
+&gt;
+struct make_type_list {
+   private:
+      enum { end = is_same&lt;T0, make_type_list_end&gt;::value };
+   public:
+      typedef typename type_if&lt;
+         end, type_cons_empty,
+         type_cons&lt;
+            T0,
+            typename type_inner_if&lt;
+               end, type_identity&lt;end&gt;,
+               make_type_list&lt;
+                  BOOST_PP_ENUM_SHIFTED_PARAMS(
+                     MAKE_TYPE_LIST_MAX_LENGTH,
+                     T
+                  )
+               &gt;
+            &gt;::type
+         &gt;
+      &gt;::type type;
+};
+</pre></div>
+<div>
+	<b>How:</b>&nbsp; BOOST_PP_REPEAT uses simulated recursion (pseudo code):
+</div>
+<div><pre>
+#define BOOST_PP_REPEAT(n, m, p) BOOST_PP_REPEAT ## n(m, p)
+
+#define BOOST_PP_REPEAT0(m, p)
+#define BOOST_PP_REPEAT1(m, p) m(0, p)
+#define BOOST_PP_REPEAT2(m, p) m(0, p) m(1, p)
+#define BOOST_PP_REPEAT3(m, p) BOOST_PP_REPEAT2(m, p) m(2, p)
+#define BOOST_PP_REPEAT4(m, p) BOOST_PP_REPEAT3(m, p) m(3, p)
+// ...
+</pre></div>
+<div>
+	<i>Note:&nbsp; This is no longer how BOOST_PP_REPEAT is implemented, so the code above is illustrative only!&nbsp;</i>
+</div>
+<div>
+	BOOST_PP_ENUM_PARAMS and its variations use BOOST_PP_REPEAT.&nbsp;
+	BOOST_PP_COMMA_IF(I) expands to a comma if I != 0.&nbsp;
+	BOOST_PP_INC(I) essentially expands to "I+1," and BOOST_PP_DEC(I) essentially expands to "I-1.".
+</div>
+
+<h4>Example<u> - Use a <i>conditional macro definition</i> to enable user configuration of code repetition based on need rather than some "reasonable" upper limit.</u></h4>
+<div class="code"><pre>
+#ifndef MAKE_TYPE_LIST_MAX_LENGTH
+#define MAKE_TYPE_LIST_MAX_LENGTH 8
+#endif
+</pre></div>
+<div>
+	Now the user can configure the <code>make_type_list</code> primitive without modifying library code.
+</div>
+
+<h4>Example<u> - Use BOOST_PP_REPEAT and a <i>token look-up function</i> to eliminate categorical repetition.</u></h4>
+<div class="code"><pre>
+// CAVEAT:  My compiler is not standard on arithmetic types.
+#define ARITHMETIC_TYPE(I) ARITHMETIC_TYPE ## I
+
+#define ARITHMETIC_TYPE0    bool
+#define ARITHMETIC_TYPE1    char
+#define ARITHMETIC_TYPE2    signed char
+#define ARITHMETIC_TYPE3    unsigned char
+#define ARITHMETIC_TYPE4    short
+#define ARITHMETIC_TYPE5    unsigned short
+#define ARITHMETIC_TYPE6    int
+#define ARITHMETIC_TYPE7    unsigned int
+#define ARITHMETIC_TYPE8    long
+#define ARITHMETIC_TYPE9    unsigned long
+#define ARITHMETIC_TYPE10   float
+#define ARITHMETIC_TYPE11   double
+#define ARITHMETIC_TYPE12   long double
+
+#define ARITHMETIC_TYPE_CNT 13
+
+// ...
+
+#define BOOST_PP_DEF(z, I, _) /* ... */ \
+   catch (ARITHMETIC_TYPE(I) t) {       \
+      report_typeid(t);                 \
+      report_value(t);                  \
+   }                                    \
+   /**/
+
+BOOST_PP_REPEAT(ARITHMETIC_TYPE_CNT, BOOST_PP_DEF, _)
+
+#undef BOOST_PP_DEF
+</pre></div>
+<div>
+	<b>Note:</b>&nbsp; The repetition of the above example can be eliminated using template metaprogramming <a href="../bibliography.html#czarnecki">[Czarnecki]</a> as well.&nbsp;
+	However categorical repetition of operator tokens cannot be completely eliminated by using template metaprogramming.
+</div>
+
+<h4>Example<u> - Use BOOST_PP_REPEAT to avoid <i>O</i>(<i>n</i>*<i>n</i>) repetition.</u></h4>
+<div class="code"><pre>
+#ifndef MAX_VEC_ARG_CNT
+#define MAX_VEC_ARG_CNT 8
+#endif
+
+// ...
+
+#define ARG_FUN(z, i, _) BOOST_PP_COMMA_IF(i) T a ## i
+#define ASSIGN_FUN(z, i, ) (*this)[i] = a ## i;
+
+#define DEF_VEC_CTOR_FUN(z, i, _) /* ... */ \
+   vec(BOOST_PP_REPEAT(i, ARG_FUN, _)) { \
+      BOOST_PP_REPEAT(i, ASSIGN_FUN, _)  \
+   }                                     \
+   /**/
+
+BOOST_PP_REPEAT(BOOST_PP_INC(MAX_VEC_ARG_CNT), DEF_VEC_CTOR_FUN, _)
+
+#undef ARG_FUN
+#undef ASSIGN_FUN
+#undef DEF_VEC_CTOR_FUN
+
+// ...
+</pre></div>
+<div>
+	<b>How:</b>&nbsp; BOOST_PP_REPEAT is implemented is a special way to enable <i>automatic recursion</i>.
+</div>
+
+<h4>Example<u> - Use BOOST_PP_IF to implement special case for the first element.</u></h4>
+<div class="code"><pre>
+#define COMMA_IF(c) \
+   BOOST_PP_IF(c, BOOST_PP_COMMA, BOOST_PP_EMPTY)() \
+   /**/
+
+BOOST_PP_IF(0, true, false) == false;
+BOOST_PP_IF(1, true, false) == true;
+</pre></div>
+<div>
+	BOOST_PP_IF enables convenient generation of lists using BOOST_PP_REPEAT.
+</div>
+<div>
+	<b>Note:</b>&nbsp; <i>THEN</i> and <i>ELSE</i> don't have to be macros.&nbsp;
+	However, if at least one of them is a function-like macro, and you want it be expanded conditionally,
+	you have to make the other parameter a function-like macro too.&nbsp;
+	This can often be done using BOOST_PP_IDENTITY.&nbsp;
+	Consider the following example (by Aleksey Gurtovoy):
+</div>
+<div><pre>
+#define NUMBERED_EXPRESSION(i, x) /* ... */ \
+   BOOST_PP_IF(                             \
+      i,                                    \
+      BOOST_PP_IDENTITY(x ## i)             \
+      BOOST_PP_EMPTY                        \
+   )()                                      \
+   /**/
+</pre></div>
+<div>
+	<b>Note:</b>&nbsp; Like in the above implementation of COMMA_IF, the result of BOOST_PP_IF is often invoked and not the <i>THEN</i> and <i>ELSE</i> parameters.&nbsp;
+	If the parameters were invoked, the code would not expand correctly, because the BOOST_PP_EMPTY parameter would get expanded
+	to nothing before the <b>BOOST_PP_IF</b> would be properly expanded.
+</div>
+<div>
+	<b>How:</b>&nbsp; BOOST_PP_IF is defined for the entire repeat range (psuedo code):
+</div>
+<div><pre>
+#define BOOST_PP_IF(c, THEN, ELSE) BOOST_PP_IF ## c(THEN, ELSE)
+
+#define BOOST_PP_IF0(THEN, ELSE) ELSE
+#define BOOST_PP_IF1(THEN, ELSE) THEN
+#define BOOST_PP_IF1(THEN, ELSE) THEN
+// ...
+</pre></div>
+
+<h4>Example:<u>&nbsp; Use arithmetic, logical, and comparison operations when necessary.</u></h4>
+<div class="code"><pre>
+#define SPECIAL_NUMBERED_LIST(n, i, elem, special) \
+   BOOST_PP_ASSERT_MSG(                     \
+      BOOST_PP_LESS(i, n),                  \
+      bad params for SPECIAL_NUMBERED_LIST! \
+   )                                        \
+   BOOST_PP_ENUM_PARAMS(i, elem)            \
+   BOOST_PP_COMMA_IF(i) special             \
+   BOOST_PP_REPEAT(                         \
+      BOOST_PP_SUB(BOOST_PP_DEC(n), i),     \
+      SPECIAL_NUMBERED_LIST_HELPER,         \
+      (elem, i)                             \
+   )                                        \
+   /**/
+
+#define SPECIAL_NUMBERED_LIST_HELPER(z, i, elem_base) \
+   ,                                          \
+   BOOST_PP_CAT(                              \
+      BOOST_PP_TUPLE_ELEM(2, 0, elem_base),   \
+      BOOST_PP_ADD(                           \
+         i,                                   \
+         BOOST_PP_TUPLE_ELEM(2, 1, elem_base) \
+      )                                       \
+   )                                          \
+   /**/
+
+SPECIAL_NUMBERED_LIST(3, 0, E, S)
+SPECIAL_NUMBERED_LIST(3, 1, E, S)
+SPECIAL_NUMBERED_LIST(3, 2, E, S)
+SPECIAL_NUMBERED_LIST(3, 3, E, S)
+</pre></div>
+
+<hr size="1">
+<div style="margin-left: 0px;">
+	<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+</div>
+<div style="margin-left: 0px;">
+Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies.&nbsp;
+This document is provided "as is" without express or implied warranty and with no claim as to its suitability for any purpose.
+</div>
+	<hr size="1">
+	<div style="margin-left: 0px;">
+		<i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+		</br><i>© Copyright Paul Mensonides 2002</i>
+	</div>
+	<div style="margin-left: 0px;">
+		<p><small>Distributed under the Boost Software License, Version 1.0. (See
+		accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+		copy at <a href=
+		"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+	</div>
+</body>
+</html>
diff --git a/doc/topics/variadic_macros.html b/doc/topics/variadic_macros.html
new file mode 100644
index 0000000..985b9eb
--- /dev/null
+++ b/doc/topics/variadic_macros.html
@@ -0,0 +1,262 @@
+<html>
+  <head>
+    <meta  content="text/html; charset=windows-1252"  http-equiv="content-type">
+    <title>variadic_macros.html</title>
+    <link  rel="stylesheet"  type="text/css"  href="../styles.css">
+    <style>
+    u { font-weight: normal; text-decoration: none; }
+    </style>
+  </head>
+  <body>
+    <h4>Variadic Macros</h4>
+    <div> Variadic macros are supported by a number of compilers. They are
+      macros of the form: </div>
+    <div  class="code">
+      <pre>#define SOME_MACRO(ZeroOrMoreParameters,...) macro expansion possible specifying __VA_ARGS__</pre>
+    </div>
+    <div> The '...' in the parameter list represents the variadic data when the
+      macro is invoked and the __VA_ARGS__ in the expansion represents the
+      variadic data in the expansion of the macro. Variadic data is of the form
+      of 1 or more preprocessor tokens separated by commas.<br>
+      <br>
+      The '...' must be the last parameter in the macro definition and there may
+      be 0 or more non-variadic parameters preceding it.<br>
+      <br>
+      In the expansion of the macro __VA_ARGS__ may be specified 0 or more times
+      to represent the variadic data. The variadic data in the expansion is a
+      comma separated list of preprocessor tokens representing the variadic data
+      which the invoker of the macro enters as the last arguments to the macro.<br>
+    </div>
+    <h4>Example<u> - Creating and invoking a variadic macro.</u></h4>
+    <div  class="code">
+      <pre>#define INITIALIZE_INT_ARRAY(array_name,...) \ <br> static int array_name[] = { __VA_ARGS__ }; \ <br> /**/<br><br> INITIALIZE_INT_ARRAY(myname,45,789,33510,9346,2)</pre>
+    </div>
+    <u> <span  style="font-weight: bold;">Preprocessor
+        Library Support<br>
+      </span></u>
+    <div>The library offers support for variadic macros for those
+      compilers
+      which support the feature. The library can automatically detect whether
+      a compiler supports variadic macros and sets the macro
+      BOOST_PP_VARIADICS accordingly to 1 if the compiler supports variadic
+      macros or 0 if the compiler does not support variadic macros.<br>
+      <br>
+      The end-user can #define BOOST_PP_VARIADICS to 1 or 0 himself in a
+      translation unit, before including any preprocessor header files, to
+      prevent the library from attempting to detect whether the compiler
+      supports variadic macros. This has the effect of manually turning on or
+      off variadic macro support in the library. Of course if one manually
+      turns on variadic macro support in the library, and one's compiler does
+      not support variadic macros, functionality in the library which uses
+      variadic macros will fail with error messages from the compiler.<br>
+      <br>
+      When BOOST_PP_VARIADICS is 1, the library offers some extended
+      functionality
+      by using variadic macros, and also offers extended support for working
+      with variadic data.<br><br>
+      <a  name="vmvcquirk"></a>Visual C++ has a 
+      few quirks related to variadic macros which require the end-user to code
+      slightly differently. When BOOST_PP_VARIADICS is 1 and Visual C++ is the
+      compiler BOOST_PP_VARIADICS_MSVC is 1, else when BOOST_PP_VARIADICS is 1
+      and Visual C++ is not the compiler BOOST_PP_VARIADICS_MSVC is 0. When
+      BOOST_PP_VARIADICS is 0 then BOOST_PP_VARIADICS_MSVC is not defined.
+      In this way the end-user, when using variadic macros, can test for the
+      presence of Visual C++ as the compiler and code accordingly.<br>
+      <br>
+      Support for working with variadic
+      data is largely centered on being able to convert variadic data to
+      other library data types, since the
+      functionality for working with those Boost preprocessor library data
+      types is much greater than that for working with variadic data directly.<br>
+    </div>
+    <a  name="VNotation"></a>
+    <h4>Notation For Variadic Macros<br>
+    </h4>
+    <div>In the documentation, headers which have variadic macros,
+      and
+      variadic macros themselves, have a notation of '(v)' appended to them.
+      For the variadic macros themselves this signifies that
+      BOOST_PP_VARIADICS must be 1 for those variadic macros to be usable.
+      For variadic macros which have a non-variadic equivalent, the
+      non-variadic equivalent will be used if BOOST_PP_VARIADICS is set to 0.
+    </div>
+    <h4>Extended Functionality Using Variadic Macros<br>
+    </h4>
+    <div>Some macros in the library offer extended
+      functionality through the use of variadic macros.<br>
+      <br>
+      The variadic macro version offers the same functionality
+      as the non-variadic version, but because of the ability of the variadic
+      parameters to encompass a variable number of arguments, it also offers
+      an enhanced syntax using the same macro name.<br>
+      <br>
+      The macros in the library which offer this enhanced functionality are
+      all
+      centered on <i>tuple</i> manipulation. With variadic
+      macros it is
+      possible to
+      manipulate tuples without having to know the size of the tuple. So
+      while the invoker can still specify the size when using tuple macro
+      functionality, there are variadic versions of each of the tuple macros,
+      with the exact same name as the non-variadic macro, where the size need
+      not be specified.<br>
+    </div>
+    <h4>Extended Support For Variadic Data</h4>
+    <div>The library offers extended support for working with
+      variadic data
+      which goes beyond the functionality offered by the C++ specification
+      for variadic macros. It does this through preprocessor programming and
+      by using some of the other functionality in the library itself. Header
+      and macro names
+      in the library which offer extended support for working with variadic
+      data, and need the compiler to support variadic macros, are marked with
+      a (v)<sup> </sup>to indicate a variadic macro.<br>
+      <br>
+      The form of the functionality which the library offers is centered on
+      two macros which work with variadic data itself, and a set of macros
+      which convert between variadic data and other library data
+      types.<br>
+      <br>
+      The two macros are BOOST_PP_VARIADIC_ELEM and BOOST_PP_VARIADIC_SIZE,
+      which respectively return a particular token of variadic data and the
+      number of tokens of variadic data.<br>
+      <br>
+      The macros for converting variadic data to the library's data types are
+      BOOST_PP_VARIADIC_TO_ARRAY, BOOST_PP_VARIADIC_TO_LIST,
+      BOOST_PP_VARIADIC_TO_SEQ, and BOOST_PP_VARIADIC_TO_TUPLE.<br>
+      <br>
+      All of these macros need compiler support for variadic data and only
+      exist if BOOST_PP_VARIADICS is 1. <br>
+      <br>
+      The remaining four macros, which convert from a library data type
+      to comma-separated preprocessor tokens, which is the form of
+      variadic data, do not need compiler support for variadic
+      macros. These functions are BOOST_PP_ARRAY_ENUM, BOOST_PP_LIST_ENUM,
+      BOOST_PP_SEQ_ENUM, and BOOST_PP_TUPLE_ENUM. However if one wishes to
+      use this variadic data reliably as arguments to other macros, one needs
+      variadic macro support.<br>
+    </div>
+    <u  style="font-weight: bold;"> Using a Tuple Instead of an Array<br>
+    </u>
+    <div>An array as a preprocessor data type is a two-element tuple where the
+      first element is the array size and the second element is a tuple which
+      constitutes the array data. Because a tuple knows its own size when the
+      compiler supports variadic macros, there is no reason to use the array preprocessor
+      data type as opposed to the tuple preprocessor data type; the tuple data
+      type now has all of the functionality which the array data type has and is
+      syntactically easier to use. With variadic macro support, which is now
+      officially part of the latest C++ standard, the preprocessor array data
+      type is essentially obsolete for conforming C++ compilers. Only if your
+      compiler does not support variadic macros is the preprocessor array data
+      type still useful.</div>
+    <u  style="font-weight: bold;">Using Variadic Data</u>
+    <div>Variadic data exists in the
+      form of comma-separated preprocessor tokens. This is the case whether
+      the variadic data comes from the __VA_ARGS__ of a variadic macro, from
+      the conversion of a library's data type to variadic data, or the
+      manual construction of comma-separated preprocessing tokens by the
+      programmer writing a macro.<br>
+      <br>
+      The easiest way to work with
+      variadic data internally is to convert it to a library data type.
+      Library data types, whether an <i>array</i>, <i>list</i>,
+      <i>sequence</i>,
+      or <i>tuple</i>, have a rich set of functionality for
+      manipulating
+      data whereas
+      variadic data functionality in the library only allows one to access
+      the variadic data as a whole or to access a single token of the
+      variadic data at a time.<br>
+      <br>
+      The user of the library still may
+      choose to pass variadic data back into internal macros rather than
+      convert it to other library data types. There is no problem passing
+      variadic data as a whole to variadic macros as the last parameter of
+      the macro. However: <br>
+      <br>
+      <span  style="font-weight: bold;">Attempting to pass
+        variadic data as a
+        whole directly into a non-variadic macro is not guaranteed to work and
+        may fail.<br>
+      </span><br>
+      This occurs because of a preprocessor weakness in a number
+      of compilers, currently most notably Visual C++. Even passing variadic
+      data as arguments to a non-variadic macro, when it is not represented
+      in
+      the form of  __VA_ARGS__, may fail with certain compilers.<br>
+      <br>
+      What follows are very simple examples, showing how variadic data can be
+      passed to a non-variadic macro.<br>
+      <br>
+      First an example of what NOT to do.<br>
+    </div>
+    <h4>Example<u> - Passing variadic data as a whole to a
+        non-variadic
+        macro. DO NOT DO.</u></h4>
+    <div  class="code">
+      <pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following should not be done and is not guaranteed to work with compilers. */<br><br><span
+ style="font-weight: bold;"><span  style="font-family: monospace;"></span></span>int xx = MACRO_ARG_2(VAR_MACRO(2,3));</pre>
+    </div>
+    <div> There are two ways to pass variadic data to a non-variadic
+      macro.
+      The
+      first of these is to pass the individual tokens of the variadic data
+      separately to the non-variadic macro using the BOOST_PP_VARIADIC_ELEM
+      macro in the library.<br>
+    </div>
+    <h4>Example<u> - Passing individual variadic data tokens to
+        a
+        non-variadic macro.<br>
+      </u></h4>
+    <div  class="code">
+      <pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = MACRO_ARG_2<br> (<br> BOOST_PP_VARIADIC_ELEM(0,VAR_MACRO(2,3)),<br> BOOST_PP_VARIADIC_ELEM(1,VAR_MACRO(2,3))<br> );</pre>
+    </div>
+    <div>The second way is to use a macro in the library called
+      BOOST_PP_OVERLOAD.
+      This macro allows one to "overload" a variadic macro to non-variadic
+      macros of different numbers of parameters, using a common prefix.
+    </div>
+    <h4>Example<u> - Passing variadic data as a whole to
+        BOOST_PP_OVERLOAD
+        and on to a non-variadic macro.<br>
+      </u></h4>
+    <div  class="code">
+      <pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3));<br><br>/* For Visual C++ it is necessary to do this */<br><br>int xx = <br>BOOST_PP_CAT(BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3)),BOOST_PP_EMPTY());</pre>
+    </div>
+    <br>
+    <div>Although these techniques will work when passing variadic
+      data to
+      non-variadic macros, it is much better and less problematical to
+      work internally with the existing library data types and to only use
+      variadic
+      macros as an interface for end-users when there is a need to have a
+      macro which takes a
+      variable number of parameters.<br>
+    </div>
+    <b>See</b> <b>Also</b><br>
+    <ul>
+      <li><a  href="../ref/variadics.html">BOOST_PP_VARIADICS</a></li>
+      <li><a  href="../headers/tuple.html">Tuple Macros</a><br>
+      </li>
+      <li><a  href="../headers/variadic.html">Variadic
+          Macros<br>
+        </a></li>
+      <li><a  href="../ref/array_enum.html">BOOST_PP_ARRAY_ENUM</a></li>
+      <li><a  href="../ref/list_enum_r.html">BOOST_PP_LIST_ENUM</a></li>
+      <li><a  href="../ref/seq_enum.html">BOOST_PP_SEQ_ENUM</a></li>
+      <li><a  href="../ref/tuple_enum.html">BOOST_PP_TUPLE_ENUM</a></li>
+      <li><a  href="../ref/overload.html">BOOST_PP_OVERLOAD</a></li>
+    </ul>
+    <hr  size="1">
+    <div  style="margin-left: 0px;"> <i>© Copyright
+        Edward Diener
+        2011,2013,2016</i> </div>
+    <div  style="margin-left: 0px;">
+      <p><small>Distributed under the Boost Software License,
+          Version 1.0.
+          (See accompanying file <a  href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
+          or copy at <a  href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+    </div>
+  
+
+</body></html>
\ No newline at end of file