Procedure names are global variables, so one can assign to them during runtime, and change will be applied wherever particular procedure is used. If one want that put also counts
##################################
global original_put, put_counter
procedure new_put(a,b)
{ /put_counter:=0; put_counter }+:=1
original_put(a,b)
end# somewhere in program
original_put:=put ... put:=new_put #or even put:=?[original_put,new_put]
Technique is, of course, well known and discussed for long time, just maybe it is not noted that it is recently called AOP; this one even dynamical, one can chose which aspect to use (or not) during runtime.
----
Kazimir Majorinc, Zagreb, Croatia
