Reference is the base class of classes you define in your program. It is set as a class' superclass when you don't specify one:
class MyClass # < Reference
end
A reference type is passed by reference: when you pass it to methods, return it from methods or assign it to variables, a pointer is actually passed.
Invoking new on a Reference allocates a new instance on the heap.
The instance's memory is automatically freed (garbage-collected) when
the instance is no longer referred by any other entity in the program.
Returns false: a reference is always truthy.
Returns true if this reference is the same as other.
Returns false (other can only be a Value here).
Returns this reference's object_id as the hash value.
Returns false: a reference is never nil.
Returns true if this reference is the same as other.
Returns false: a reference is never nil.
Returns false: a reference is always truthy.
Returns true if this reference is the same as other. Invokes #same?
Returns false (other can only be a Value here).
Returns this reference's object_id as the hash value.
Returns false: a reference is never nil.
Returns true if this reference is the same as other. This is only
true if this reference's object_id is the same as other's.
Returns false: a reference is never nil.