I've just compiled a list of GC'ed or pointer-like types, because they're too
easy to forget.Type| Also known as| GC'ed| Can be `nil`| Can form cycle
---|---|---|---|---
`seq`| Sequences| True| False (previously true)| (normally) False
`string`| Strings| True| False (previously true)| False
`cstring`| Compatible strings| False| True| False
`ref`| (Traced) references| True| True| True
`ptr`| Pointers| False| True| True
`proc {.closure.}`| Closures| True| True| True
`(proc) and not (proc {.closure.})`| Non-closure procedural types| False| True|
False
By simplifing the above, we get:
`\\`| Can be `nil`| Can not be `nil`
---|---|---
GC'ed| `ref`, closures| `string`, `seq`
Not GC'ed| `ptr`, `cstring`, non-closure procedural types| Most of the other
types