Derive Template Haskell's Lift class for datatypes