Generic programming library for generalised deriving
