title: How did Microsoft create assemblies that have circular references?
body: <p>In the .NET BCL there are circular references between:</p>
  
  <ul>
  <li><code>System.dll</code> and <code>System.Xml.dll</code></li>
  <li><code>System.dll</code> and <code>System.Configuration.dll</code></li>
  <li><code>System.Xml.dll</code> and <code>System.Configuration.dll</code></li>
  </ul>
  
  <p>Here's a screenshot from .NET Reflector that shows what I mean:</p>
  
  <p><img src="https://i.stack.imgur.com/WCx8O.png" alt="enter image description here"></p>
  
  <p>How Microsoft created these assemblies is a mystery to me.  Is a special compilation process required to allow this?  I imagine something interesting is going on here.</p>