@@ -429,15 +429,16 @@ object exp = [|Encoding|] `appE` ([|E.char7 '{'|] <^> exp <^> [|E.char7 '}'|])
429429sumToEncoding :: Options -> Bool -> Name -> Q Exp -> Q Exp
430430sumToEncoding opts multiCons conName exp
431431 | multiCons =
432+ let fexp = [|fromEncoding|] `appE` exp in
432433 case sumEncoding opts of
433434 TwoElemArray ->
434− array (encStr opts conName <%> exp)
435+ array (encStr opts conName <%> fexp)
435436 TaggedObject{tagFieldName, contentsFieldName} ->
436437 object $
437438 ([|E.builder tagFieldName|] <:> encStr opts conName) <%>
438− ([|E.builder contentsFieldName|] <:> [|fromEncoding|] `appE` exp)
439+ ([|E.builder contentsFieldName|] <:> fexp)
439440 ObjectWithSingleField ->
440− object (conTxt opts conName <:> [|fromEncoding|] `appE` exp)
441+ object (conTxt opts conName <:> fexp)
441442
442443 | otherwise = exp
443444