From capi-workgroup/problems#56
Related to #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.