The reified-records package

This package provides a series of functions to do introspect records and allow records to be manipulated
dynamically as Maps.
Currently this works using Data.Data however in future this will likely change to GHC.Generics and allow more user hooks
into how types are reified and reflected.