We originally started with a very simple typing system — each object
has a field that indicates its type. Then, for the sake of efficiency
in both time and space, we moved some of the typing information directly
SCM value, and left the rest in the
Guile itself employs a more complex hierarchy, storing finer and finer
gradations of type information in different places, depending on the
object's coarser type.
In the author's opinion, Guile could be simplified greatly without significant loss of efficiency, but the simplified system would still be more complex than what we've presented above.