Index: doc/theses/andrew_beach_MMath/features.tex
===================================================================
--- doc/theses/andrew_beach_MMath/features.tex	(revision bfd7b30ba8bf2ec7a9d763070af797b04783c91e)
+++ doc/theses/andrew_beach_MMath/features.tex	(revision 93d0ed361f29a474f7f865ef1d42b3bde741dda9)
@@ -165,17 +165,19 @@
 % The root type has no ancestors.
 % A type's descendants are its children and its children's descendants.
-Every virtual type also has a pointer to a virtual table with list of virtual members. Children inherit
-their parent's list of virtual members but may add new members to it.
-For example,
+Every virtual type (tree node) has a pointer to a virtual table with a unique
+@Id@ and a list of virtual members (see \autoref{s:VirtualSystem} for
+details). Children inherit their parent's list of virtual members but may add
+and/or replace members.  For example,
 \begin{cfa}
 vtable W0 | { int ?<?( int, int ); int ?+?( int, int ); }
-vtable W1 | { int w, int ?==?( int, int ); int ?-?( int, int ); }
+vtable W1 | { int ?+?( int, int ); int w, int ?-?( int, int ); }
 \end{cfa}
 creates a virtual table for @W0@ initialized with the matching @<@ and @+@
-operations visible at this declaration.  Similarly, @W1@ is initialized with
-@<@ and @+@ from the inheritance with @W0@, plus the @==@ and @-@ operations
-visible at this declaration. It is important to note that these are virtual
-members, not virtual methods of object-orientated programming, and can be of
-any type.
+operations visible at this declaration context.  Similarly, @W1@ is initialized
+with @<@ from inheritance with @W0@, @+@ is replaced, and @-@ is added, where
+both operations are matched at this declaration context. It is important to
+note that these are virtual members, not virtual methods of object-orientated
+programming, and can be of any type. Finally, trait names can be used to
+specify the list of virtual members.
 
 \PAB{Need to look at these when done.
@@ -187,10 +189,4 @@
 as if it were a method.
 \todo{Clarify (with an example) virtual methods.}
-
-Each virtual type has a unique id.
-This id and all the virtual members are combined
-into a virtual table type. Each virtual type has a pointer to a virtual table
-as a hidden field.
-\todo{Might need a diagram for virtual structure.}
 }%
 
Index: doc/theses/andrew_beach_MMath/vtable.fig
===================================================================
--- doc/theses/andrew_beach_MMath/vtable.fig	(revision bfd7b30ba8bf2ec7a9d763070af797b04783c91e)
+++ doc/theses/andrew_beach_MMath/vtable.fig	(revision 93d0ed361f29a474f7f865ef1d42b3bde741dda9)
@@ -39,4 +39,4 @@
 4 0 0 50 -1 0 11 0.0000 2 135 420 2880 2070 vtable\001
 4 1 0 50 -1 0 12 0.0000 2 180 1365 1935 1080 virtual type trees\001
-4 0 0 50 -1 5 11 0.0000 2 120 315 3060 1755 <,+\001
-4 0 0 50 -1 5 11 0.0000 2 120 1050 3060 2250 <,+,w,==,-\001
+4 0 0 50 -1 5 11 0.0000 2 150 735 3060 1755 Id; <,+\001
+4 0 0 50 -1 5 11 0.0000 2 150 1155 3060 2250 Id; <,+,w,-\001
