Kobj works by generating descriptions of methods. Each description holds a unique id
as well as a default function. The description's address is used to uniquely identify the
method within a class' method table.
A class is built by creating a method table associating one or more functions with
method descriptions. Before use the class is compiled. The compilation allocates a cache
and associates it with the class. A unique id is assigned to each method description
within the method table of the class if not already done so by another referencing class
compilation. For every method to be used a function is generated by script to qualify
arguments and automatically reference the method description for a lookup. The generated
function looks up the method by using the unique id associated with the method
description as a hash into the cache associated with the object's class. If the method is
not cached the generated function proceeds to use the class' table to find the method. If
the method is found then the associated function within the class is used; otherwise, the
default function associated with the method description is used.
These indirections can be visualized as the following:
object->cache<->class