@@ -121,6 +121,7 @@ module Data.THGen.XML
121121 , Integer
122122 ) where
123123
124+import Control.DeepSeq
124125import Control.Lens hiding (repeated, enum, (&))
125126import Control.Lens.Internal.FieldTH (makeFieldOpticsForDec)
126127import qualified Data.Char as C
@@ -130,12 +131,13 @@ import Data.String
130131import Data.THGen.Compat
131132import Data.THGen.Enum
132133import qualified Data.Text as T
134+import GHC.Generics (Generic)
133135import qualified Language.Haskell.TH as TH
134136import Prelude hiding ((+), (*))
137+import qualified Text.XML as X
135138import Text.XML.DOM.Parser
136139import Text.XML.ParentAttributes
137140import qualified Text.XML.Writer as XW
138−import qualified Text.XML as X
139141
140142data XmlFieldPlural
141143 = XmlFieldPluralMandatory -- Occurs exactly 1 time (Identity)
@@ -344,8 +346,13 @@ isoXmlGenerateRecord (PrefixName strName' strPrefix') descRecordParts = do
344346 dataD
345347 name
346348 [TH.recC name fields]
347− [''Eq, ''Show]
349+ [''Eq, ''Show, ''Generic]
348350 lensDecls <- makeFieldOpticsForDec lensRules dataDecl
351+ nfDataInst <- do
352+ TH.instanceD
353+ (return [])
354+ [t|NFData $(TH.conT name)|]
355+ [ ]
349356 fromDomInst <- do
350357 let
351358 exprHeader = [e|pure $(TH.conE name)|]