QGev      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef 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>None0A type to parse vSince: aeson-extra-0.2.2.0A type to parse wx 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   (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None Create a y 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,DT/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>NoneT Lazyly parse z with top-level JSON array.Note:6 inspecting result's second field will force the list! let ~(values, err) = A bs traverse_ processValue values maybe (pure ()) printError err {{(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None ,0234DTSingleton 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-2017 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None 0234DR.An algebra of ySince: aeson-extra-0.3.1.05A JSON "array" (sequence).Since: aeson-extra-0.3.1.06 A JSON "object" (key/value map).Since: aeson-extra-0.3.1.0 ./012345678 ./0123456 ./0123465./012345678(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>NoneOT@Generic merge.For example see B.Since: aeson-extra-0.3.1.0A$Generic merge, in arbitrary context.Since: aeson-extra-0.3.1.0BExample of using @. see  https://lodash.com/docs#merge:Note:F not tested against JavaScript lodash, so may disagree in the results.@AB ./0123456@AB @AB./0123465@AB(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None 02349;<=?K&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)]})CDEFGHIJKLMNOPQRSTUVWXYZ[\]^ CDEFGHIJKLMN KLMIJNGHEFCDCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ None ./0123456 (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None0234:fNCollapsed 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 | instance behaving like lists'.i>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])fghijklmfghifghifghijklm (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>NoneuLike }, but produces strict ~.Since: 0.2.3.0ul}xy !./0123456@BCDEFGHIJKLMNfghiu+uKLMIJNGHEFCD !fghi./0123465@Bu    !"#$%&''()*+,-./0123456789:;<87=>?@ABCDEFGHIJKLMNOPQQRSTUVWXYZ[\]^_`abcdefghij k k l m n o p q r s t u v w x yz{|z}~*aeson-extra-0.4.1.0-ISPpOPJPSaPL9lX64UCVkwData.Aeson.Extra.TimeData.Aeson.Extra.THData.Aeson.Extra.SymTagData.Aeson.Extra.StreamData.Aeson.Extra.SingObjectData.Aeson.Extra.RecursiveData.Aeson.Extra.MergeData.Aeson.Extra.MapData.Aeson.Extra.CollapsedListData.Aeson.ExtraData.Aeson.Extra.FoldableZgetZUgetU $fFromJSONZ $fToJSONZ $fFromJSONU $fToJSONU$fEqU$fOrdU$fShowU$fReadU$fShowZ$fReadZmkValuemkValue'SymTag$fNFDataSymTag$fToJSONSymTag$fFromJSONSymTag $fEqSymTag $fOrdSymTag $fShowSymTag $fReadSymTag $fEnumSymTag$fBoundedSymTag streamDecode SingObject mkSingObject getSingObject$fNFDataSingObject$fToJSONSingObject$fFromJSONSingObject$fToJSON1SingObject$fFromJSON1SingObject$fEqSingObject$fOrdSingObject$fShowSingObject$fReadSingObject$fFunctorSingObject$fFoldableSingObject$fTraversableSingObjectValueFObjectFArrayFStringFNumberFBoolFNullF$fCorecursiveValue$fRecursiveValue $fEqValueF $fReadValueF $fShowValueF $fDataValueF$fFunctorValueF$fFoldableValueF$fTraversableValueFmergemergeA lodashMerge ToJSONMap toJSONMap ToJSONKey toJSONKey FromJSONMap parseJSONMap FromJSONKey parseJSONKeyMgetMapparseIntegralJSONKey $fToJSONM$fToJSONMapMapkv$fToJSONMapHashMapkv$fToJSONKeyInteger$fToJSONKeyInt $fToJSONKey[]$fToJSONKeyText$fToJSONKeyText0 $fFromJSONM$fFromJSONMapMapkv$fFromJSONMapHashMapkv$fFromJSONKeyInteger$fFromJSONKeyInt$fFromJSONKey[]$fFromJSONKeyText$fFromJSONKeyText0$fEqM$fOrdM$fShowM$fReadM $fFunctorM $fFoldableM$fTraversableM CollapsedListgetCollapsedListparseCollapsedList$fFromJSONCollapsedList$fToJSONCollapsedList$fToJSON1CollapsedList$fFromJSON1CollapsedList$fEqCollapsedList$fOrdCollapsedList$fShowCollapsedList$fReadCollapsedList$fFunctorCollapsedList$fFoldableCollapsedList$fTraversableCollapsedList encodeStrict time-1.6.0.1Data.Time.LocalTime.LocalTime ZonedTimeData.Time.Clock.UTCUTCTime$aeson-1.2.1.0-AaNXgHjd07wH94vQOVfApSData.Aeson.Types.FromJSONFromJSONData.Aeson.Types.InternalValuebytestring-0.10.8.1Data.ByteString.Lazy.Internal ByteString streamParsebaseGHC.Base Alternative Data.AesonencodeData.ByteString.InternaleitherDecodeStrict' eitherDecode'eitherDecodeStrict eitherDecodeData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncodingData.Aeson.Types.ToJSONgenericToEncoding genericToJSONToJSONtoJSON toEncoding toJSONListtoEncodingListKeyValue.=Data.Aeson.Encoding.Internalpairs fromEncodingEncodingSeries.!=.:!.:fromJSONwithBoolwithScientific withNumber withArraywithText withObjectgenericParseJSON GFromJSON parseJSON parseJSONListData.Aeson.Parser.Internalvalue'valuejson'jsondefaultOptionsobjectResultSuccessErrorParserObjectArrayBoolStringNumberNull DotNetTimefromDotNetTime+aeson-compat-0.3.7.1-6Q5VPGJsw8D4n1HhFgk5CVData.Aeson.Compat.:? decodeStrict' decodeStrictdecode'decodeAesonException