title: Suspension functions can be called only within coroutine body error
body: <p>So, I'm fairly new to coroutines in kotlin and I don't understand what's going on here. I do have a suspended function called from another one.</p>
  <p>What's the right syntax here?</p>
  <pre><code>suspend fun doSomething(str: Optional&lt;String&gt;) {
    // Error: Suspension functions can be called only within coroutine body
    str.map { doSomethingElse() } 
  }
  
  suspend fun doSomethingElse() { }
  </code></pre>
  <p>whereas, this is fine</p>
  <pre><code>suspend fun doSomething(str: Optional&lt;String&gt;) {
    if (str.isPresent) {
      doSomethingElse()
    }
  }
  
  suspend fun doSomethingElse() {}
  </code></pre>