úÎSšLŪ(      !"#$%&'(c) 2015 Bryan O'SullivanApache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneM (,Run an attoparsec parser as an aeson parser.)Parse a date of the form  YYYY-MM-DD.*4Parse a two-digit integer (e.g. day of month, hour).+Parse a time of the form HH:MM:SS[.SSS].,GParse a count of seconds, with the integer part being two digits long.-Parse a time zone, and return .F if the offset from UTC is zero. (This makes some speedups possible.)/#Parse a date and time, of the form YYYY-MM-DD HH:MM:SS$. The space may be replaced with a TD. The number of seconds may be followed by a fractional component.0 Behaves as 15, but converts any time zone offset into a UTC time.15Parse a date with time zone info. Acceptable formats: YYYY-MM-DD HH:MM:SS Z!The first space may instead be a T*, and the second space is optional. The Z represents UTC. The Z6 may be replaced with a time zone offset of the form +0000 or -08:00-, where the first two digits are hours, the :D is optional and the second two digits (also optional) are minutes. 234()*+,-/015()+-/01 234()*+,-/015(C) 2015 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None+Exception thrown by & - family of functions in this module.Like original  but in arbitrary 6.=Parse a top-level JSON value, i.e. also strings, numbers etc.Like original  but in arbitrary 6.Like original  but in arbitrary 6.Like original  but in arbitrary 6.7Retrieve the value associated with the given key of an 7. The result is . if the key is not present, or 87 if the value cannot be converted to the desired type.šThis accessor is most useful if the key and value can be absent from an object without affecting its validity. If the key and value are mandatory, use 9 instead.5This operator is consistent in 'aeson >=0.8 && <0.11'Like D, but the resulting parser will fail, if the key is present but is :.;[Parse a top-level JSON value followed by optional whitespace and end-of-input. See also: <.=[Parse a top-level JSON value followed by optional whitespace and end-of-input. See also: >.Like 2 but returns an error message when decoding fails. Like 2 but returns an error message when decoding fails. Like 2 but returns an error message when decoding fails. Like 2 but returns an error message when decoding fails.?Since: aeson-extra-0.2.2.0@Since: aeson-extra-0.2.2.0A;= BC?@D3><EF9GHIJKLMNOPQRSTUVWXYZ[\7]^_`ab:cdef  A;= BC?@D(C) 2015 Oleg GrenrusBSD3"Oleg Grenrus <oleg.grenrus@iki.fi>None(+-./2468=M A type to parse gSince: aeson-extra-0.2.2.0A type to parse hX 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.0NCollapsed 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'.Singleton 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/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 &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)]})'>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])6  !"#$%&'jklmnopqrstuvwxyz{|}~€‚ƒO><EF9GHIJKLMNOPQRSTUVWXYZ[\7]^_`ab:cdef  !"#$%&' !"#$%&' )   !"#$%&'jklmnopqrstuvwxyz{|}~€‚ƒ„       !"#$%&'()*+,-./01223456789:;<=8>?89@A8BCD8BEFGHIJK8LM8>N8>O8>P8>Q8>R8>S8>T8>U8>V8WX8WY8WZ8W[8W\8W]8W^8W_8W`8Wa89b89c89d89e89f89:89f89g89h89i89j89k89l89lmnompq,rstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽaeson-extra-0.2.2.0Data.Aeson.CompatData.Aeson.ExtraData.Aeson.Extra.Time Data.Aesondecodedecode' decodeStrict decodeStrict'AesonException.:?.:! eitherDecodeeitherDecodeStrict eitherDecode'eitherDecodeStrict'ZgetZUgetU CollapsedList SingObjectSymTag ToJSONMap toJSONMap ToJSONKey toJSONKey FromJSONMap parseJSONMap FromJSONKey parseJSONKeyMgetMapparseIntegralJSONKey mkSingObject getSingObjectgetCollapsedListparseCollapsedListrunday twoDigits timeOfDaysecondstimeZonebase Data.MaybeNothing localTimeutcTime zonedTimeTtoPicoutcexceptions-0.8.0.2Control.Monad.Catch MonadThrow aeson-0.8.0.2Data.Aeson.Types.InternalObjectbytestring-0.10.4.0Data.ByteString.LazyemptyData.Aeson.Types.Instances.:NulljsonEOFData.Aeson.Parser.InternaljsonjsonEOF'json'$fFromJSONLocalTime $fFromJSONDayeitherAesonExceitherDecodeWitheitherDecodeStrictWith$fExceptionAesonExceptionData.Aeson.Encode.ByteStringencode.!=fromJSON.=withBoolwithScientific withNumber withArraywithText withObjectData.Aeson.Types.ClassgenericParseJSON genericToJSONgToJSONGToJSON gParseJSON GFromJSONtoJSONToJSON parseJSONFromJSONobjectErrorSuccessResultArrayStringNumberBoolValuefromDotNetTime DotNetTime time-1.4.2Data.Time.LocalTime.LocalTime ZonedTimeData.Time.Clock.UTCUTCTimeControl.Applicative Alternative $fFromJSONZ $fToJSONZ $fFromJSONU $fToJSONU$fToJSONCollapsedList$fFromJSONCollapsedList$fToJSONSingObject$fFromJSONSingObject$fToJSONSymTag$fFromJSONSymTag $fToJSONM$fToJSONMapMapkv$fToJSONMapHashMapkv$fToJSONKeyInteger$fToJSONKeyInt $fToJSONKey[]$fToJSONKeyText$fToJSONKeyText0 $fFromJSONM$fFromJSONMapMapkv$fFromJSONMapHashMapkv$fFromJSONKeyInteger$fFromJSONKeyInt$fFromJSONKey[]$fFromJSONKeyText$fFromJSONKeyText0