ared to injecting <code>T</code> directly, injecting
 <code>Provider&lt;T&gt;</code> enables:

 <ul>
   <li>retrieving multiple instances.</li>
   <li>lazy or optional retrieval of an instance.</li>
   <li>breaking circular dependencies.</li>
   <li>abstracting scope so you can look up an instance in a smaller scope
      from an instance in a containing scope.</li>
 </ul>

 <p>For example:

 <pre>
   class Car {
     &#064;Inject Car(Provider&lt;Seat&gt; seatProvider) {
       Seat driver = seatProvider.ge