So this looks like dynamically scoped callbacks. Instead of passing callbacks along as parameters they are declared as “handlers”, and any function down the call stack can invoke them. Is this a correct understanding?
Yes. dynamically scoped, and statically typed.
Yes. dynamically scoped, and statically typed.