@@ -121,6 +121,7 @@ module Data.THGen.XML
121 , Integer
121 , Integer
124+import Control.DeepSeq
124import Control.Lens hiding (repeated, enum, (&))
125import Control.Lens hiding (repeated, enum, (&))
125import Control.Lens.Internal.FieldTH (makeFieldOpticsForDec)
126import Control.Lens.Internal.FieldTH (makeFieldOpticsForDec)
126import qualified Data.Char as C
127import qualified Data.Char as C
@@ -130,12 +131,13 @@ import Data.String
130import Data.THGen.Compat
131import Data.THGen.Compat
131import Data.THGen.Enum
132import Data.THGen.Enum
132import qualified Data.Text as T
133import qualified Data.Text as T
134+import GHC.Generics (Generic)
133import qualified Language.Haskell.TH as TH
135import qualified Language.Haskell.TH as TH
134import Prelude hiding ((+), (*))
136import Prelude hiding ((+), (*))
137+import qualified Text.XML as X
135import Text.XML.DOM.Parser
138import Text.XML.DOM.Parser
136import Text.XML.ParentAttributes
139import Text.XML.ParentAttributes
137import qualified Text.XML.Writer as XW
140import qualified Text.XML.Writer as XW
138−import qualified Text.XML as X
140data XmlFieldPlural
142data XmlFieldPlural
141 = XmlFieldPluralMandatory -- Occurs exactly 1 time (Identity)
143 = XmlFieldPluralMandatory -- Occurs exactly 1 time (Identity)
@@ -344,8 +346,13 @@ isoXmlGenerateRecord (PrefixName strName' strPrefix') descRecordParts = do
346 [TH.recC name fields]
348 [TH.recC name fields]
347− [''Eq, ''Show]
349+ [''Eq, ''Show, ''Generic]
348 lensDecls <- makeFieldOpticsForDec lensRules dataDecl
350 lensDecls <- makeFieldOpticsForDec lensRules dataDecl
354+ [t|NFData $(TH.conT name)|]
349 fromDomInst <- do
356 fromDomInst <- do
351 exprHeader = [e|pure $(TH.conE name)|]
358 exprHeader = [e|pure $(TH.conE name)|]