This is a counter-proposal to MOO WAIFs . It is, however, in all respects still a table. There is no need to assign an owner, however it probably shouldn't be possible to bless a table into a class that isn't fertile unless the programmer owns the class object. Tables are immutable, therefore so are blessed tables.
Garbage collection is the same as it is currently for lists.
The .location and .contents are invariant to avoid placing references to blessed tables in either of these properties. The last five invariants are for the safety of any code that might otherwise make assumptions about the table posing as an object. This should be examined more closely. This design is nice because you only have to add one additional field to the table struct to record the class. Assuming you implement tables fully the way Pavel wanted, you also get a nice read syntax.