Given a value, increase the ref count and return the new reference. The returned representation should be a different value if double indirection is used (each value is a pointer to the smart pointer), or the same value if single indirection is used (the value is pointing to the object itself).
The function to free the underlying object.
A marker value for the underlying object type.
This is commonly a string literal or a symbol.
Deprecated
use Emp