This holds types common to both core work, and to htools. Types that
are very core specific (e.g. configuration objects) should go in
Objects, while types that are specific to htools in-memory
representation should go into Types.

Note that the order of constructors is important as the automatic
Ord instance will order them in the order they are defined, so when
changing this data type be careful about the interaction with the
desired sorting order.