title: Angular 6 tree shakeable providers and lazy modules
body: <p>In Angular v6 we have this new feature where we can define the provider scope via the Injectable decorator.</p>
  
  <pre><code>@Injectable({
    providedIn: 'root'
  })
  export class CounterService {
    num = Math.random();
  }
  </code></pre>
  
  <p>Does this also solve the problem of lazy load modules getting a different instance? (<code>forRoot()</code>)</p>