title: Rust limit generic parameter of generic parameter
body: <p>I've defined a trait <code>Node&lt;T: Ord + Eq + std::fmt::Debug&gt;</code> to provide standard operations for a tree's node - I was originally using an enum, but I'm thinking that this approach will be a bit more flexible and cut down on some verbosity.</p>
  <p>I want to declare an 'internal node' structure which contains a set of the same types, each implementing node for the same type. If Node was not generic, I'd declare that like this:</p>
  <pre class="lang-rust prettyprint-override"><code>struct InternalNode&lt;T: Node&gt;(Vec&lt;T&gt;);
  </code></pre>
  <p>But because Node is generic, I need to introduce another type parameter, looking something like this:</p>
  <pre class="lang-rust prettyprint-override"><code>struct InternalNode&lt;E: Ord + Eq + std::fmt::Debug, T: Node&lt;E&gt;&gt;(
      Vec&lt;T&gt;,
  );
  </code></pre>
  <p>With that solution, the compiler complains that E is unused, despite my use of it in the declaration of type parameter T. I assume I'm just guessing the syntax for this behavior incorrectly, could anyone help me out? Thanks!</p>