I realized that we needed to define the table based on the definition of its entries before allocating it. This idea was from macros in LISP, where once we know the definition of something, many attributes can be hard-coded in generated data structures and functions operating on them. This combines efficiency with flexibility. This might be one reason for the macros in queue(3). |