title: Result with lifetime parameter - enum with lifetime parameter applied to default T<'a> and E<'a> parameter (Rust)
body: <p>I'm attempting to make a <code>Result</code> with a lifetime parameter, as an additional restrain on the <code>T</code> (<code>::Ok(T)</code>) and <code>E</code> (<code>::Err(E)</code>) generic parameters.</p>
  <pre><code>// enums A&lt;'a&gt; and B&lt;'a&gt; elided
  
  pub enum Result&lt;'a, T=A&lt;'a&gt;, E=B&lt;'a&gt;&gt; {
      Ok(T),
      Err(E),
  }
  </code></pre>
  <p><code>unused parameter, suggestion: add PhantomData</code></p>
  <p>So it didn't work. I read that I can hack around the unused parameter error with <code>PhantomData</code>, but that seems dirty to me.</p>
  <p>Neither did this work:</p>
  <pre><code>pub enum Result&lt;T=A&lt;'a&gt;, E=B&lt;'a&gt;&gt; {
      Ok(T),
      Err(E),
  }
  </code></pre>
  <p><code>undefined parameter, suggestion: add parameter before T</code><br />
  <code>(twice)</code></p>
  <p>This suggestion throws me for a loop!</p>
  <p>How do I put a generic <code>type</code> with a lifetime parameter, in my <code>enum</code> generic parameter default value?</p>