typedef void (*Callback)(void *); struct _Closure { Callback cb; void *data; } Closure; void clusure_call(Closure *self) { self->cb(self->data); }