title: With Kodein dependency injection, I don't want to pass around kodein instances everywhere
body: <p>Using Kodein, I find I have to pass kodein instances around or inject them into modules and classes.  But sometimes I have classes that are so disconnected I want them just to be able to discover &quot;one true Kodein&quot;.  Since this is a server side app, and I only have one Kodein scope it should be easy.  I can create a global object, such as:</p>
  
  <pre class="lang-kotlin prettyprint-override"><code>val kodeinGlobal: Kodein = Kodein { ... }
  </code></pre>
  <p>But that doesn't work when some of the modules are re-used across different projects and we cannot easily share this one instance.  Maybe a separate module just to hold the global would work, but then it would need to be a <code>var</code> and I'd prefer it not be changeable.</p>
  <p>Can Kodein find a main, top-level or global scope on its own?</p>
  <p><em><strong>Note:</strong></em> <em>this question is intentionally written and answered by the author (<a href="https://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/">Self-Answered Questions</a>), so that the idiomatic answers to commonly asked Kotlin/Kodein topics are present in SO.</em></p>