title: Instantiating immutable paired objects
body: <p>Is it possible to create a class with an immutable reference to a partner object, or does it have to be a <code>var</code> that I assign after creation?</p>
  
  <p>e.g. </p>
  
  <pre><code>class PairedObject (p: PairedObject, id: String) {
    val partner: PairedObject = p  // but I need ref to this object to create p!
  }
  </code></pre>
  
  <p>or similarly how could I instantiate the following pair?</p>
  
  <pre><code>class Chicken (e: Egg) { 
    val offspring = e
  }
  
  class Egg (c: Chicken) {
    val mother = c
  }
  </code></pre>