I wound find it interesting to learn what exactly will break when this instance is removed / what feature motivated the addition of the einstance. I'm taking a guess here, maybe it's Generics based deriving? data D = D { something :: Int, somethingElse :: Int -> String } deriving Generic deriving instance NFData D Is it this?