First class labels for records, with combinators, allowing
selection, modification and update inside (nested) records.
Also includes MonadState versions of these, and template
haskell generation of the labels.