Why set()? Why not allow duplicate function registrations? It seems arbitrary to dedup the registrations. What if my callback func is .increment_counter() and I want it called n times? Obviously, there are work arounds but from an API perspective wouldn't you want to allow arbitrary registration of code to be executed?