T10598_TH.hs:(27,2)-(42,51): Splicing declarations do fooDataName <- newName "Foo" mkFooConName <- newName "MkFoo" let fooType = conT fooDataName sequence [newtypeD (cxt []) fooDataName [] Nothing (normalC mkFooConName [bangType (bang noSourceUnpackedness noSourceStrictness) [t| Int |]]) [derivClause (Just StockStrategy) [[t| Eq |]], derivClause (Just AnyclassStrategy) [[t| C |]], derivClause (Just NewtypeStrategy) [[t| Read |]]], standaloneDerivWithStrategyD (Just StockStrategy) (cxt []) [t| Ord $(fooType) |] pending(rn) [], standaloneDerivWithStrategyD (Just AnyclassStrategy) (cxt []) [t| D $(fooType) |] pending(rn) [], standaloneDerivWithStrategyD (Just NewtypeStrategy) (cxt []) [t| Show $(fooType) |] pending(rn) []] ======> newtype Foo = MkFoo Int deriving stock Eq deriving anyclass C deriving newtype Read deriving stock instance Ord Foo deriving anyclass instance D Foo deriving newtype instance Show Foo