Index: doc/proposals/vtable.md
===================================================================
--- doc/proposals/vtable.md	(revision 0f740d6d2f3c1d82646d34e40fffa05903bac8ec)
+++ doc/proposals/vtable.md	(revision 0fa04a040608edf8bb8c9ef9bcf14e4f79b23feb)
@@ -237,4 +237,34 @@
 default is provided or not, the second syntax can be used to pick a
 parameter on instantiation.
+
+### Extension: Object Access
+This requires that the resolution scope (see below) is at the type level or
+has explicate points with names. These are the tables and table names used
+here.
+
+The system already knows where to find the virtual table and the object. If
+the tables have particular identities, or on the user side names, then it is
+meaningful to check if a binding virtual table is the same* as another. The
+main use of this is virtual table declarations also give the type they bind
+and if a binding table matches a known table then the underlyind object in the
+trait object must be of that type.
+
+* By identity, by value would work and in some senses be more flexiable. But
+  it would be slower and refering to further away functions would be harder.
+
+This gives one of the main new features of the hierarchical use of virtual
+tables (see below); the ability to recover the underlying object. Or a pointer
+of the approprate type it which both reflects the implementation and gives a
+convenent way to encode the boolean/conditional aspect of the operation which
+is that a different virtual table might be in use.
+
+There are two general ways to reperent this; a cast or a field access. The
+cast is traditional and would definitely fit if a single pointer repersents
+a trait object with the virtual table as part of the object. However for a
+double pointer field access might be more approprate. By this system though
+it is not the type that is used as the identifier but the virtual table. If
+there is one table per type than it becomes equivilant again. Otherwise the
+table has to be used as the identifier and the type is just a result of that
+which seems important for syntax.
 
 Hierarchy
@@ -560,5 +590,5 @@
 be used in only some of the declarations.
 
-    trait combiner fee = (summation_instance, sum);
+    trait combiner fee = {summation_instance, sum};
     trait combiner foe = summation_instance;
 
