A vision for Parrot

So? Pass these in as arguments. There’s no need to recompile a
procedure for each and every different set of arguments that might be
passed to it. That would defeat the point of having procedures in the
first place.

A binding isn’t a procedure. Indeed, I’m pretty sure that [eval] doesn’t
cache bytecode in bindings because it’s more inefficient than
regenerating the bytecodes each time. It’s good style to invoke a
procedure, but hardly necessary. And indeed, putting something like
“break” or “continue” inside a procedure called by a binding doesn’t
have the same effect as putting it in the binding.