A lazy integer range — Python-style. Stores only (start, end, inclusive)
so the in-memory footprint is O(1) regardless of the range’s length.
len(), indexing (r[k]), .contains(x), .first(), .last() are all
O(1); direct iteration walks step-by-step without materializing a list.
Stable identity key for a value. Different allocations produce different
keys; two values with the same heap identity produce the same key. For
primitives the key is derived from the displayed value plus type name so
logically-equal primitives always compare equal.
Canonical string form used as the keying material for hash_value.
Different types never collide (the type name is prepended) and collection
order is preserved so structurally-equal values always produce the same
key. Not intended for cross-process stability; depends on the in-process
iteration order for collections (Dict uses BTreeMap so keys are sorted).
Reference / identity equality. For heap-allocated refcounted values
(List/Dict/Set/Closure) returns true only when both operands share the
same underlying Rc allocation. For primitive scalars, falls back to
structural equality (since primitives have no distinct identity).