Don't use implicit lifting when deriving Lift
It isn't much more complicated to be more precise when deriving Lift so we now generate
data Foo = Foo Int Bool
instance Lift Foo where
lift (Foo a b) = [| Foo $(lift a) $(lift b) |]
liftTyped (Foo a b) = [|| Foo $$(lift a) $$(lift b) |]
This fixes #20688 (closed) which complained about using implicit lifting in the derived code.