śĪ!RŪH}v      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde f g h i j k l m n o p q r s t u (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None2456>Ļ aeson-extraNCollapsed list, singleton is represented as the value itself in JSON encoding. š» > decode "null" :: Maybe (CollapsedList [Int] Int) Just (CollapsedList []) » > decode "42" :: Maybe (CollapsedList [Int] Int) Just (CollapsedList [42]) » > decode "[1, 2, 3]" :: Maybe (CollapsedList [Int] Int) Just (CollapsedList [1,2,3]) ™» > encode (CollapsedList ([] :: [Int])) "null" » > encode (CollapsedList ([42] :: [Int])) "42" » > encode (CollapsedList ([1, 2, 3] :: [Int])) "[1,2,3]"Documentation rely on f v instance behaving like lists'. aeson-extra>Parses possibly collapsed array value from the object's field. ’g» > newtype V = V [Int] deriving (Show) » > instance FromJSON V where parseJSON = withObject "V" $ \obj -> V <$> parseCollapsedList obj "value" » > decode "{}" :: Maybe V Just (V []) » > decode "{\"value\": null}" :: Maybe V Just (V []) » > decode "{\"value\": 42}" :: Maybe V Just (V [42]) » > decode "{\"value\": [1, 2, 3, 4]}" :: Maybe V Just (V [1,2,3,4])(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None 2456=?@ACž aeson-extra&A wrapper type to parse arbitrary maps m» > decode "{\"1\": 1, \"2\": 2}" :: Maybe (M (H.HashMap Int Int)) Just (M {getMap = fromList [(1,1),(2,2)]})  (C) 2015-2017 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None 2456HVī2 aeson-extraAn algebra of wSince: aeson-extra-0.3.1.09 aeson-extraA JSON "array" (sequence).Since: aeson-extra-0.3.1.0: aeson-extra A JSON "object" (key/value map).Since: aeson-extra-0.3.1.0 23456789: 2345678:9(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>NoneSX&MD aeson-extraGeneric merge.For example see F.Since: aeson-extra-0.3.1.0E aeson-extra$Generic merge, in arbitrary context.Since: aeson-extra-0.3.1.0F aeson-extraExample of using D. see  https://lodash.com/docs#merge:Note:F not tested against JavaScript lodash, so may disagree in the results. 23456789:DEF DEF2345678:9 None&ć 23456789:(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None .2456HX,DG aeson-extraSingleton value object T» > decode "{\"value\": 42 }" :: Maybe (SingObject "value" Int) Just (SingObject 42) E» > encode (SingObject 42 :: SingObject "value" Int) "{\"value\":42}"Available with: base >=4.7K aeson-extraGHIJGHIJ(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>NoneX1W aeson-extra Lazyly parse x with top-level JSON array.Note:6 inspecting result's second field will force the list! let ~(values, err) = WA bs traverse_ processValue values maybe (pure ()) printError err WW(C) 2015-2018 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None.HX6·X aeson-extra/Singleton string encoded and decoded as ifself. 2»> encode (SymTag :: SymTag "foobar") "\"foobar\"" :decode "\"foobar\"" :: Maybe (SymTag "foobar") Just SymTag 6decode "\"foobar\"" :: Maybe (SymTag "barfoo") NothingAvailable with: base >=4.7Z aeson-extraXYXY(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None> $(mkValue' "{'a': 2 }") Object (fromList [("a",Number 2.0)])Since: aeson-extra-0.3.1.0cdcd (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None2C³e aeson-extraA type to parse ySince: aeson-extra-0.2.2.0h aeson-extraA type to parse z{ instance accepts for example: 82015-09-07T08:16:40.807Z 2015-09-07 11:16:40.807 +03:00 Latter format is accepted by aeson staring from version 0.10.0.0.See ihttps://github.com/bos/aeson/blob/4667ef1029a373cf4510f7deca147c357c6d8947/Data/Aeson/Parser/Time.hs#L150Since: aeson-extra-0.2.2.0efghijhijefg (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>NoneFu aeson-extraLike |, but produces strict }.Since: 0.2.3.0m~€|‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œ{žŸ ”¢£¤„¦§Ø©Ŗ«w¬­®Æ°±²³“µ¶·ø¹ŗ»¼23456789:DFGHIJWXYcdefghiju+uXYGHIJhijefg2345678:9DFWcd½    !""#$%&'()*+,-./0123456789:;<=>?@AB>=CDEFGHIJKLMNOOPQRSTUVWXYZ[\]^__`abcdefghij k k l m m n o p q r s t u v w x yz{|}~€‚ƒ„…ƒ†‡}ˆ‰}Š‹€Œ‚}Š}ŠŽ}Š}А}‘’}“”}“•}–—}–˜}–™}–š}–›}–œ}–}–ž}–Ÿ} ”} ¢} £} ¤}ˆ„}ˆ¦}ˆ§}ˆØ}ˆ©}ˆŖ}ˆ«}ˆ¬}ˆ­}ˆ®}ˆÆ}ˆ°}ˆ±}ˆ²}³“}³µ}³¶}³·}~ø}~¹}~ŗ}~»}~¼}~½}~¾}~æ}~Ą}~Į}~¾}~æ}~Ā}~Ć}~Ä}~Ä}~ÅĘĒČĘĒÉĘĒŹĘĒĖĘĒĢĘĒĶĘĒĪĘĒĪĻ*aeson-extra-0.4.1.2-2k8Yv7b5ym81rAmXXqCwpuData.Aeson.Extra.CollapsedListData.Aeson.Extra.MapData.Aeson.Extra.RecursiveData.Aeson.Extra.MergeData.Aeson.Extra.SingObjectData.Aeson.Extra.StreamData.Aeson.Extra.SymTagData.Aeson.Extra.THData.Aeson.Extra.TimeData.Aeson.ExtraData.Aeson.Extra.Foldable CollapsedListgetCollapsedListparseCollapsedList$fFromJSONCollapsedList$fToJSONCollapsedList$fToJSON1CollapsedList$fFromJSON1CollapsedList$fEqCollapsedList$fOrdCollapsedList$fShowCollapsedList$fReadCollapsedList$fFunctorCollapsedList$fFoldableCollapsedList$fTraversableCollapsedList ToJSONMap toJSONMap ToJSONKey toJSONKey FromJSONMap parseJSONMap FromJSONKey parseJSONKeyMgetMapparseIntegralJSONKey$fFromJSONKeyInteger$fFromJSONKeyInt$fFromJSONKey[]$fFromJSONKeyText$fFromJSONKeyText0 $fFromJSONM$fFromJSONMapMapkv$fFromJSONMapHashMapkv$fToJSONKeyInteger$fToJSONKeyInt $fToJSONKey[]$fToJSONKeyText$fToJSONKeyText0 $fToJSONM$fToJSONMapMapkv$fToJSONMapHashMapkv$fEqM$fOrdM$fShowM$fReadM $fFunctorM $fFoldableM$fTraversableMValueFObjectFArrayFStringFNumberFBoolFNullF$fCorecursiveValue$fRecursiveValue $fEqValueF $fReadValueF $fShowValueF $fDataValueF$fFunctorValueF$fFoldableValueF$fTraversableValueFmergemergeA lodashMerge SingObject mkSingObject getSingObject$fNFDataSingObject$fToJSONSingObject$fFromJSONSingObject$fToJSON1SingObject$fFromJSON1SingObject$fEqSingObject$fOrdSingObject$fShowSingObject$fReadSingObject$fFunctorSingObject$fFoldableSingObject$fTraversableSingObject streamDecodeSymTag$fNFDataSymTag$fToJSONSymTag$fFromJSONSymTag $fEqSymTag $fOrdSymTag $fShowSymTag $fReadSymTag $fEnumSymTag$fBoundedSymTagmkValuemkValue'ZgetZUgetU $fFromJSONU $fToJSONU $fFromJSONZ $fToJSONZ$fEqU$fOrdU$fShowU$fReadU$fShowZ$fReadZ encodeStrictbaseGHC.Base Alternative$aeson-1.4.3.0-CKhfOL9YUanCoDzOlq0iJCData.Aeson.Types.InternalValuebytestring-0.10.8.2Data.ByteString.Lazy.Internal ByteString time-1.8.0.2&Data.Time.LocalTime.Internal.ZonedTime ZonedTime Data.Time.Clock.Internal.UTCTimeUTCTimeData.Aeson.Types.FromJSONFromJSON Data.AesonencodeData.ByteString.InternaleitherDecodeStrict' eitherDecode'eitherDecodeStrict eitherDecodeData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncodingData.Aeson.Types.ToJSONgenericToEncoding genericToJSONToJSONtoJSON toEncoding toJSONListtoEncodingListKeyValue.=Data.Aeson.Encoding.Internalpairs fromEncodingEncodingSeries.!=.:!.:fromJSONwithEmbeddedJSONwithBoolwithScientific withArraywithText withObjectgenericParseJSON GFromJSON parseJSON parseJSONListData.Aeson.Parser.Internalvalue'valuejson'jsondefaultOptionsobjectResultSuccessErrorParserObjectArrayBoolStringNumberNull DotNetTimefromDotNetTime)aeson-compat-0.3.9-64t4I0EkvuC6Ti9smnp7MQData.Aeson.Compat withNumber.:? decodeStrict' decodeStrictdecode'decodeAesonException