title: Why must `report` occur at the top level of a NetLogo procedure?
body: <p>I wanted to write something like this.</p>
  
  <pre><code>to-report a-new-agent
    crt 1 [ 
      &lt;do some stuff with it&gt;
      report self
    ]
  end
  </code></pre>
  
  <p>But that triggers a compiler error message: <code>report must be immediately inside a to-report</code>.  So I'm forced into something like this.</p>
  
  <pre><code>to-report a-new-agent
    let new-agent nobody
    crt 1 [ 
      &lt;do some stuff with it&gt;
      set new-agent self
    ]
    report new-agent
  end
  </code></pre>
  
  <p>This works, but it's irritating to have to write work-around code like this. What is the reason for this limitation?</p>