title: How can I use boost::mpl::fold with a boost::fusion::map?
body: <p>When I try to compile this:</p>
  
  <pre><code>#include &lt;boost/fusion/container/map.hpp&gt;
  #include &lt;boost/mpl/fold.hpp&gt;
  
  int main(int argc, char** argv)
  {
      typedef boost::fusion::map
      &lt;
          boost::fusion::pair&lt;int, const char*&gt;,
          boost::fusion::pair&lt;long, char&gt;
      &gt; FuMap;
  
      FuMap fuMap("hello", 'w');
  
      unsigned val = boost::mpl::fold
      &lt;
          FuMap, boost::mpl::int_&lt;0&gt;, boost::mpl::next&lt;boost::mpl::_1&gt;
      &gt;::type::value;
  }
  </code></pre>
  
  <p>I get the following error:</p>
  
  <pre><code>"...boost/mpl/begin_end.hpp", line 35: Error, nofieldfnd: 
  apply is not a member of 
  boost::mpl::begin_impl&lt;boost::fusion::fusion_sequence_tag&gt;.
  </code></pre>
  
  <p>From the fusion documentation: "Fusion provides full round compatibility 
  with MPL. Fusion sequences are fully conforming MPL sequences and MPL 
  sequences are fully compatible with Fusion. You can work with Fusion 
  sequences on MPL if you wish to work solely on types."</p>
  
  <p>When I pass a boost::mpl::map it works.</p>
  
  <p>Any clues?</p>