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