śĪIŻBą*      !"#$%&'() (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None(>N/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.7*+*+(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None (+-./>NSingleton 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.7,-,-(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None Create a . from string representation.This is useful in tests.Since: aeson-extra-0.3.1.0Like 6, but replace single quotes with double quotes before. >> $(mkValue' "{'a': 2 }") Object (fromList [("a",Number 2.0)])Since: aeson-extra-0.3.1.0(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None+A type to parse /Since: aeson-extra-0.2.2.0 A type to parse 01 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.0  2345     2345(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None +-./3579&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)]})6789:;<=>?@ABCDE  6789:;<=>?@ABCDE(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None+-./>LAn algebra of .Since: aeson-extra-0.3.1.0!A JSON "array" (sequence).Since: aeson-extra-0.3.1.0" A JSON "object" (key/value map).Since: aeson-extra-0.3.1.0  !"FGH  !"  "! !"FGH(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>NoneIN#Generic merge. For example  https://lodash.com/docs#merge: ’¢lodashMerge :: Value -> Value -> Value lodashMerge x y = merge lodashMergeAlg x y lodashMergeAlg :: (a -> a -> a) -> ValueF a -> ValueF a -> ValueF a lodashMergeAlg r a' b' = case (a', b') of (ObjectF a, ObjectF b) -> ObjectF $ alignWith f a b (ArrayF a, ArrayF b) -> ArrayF $ alignWith f a b (_, b) -> b where f (These x y) = r x y f (This x) = x f (That x) = x Since: aeson-extra-0.3.1.0$$Generic merge, in arbitrary context.Since: aeson-extra-0.3.1.0#$  !"#$ #$ "!#$(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None+-./4%NCollapsed 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 I instance behaving like lists'.(>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])%&'(JK%&'(%&'(%&'(JK (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None)Like L, but produces strict M.Since: 0.2.3.0)gNOPQRSTUVWXYZ[\]^_L`abcdefghijkl1mnopqrstuvwxyz{.|}~€‚ƒ„…†‡ˆ  !"#%&'()))%&'(   "!#)‰       !"#$%! &'(()* +,-./012345367089:;<=>?@ABCDEFGHIJKLMNOPQRSTU0VWXYZ0[\0[]0[^0[_0`a0`b0cd0ce0cf0cg0ch0ci0cj0ck0cl0cm0Vn0Vo08p08q08r08s08t08u08v08w08x08y08z08{08|08}08~0101€0101‚01ƒ01„01…01†01‡01ˆ01‰01…01„01Š01‹01Œ0101Ž01Ž‘’“”•––—aeson_9T53MV70lcTJa0SKrr2Qn0Data.Aeson.Extra.SymTagData.Aeson.Extra.SingObjectData.Aeson.Extra.THData.Aeson.Extra.TimeData.Aeson.Extra.MapData.Aeson.Extra.FoldableData.Aeson.Extra.MergeData.Aeson.Extra.CollapsedListData.Aeson.ExtraSymTag SingObject mkSingObject getSingObjectmkValuemkValue'ZgetZUgetU ToJSONMap toJSONMap ToJSONKey toJSONKey FromJSONMap parseJSONMap FromJSONKey parseJSONKeyMgetMapparseIntegralJSONKeyValueFObjectFArrayFStringFNumberFBoolFNullFmergemergeA CollapsedListgetCollapsedListparseCollapsedList encodeStrict$fToJSONSymTag$fFromJSONSymTag$fToJSONSingObject$fFromJSONSingObjectaeson_2t03sZhvmlzHSWzoTbx1vWData.Aeson.Types.InternalValuetime_FTheb6LSxyX1UABIbBXRfnData.Time.LocalTime.LocalTime ZonedTimeData.Time.Clock.UTCUTCTimeData.Aeson.Types.ClassFromJSON $fFromJSONZ $fToJSONZ $fFromJSONU $fToJSONU $fToJSONM$fToJSONMapMapkv$fToJSONMapHashMapkv$fToJSONKeyInteger$fToJSONKeyInt $fToJSONKey[]$fToJSONKeyText$fToJSONKeyText0 $fFromJSONM$fFromJSONMapMapkv$fFromJSONMapHashMapkv$fFromJSONKeyInteger$fFromJSONKeyInt$fFromJSONKey[]$fFromJSONKeyText$fFromJSONKeyText0$fUnfoldableValue$fFoldableValueTFCo:R:BaseValuebaseGHC.Base Alternative$fToJSONCollapsedList$fFromJSONCollapsedListData.Aeson.Encode.Functionsencodebytes_6VWy06pWzJq9evDvK2d4w6Data.ByteString.Internal ByteString Data.AesoneitherDecodeStrict' eitherDecode'eitherDecodeStrict eitherDecodeData.Aeson.Parser.Internaljson'jsonData.Aeson.Types.Instances.!=.:!.:fromJSONwithBoolwithScientific withNumber withArraywithText withObjectpairsfoldablegenericParseJSONgenericToEncoding genericToJSONgToJSONGToJSON gToEncoding GToEncoding gParseJSON GFromJSON toEncodingtoJSONToJSON parseJSON.=KeyValuedefaultOptionsobjectSuccessErrorResultObjectArrayNullBoolNumberString fromEncodingEncodingSeriesfromDotNetTime DotNetTimeaeson_BTrbSQA6vBc5cQO8er35S7Data.Aeson.Compat.:? decodeStrict' decodeStrictdecode'decodeAesonException