Previous: Cheaper Pairs, Up: Data Representation in Scheme


A.1.4 Guile Is Hairier

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 into the SCM value, and left the rest in the struct value. 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.