I provide more Rust idiomatic API for some things. They may or may not share ABI, if they do they will have type aliases to the corresponding ~GHOST_~ identifier, so always use those when ABI compatability is desired.
Handles keep the C ABI, but are re-wrtten with traits to be more idiomatic.
The trait ~GhostHandle~ is provided, which should be implemented on a structure that is not intended to be instantiated, but instead used as a `marker' for `Handle<T>'.
These types are ABI equivalent, and are present (with their corresponding ~GHOST_~ alias in =handle.rs=)
Since handles are just types pointers, they are only ever used as such and shouldn't exist themselves.