So, say I have: `characters = [A, B, ...]`
and I want to maintain for each character `x` the invariant:
`x.target = (first y in 'characters' where y.score > x.score)`
Can Skip maintain such a self-referential invariant automatically? Does the answer depend on A and B's mutability?
(This "graph as array" escape hatch seems to come up in many language designs with compile-time pointer analysis. It's useful, maybe even essential, but you tend to lose some nice language features/guarantees with it, in my limited experience.)
The GC thing sounds excellent!