As an aside, we are currently using the c-interface to event callbacks. It'll take a bit of work, but we could instead use the generic interface to event callbacks (of which C is one of the client). That would remove the need to specify the interface for any function, although it would require doing more runtime lookup work.