the functions globalAssignFunction and globalReleaseFunction are installed in the type X under GlobalAssignHook and GlobalReleaseHook, respectively. The effect is that when an object of type X is assigned to a global variable, the function use is called on it, and thereafter that object will print out as the name of the variable.
Description
One type for which this has been done is Ring, as illustrated in the following example.