Documentation for method wrap, assembled from the following types:
method wrap(Routine: )
Wraps (i.e. in-place modifies) the routine. That means a call to this routine first calls
&wrapper, which then can (but doesn't have to) call the original routine with the
nextwith dispatchers. The return value from the routine is also the return value from the wrapper.