derive-2.4.2: A program and library to derive instances for data types



A pseudo derivation. For each constructor in the data type, deriving From generates fromCtorName which extracts the components if given the appropriate constructor, and crashes otherwise. Unlike the DrIFT "From" derivation, our version works for all constructors - zero-arity constructors always return (), arity-one constructors return the contained value, and all others return a tuple with all the components.