title: Boost Fusion/MPL: convert type from sequence to sequence of equivalent any_range's
body: <p>I want to use Boost's <code>any_range</code> to handle multiple heterogeneous data ranges.  The type of my data ranges is known as a Fusion vector, for example:</p>
  
  <pre><code>typedef vector&lt;double, int, char&gt; TypeSequence
  </code></pre>
  
  <p>Given such a type, I want to write a template to derive a further type like this:</p>
  
  <pre><code>vector&lt;AnyRange&lt;double&gt;::value, AnyRange&lt;int&gt;::value, AnyRange&lt;char&gt;::value&gt;
  </code></pre>
  
  <p>where <code>AnyRange</code> is defined as:</p>
  
  <pre><code>using namespace boost;
  template &lt;typename T&gt;
  struct AnyRange
  {
      typedef typename any_range&lt;typename T, forward_pass_traversal_tag, int, std::ptrdiff_t&gt; value;
  };
  </code></pre>
  
  <p>I've tried and failed.  Is this even possible with Fusion?  MPL?  Or perhaps I'm heading down the wrong path with <code>any_range</code>.</p>