title: Create primary constructor for singleton object when using ModuleDef
body: <p>When inspecting any "regularly" created module, e.g. <code>object Foo</code>, there is a non empty body which looks like this:</p>
  
  <pre><code>def &lt;init&gt;() = {
    super.&lt;init&gt;();
    ()
  }
  </code></pre>
  
  <p>Apparently that's the special constructor used to initialise the module.</p>
  
  <p>I want to synthetically create a <code>ModuleDef</code>, so how do I define a corresponding tree for that constructor for its <code>Template</code>? Is there a utility method in the macro universe / context I can use?</p>
  
  <hr>
  
  <p><strong>Edit</strong>: A "regular" object's template body looks like the following, using <code>showRaw</code>:</p>
  
  <pre><code>DefDef(Modifiers(), nme.CONSTRUCTOR, List(), List(List()), TypeTree(),
    Block(List(pendingSuperCall), Literal(Constant(())))))))
  </code></pre>
  
  <p>After type checking the <code>pendingSuperCall</code> becomes</p>
  
  <pre><code>Apply(Select(Super(This(TypeName("Foo")), tpnme.EMPTY), nme.CONSTRUCTOR), List())
  </code></pre>