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

A pseudo derivation. For each field in the data type, deriving Set generates setFieldName v x = x{fieldName = v}. This derivation is intended to work around the fact that in Haskell assigning to a field is not a first class object (although extracting from a field is).