title: Guice and Play2 Singleton from trait
body: <p>I am using Play with Scala and I am trying to create a singleton, and i want to inject it from its trait and not directly.</p>
  
  <p>for example:</p>
  
  <pre><code>@ImplementedBy(classOf[S3RepositoryImpl])
  trait S3Repository {
  }
  @Singleton
  class S3RepositoryImpl extends S3Repository {
  }
  </code></pre>
  
  <p>But this fails with error:</p>
  
  <blockquote>
    <p>trait Singleton is abstract; cannot be instantiated</p>
  </blockquote>
  
  <p>I have tried several combinations and they all produce the same.</p>
  
  <p>I come from Spring background and its very natural there? am i missing something about how Guice handles this type of Injection?</p>
  
  <p>Thanks.</p>