title: A question about Kotlin Function Type cast
body: <p>Code fragment in Kotlin</p>
  <pre><code>  public actual fun &lt;R, T&gt; (suspend R.() -&gt; T).createCoroutineUnintercepted(
      receiver: R,
      completion: Continuation&lt;T&gt;
  ): Continuation&lt;Unit&gt; {
      val probeCompletion = probeCoroutineCreated(completion)
      return if (this is BaseContinuationImpl)
          create(receiver, probeCompletion)
      else {
          createCoroutineFromSuspendFunction(probeCompletion) {
              (this as Function2&lt;R, Continuation&lt;T&gt;, Any?&gt;).invoke(receiver, it)
          }
      }
  }
  </code></pre>
  <p>What I want to know is How <code>(suspend R.() -&gt; T)</code> AKA <code>Function Type</code> can be recognized
  as <code>BaseContinuationImpl</code> which is a <code>Classify Type</code> even to cast as `Function2'.</p>
  <p>Any help will be appreciated.</p>