Maybe I use the wrong terminology but isn´t this a callback? I tell the engine which function to call when a collision happens. I don´t pass the callback to a library in function arguments like you wrote but assign the function pointer to my.event.

Since C can only call C functions I have to do something like above if I want to expose the callback functionality to another language like Python. I want to write a Python wrapper and I want achieve that collision callbacks can also be written in Python.