Simple data types for constructing and pattern matching on heterogeneous lists.
Purposefully barebones, only the data types and macros to construct them are
included.
