@@ -7,6 +7,7 @@ import Data.Foreign (ForeignError(ForeignError), fail, readArray, toForeign)
77import Data.Foreign.Class (class Encode , class Decode , encode , decode )
88import Data.Foreign.Generic (defaultOptions , genericDecode , genericEncode )
99import Data.Foreign.Generic.EnumEncoding (defaultGenericEnumOptions , genericDecodeEnum , genericEncodeEnum )
10+ import Data.Foreign.Generic.Types (Options , SumEncoding (..))
1011import Data.Foreign.NullOrUndefined (NullOrUndefined )
1112import Data.Generic.Rep (class Generic )
1213import Data.Generic.Rep.Eq (genericEq )
@@ -67,11 +68,22 @@ instance showIntList :: Show IntList where
6768instance eqIntList :: Eq IntList where
6869 eq x y = genericEq x y
6970
71+ intListOptions :: Options
72+ intListOptions =
73+ defaultOptions { unwrapSingleConstructors = true
74+ , sumEncoding = TaggedObject { tagFieldName: " tag"
75+ , contentsFieldName: " contents"
76+ , constructorTagTransform: \tag -> case tag of
77+ " Cons" -> " cOnS"
78+ _ -> " "
79+ }
80+ }
81+
7082instance decodeIntList :: Decode IntList where
71- decode x = genericDecode (defaultOptions { unwrapSingleConstructors = true }) x
83+ decode x = genericDecode intListOptions x
7284
7385instance encodeIntList :: Encode IntList where
74- encode x = genericEncode (defaultOptions { unwrapSingleConstructors = true }) x
86+ encode x = genericEncode intListOptions x
7587
7688-- | Balanced binary leaf trees
7789data Tree a = Leaf a | Branch (Tree (TupleArray a a ))
0 commit comments