4 All heap objects have a 32-bit reference count at [obj + 4].
5 Objects are returned at +1.
9 A 63-bit signed integer, shifted left 1, with the lsb set.
10 For example, 1 is stored as 0b11, 2 as 0b101, etc.
11 Can also be stored as an aligned pointer to an object.
13 TODO: support big ints with this layout.
22 A pointer to the closure entry.
23 Must be 8-byte aligned.
31 12:[u16:filled params]
38 When a closure has lots of data and is frequently copied, it's beneficial to use an indirect closure that contains a pointer to the fields block so that only the params has to be copied.
39 These are unimplemented for the time being.
47 12:[u16:filled params]
60 When a closure is destroyed, it iterates over all of its fields and performs a decref on them.