Some of these tables are getting complicated, so I have created three
different tables, and this should be sufficient.
Describing it, however, seems to be a lot for source code, and I thought
I would describe it using a literate programming style. We'll see.