*From https://github.com/capi-workgroup/problems/issues/56* *Related to https://github.com/capi-workgroup/api-evolution/issues/20 (Disallow mutating immutable objects)* New API should not allow creation of incomplete/invalid objects. In particular, a `traverse` function must be safe to call right after an object is tracked with the GC.