title: The trait `A` is not implemented for the type `A`
body: <p>I am trying to use a trait that has a function that takes a closure as argument, and then use it on a trait object.</p>
  
  <pre><code>trait A {
      fn f&lt;P&gt;(&amp;self, p: P) where P: Fn() -&gt; ();
  }
  
  struct B {
      a: Box&lt;A&gt;
  }
  
  impl B {
      fn c(&amp;self) {
          self.a.f(|| {});
      }
  }
  </code></pre>
  
  <p>This snippet generates the following error:</p>
  
  <pre><code>the trait `A` is not implemented for the type `A` [E0277]
  </code></pre>
  
  <p>The version of <code>rustc</code> is <code>rustc 1.0.0-beta.3 (5241bf9c3 2015-04-25) (built 2015-04-25)</code>.</p>