Deriving Data for poly-kinded datatypes