Generic programming library for generalised deriving.