JD/*      !"#$%&'() (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/From  'aeson-extra'Since: aeson-extra-0.3.1.0//(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None+A type to parse 0Since: aeson-extra-0.2.2.0 A type to parse 12 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.03Run a parsers parser as an aeson parser.  34567     34567(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)]})89:;<=>?@ABCDEFG  89:;<=>?@ABCDEFG(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  !"HIJ  !"  "! !"HIJ(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 K 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])%&'(LM%&'(%&'(%&'(LM (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None)Like N, but produces strict O.Since: 0.2.3.0)\PQNRSTUVWXYZ[\]^_`abcd2efghijklmnop.qrstuvwxyz{|}~  !"#%&'()))%&'(   "!#)       !"#$%! &'(()* +,-./012345647809:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW0XYZ[\0]^0]_0`a0`b0`c0`d0`e0`f0`g0`h0`i0`j09k09l09m09n09o09p09q09r09s01t01u01v01w01x01y01z01{01|01}01y01x01~0101aeson_GR6rrgzThfGFwHojqtEsjPData.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_JS7Vm1P5aVjG4blKqZGyfhData.Aeson.Types.InternalValue $fLiftValuetime_AXTdBF9VRQoBOqJT6qtmVHData.Time.LocalTime.LocalTime ZonedTimeData.Time.Clock.UTCUTCTimeData.Aeson.Types.ClassFromJSONrun $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.ByteStringencodebytes_6elQVSg5cWdFrvRnfxTUrHData.ByteString.Internal ByteStringData.Aeson.Parser.Internaljson'jsonData.Aeson.Types.Instances.!=.:fromJSON.=withBoolwithScientific withNumber withArraywithText withObjectgenericParseJSON genericToJSONgToJSONGToJSON gParseJSON GFromJSONtoJSONToJSON parseJSONobjectSuccessErrorResultObjectArrayNullBoolNumberStringfromDotNetTime DotNetTimeaeson_F8yb4OlqcRpGybntuazJ0rData.Aeson.CompateitherDecodeStrict' eitherDecode'eitherDecodeStrict eitherDecode.:!.:? decodeStrict' decodeStrictdecode'decodeAesonException