An implementation of the FNV hashes 1 and 1a of Glenn Fowler, Landon Curt
Noll, and Kiem-Phong-Vo,
https://en.wikipedia.org/wiki/Fowler–Noll–Vo_hash_function
Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.