This package provides a Data.Data
-based genericLift
function which can be used for providing a Language.Haskell.TH.Syntax.lift
implementation. See the documentation in the Language.Haskell.TH.Lift.Generics
module to get started.
Credit goes to Matthew Pickering for suggesting this idea.
Note that due to API limitations, GHC.Generics
wasn't powerful enough to come up with the entirety of a lift
implementation prior to GHC 8.0. For this reason, genericLiftWithPkg
requires you to produce the package name yourself, which proves to be no small feat (see the documentation for more info).
Luckily, you don't have to jump through as many hoops on GHC 8.0 and later: simply use the genericLift
function, and life is good.