@@ -392,7 +392,8 @@ isoXmlGenerateRecord (PrefixName strName' strPrefix') descRecordParts = do
392392 XmlFieldPluralMandatory -> [e|id|]
393393 _ -> [e|traverse|]
394394 exprFieldValue = [e|$(TH.varE fName) $(TH.varE objName)|]
395− exprFieldRender = [e|mkElement $exprFieldStrName|]
395+ exprFieldRender =
396+ [e|(\a -> XW.elementA $exprFieldStrName (toXmlParentAttributes a) a)|]
396397 return [e|$exprForField $exprFieldRender $exprFieldValue|]
397398 toXmlExpr
398399 = TH.lamE [if null exprFields then TH.wildP else TH.varP objName]
@@ -434,8 +435,5 @@ isoXmlGenerateRecord (PrefixName strName' strPrefix') descRecordParts = do
434435 return $ [dataDecl] ++ lensDecls ++
435436 [fromDomInst, toXmlInst, toXmlParentAttributesInst]
436437
437−mkElement :: (XW.ToXML a, ToXmlParentAttributes a) => X.Name -> a -> XW.XML
438−mkElement name a = XW.elementA name (toXmlParentAttributes a) a
439−
440438distribPair :: Functor f => (a, f b) -> f (a, b)
441439distribPair (a, fb) = (a,) <$> fb