title: Why does rust parser need the fn keyword?
body: <p>I've been reading the blogs about rust and this closure for example made me wonder:</p>
  
  <pre><code>fn each&lt;E&gt;(t: &amp;Tree&lt;E&gt;, f: &amp;fn(&amp;E) -&gt; bool) {
  if !f(&amp;t.elem) {
      return;
  }
  
  for t.children.each |child| { each(child, f); }
  }
  </code></pre>
  
  <p>why couldn't it be:</p>
  
  <pre><code>each&lt;E&gt;(t: &amp;Tree&lt;E&gt;, f: &amp;(&amp;E) -&gt; bool) {
  if !f(&amp;t.elem) {
      return;
  }
  
  for t.children.each |child| { each(child, f); }
  }
  </code></pre>
  
  <p>Maybe i'm missing something on the class system that would prevent this.</p>