title: Scala - Types and Instantiation
body: <pre><code>scala&gt; val a1 = scala.concurrent.Promise[Int]
  a1: scala.concurrent.Promise[Int] = scala.concurrent.impl.Promise$DefaultPromise@10d59286
  </code></pre>
  
  <p>I'm not able to understand how an instance of DefaultPromise is created above. It is understandable that in the below example, <code>()</code> makes a call to <code>apply()</code> and DefaultPromise is created</p>
  
  <pre><code>scala&gt; val a2 = scala.concurrent.Promise[Int]()
  a2: scala.concurrent.Promise[Int] = scala.concurrent.impl.Promise$DefaultPromise@140e5a13
  </code></pre>