IMO, just special-case the command as the first argument, and otherwise ignore it.  In other words, the code grows the ability to silently handle the extra Razor::Command object as the first argument, no explicit nil slot, etc, visible to the user.  Also, though, no extra method to pass this extra argument as, really, the first argument to the function.