title: How to box a trait that has generic type parameters?
body: <p>I am generally able to use a trait as the type parameter for something like Box&lt;>:</p>
  
  <pre class="lang-rust prettyprint-override"><code>trait CtxVal {}
  type CtxNodes = HashMap&lt;String, Box&lt;CtxVal&gt;&gt;;
  </code></pre>
  
  <p>But when the trait has it's own generic type parameters, like <a href="http://doc.rust-lang.org/nightly/std/cmp/trait.PartialEq.html" rel="nofollow">PartialEq</a>, I'm stuck.</p>
  
  <pre><code>type CtxNodes = HashMap&lt;String, Box&lt;PartialEq&gt;&gt;;
  </code></pre>
  
  <p>I get the error:</p>
  
  <pre class="lang-none prettyprint-override"><code>main.rs:6:37: 6:46 error: the type parameter `Rhs` must be explicitly specified in an 
        object type because its default value `Self` references the type `Self`                             
  main.rs:6 type CtxNodes = HashMap&lt;String, Box&lt;PartialEq&gt;&gt;;                                                                                                                                
                                                ^~~~~~~~~ 
  </code></pre>
  
  <p>If I were to provide the type for the <code>PartialEq</code>, what would that even be? </p>
  
  <pre class="lang-rust prettyprint-override"><code>Box&lt;PartialEq&lt;???&gt;&gt;
  </code></pre>