@@ -193,7 +193,7 @@ mkDeserializeExpr True headTy tyOfTy =
193 [|($(litIntegral lenCname) == $(varE conLen))
193 [|($(litIntegral lenCname) == $(varE conLen))
194 && $(xorCmp tag off _arr)|]
194 && $(xorCmp tag off _arr)|]
195 [|let $(varP (makeI 0)) = $(varE off) + $(litIntegral lenCname)
195 [|let $(varP (makeI 0)) = $(varE off) + $(litIntegral lenCname)
196− in $(mkDeserializeExprOne con)|]
196+ in $(mkDeserializeExprOne 'deserialize con)|]
198mkDeserializeExpr False headTy tyOfTy =
198mkDeserializeExpr False headTy tyOfTy =
199 case tyOfTy of
199 case tyOfTy of
@@ -204,7 +204,7 @@ mkDeserializeExpr False headTy tyOfTy =
204 TheType con ->
204 TheType con ->
206 [valD (varP (mkName "i0")) (normalB (varE _initialOffset)) []]
206 [valD (varP (mkName "i0")) (normalB (varE _initialOffset)) []]
207− (mkDeserializeExprOne con)
207+ (mkDeserializeExprOne 'deserialize con)
208 -- Sum type
208 -- Sum type
209 MultiType cons -> do
209 MultiType cons -> do
210 let lenCons = length cons
210 let lenCons = length cons
@@ -220,7 +220,9 @@ mkDeserializeExpr False headTy tyOfTy =
222 peekMatch (i, con) =
222 peekMatch (i, con) =
223− match (litP (IntegerL i)) (normalB (mkDeserializeExprOne con)) []
225+ (normalB (mkDeserializeExprOne 'deserialize con)) []
224 peekErr =
226 peekErr =
@@ -289,7 +291,7 @@ mkSerializeExpr True tyOfTy =
289 (doE [ bindS
291 (doE [ bindS
290 (varP (mkName "i0"))
292 (varP (mkName "i0"))
291 (serializeW8List _initialOffset _arr conEnc)
293 (serializeW8List _initialOffset _arr conEnc)
292− , noBindS (mkSerializeExprFields fields)
294+ , noBindS (mkSerializeExprFields 'serialize fields)
295mkSerializeExpr False tyOfTy =
297mkSerializeExpr False tyOfTy =
@@ -305,7 +307,7 @@ mkSerializeExpr False tyOfTy =
305 [ matchConstructor
307 [ matchConstructor
307 (length fields)
309 (length fields)
308− (mkSerializeExprFields fields)
310+ (mkSerializeExprFields 'serialize fields)
310 -- Sum type
312 -- Sum type
311 (MultiType cons) -> do
313 (MultiType cons) -> do
@@ -320,7 +322,10 @@ mkSerializeExpr False tyOfTy =
320 (doE [ bindS
322 (doE [ bindS
321 (varP (mkName "i0"))
323 (varP (mkName "i0"))
322 (mkSerializeExprTag tagType tagVal)
324 (mkSerializeExprTag tagType tagVal)
323− , noBindS (mkSerializeExprFields fields)
326+ (mkSerializeExprFields
325 (zip [0 ..] cons))
330 (zip [0 ..] cons))