record c v links the lifetimes of c and v, ensuring that v is not
collected while c is still live. The return value is a key
that can be used to retrieve v while v is still live.
record c v
retrieve v retrieves a value using a key returned by record, or raises
Not_found if v is no longer live.
Dynamic function calls based on libffi
Build an OCaml function from a type specification and a pointer to a C
Build an C function from a type specification and an OCaml function.
The C function pointer returned is callable as long as the OCaml function
value is live.