Expand description
NaN-boxed values.
A Value is one 64-bit word. Doubles are stored as themselves; the negative quiet-NaN space
with the top 16 bits in 0xFFF9..=0xFFFC encodes everything else:
| top 16 bits | payload |
|---|---|
0xFFF9 | 48-bit heap pointer |
0xFFFA | 48-bit signed small integer |
0xFFFB | special: nil (0), false (2), true (3), and internal markers |
Every NaN produced by arithmetic is canonicalized to 0x7FF8_0000_0000_0000, so no float ever
collides with a tag.