title: What is the difference between using Raku's Code.assuming method and using an anonymous Block or Sub?
body: <p>The <a href="https://docs.raku.org/type/Code#method_assuming" rel="noreferrer">Raku docs say</a> that <code>Code.assuming</code></p>
  <blockquote>
  <p>Returns a Callable that implements the same behavior as the original, but has the values passed to .assuming already bound to the corresponding parameters.</p>
  </blockquote>
  <p>What is the difference between using <code>.assuming</code> and wrapping the Code in an anonymous Block (or Sub) that calls the inner function with some parameters already bound?</p>
  <p>For instance, in the code below, what is the difference between <code>&amp;surname-public</code> (an example the docs provide for <code>.assuming</code>) and <code>&amp;surname-block</code>;</p>
  <pre><code>
  sub longer-names ( $first, $middle, $last, $suffix ) {
      say &quot;Name is $first $middle $last $suffix&quot;;
  }
  
  my &amp;surname-public = &amp;longer-names.assuming( *, *, 'Public', * );
  my &amp;surname-block  = -&gt; $a,$b,$c { longer-names($a, $b, 'Public', $c) }
  
  surname-public( 'Joe', 'Q.', 'Jr.');  # OUTPUT: «Name is Joe Q. Public Jr.»
  surname-block(  'Joe', 'Q.', 'Jr.');  # OUTPUT: «Name is Joe Q. Public Jr.»
  </code></pre>
  <p>I see that <code>.assuming</code> saves a bit of length and could, in some contexts, be a bit clearer.  But I strongly suspect that I'm missing some other difference.</p>