!]?      !"#$%&'()*+,-./0123456789:;<=>(c) Marek FajkusBSD3marek.faj@gmail.comNone_9aeson-combinators JSON DecodercA value describing how other values are decoded from JSON. This type is an alternative to Aeson's ? instance implementation.Use ., ., 0, 1 2, 3, 4 or 59 alternatives provided by this module for decoding from  ByteString.For decoding files use 6, 7 8, 9 also provided by this module.Using Instances of DecoderFunctor to map function over  ?intToString :: Decoder String intToString = show <$> Decode.int #>>> decode intToString "2" Just "2"!Applicative to construct products qstringIntPair :: Decoder (String, Int) stringIntPair = (,) <$> index 0 string <*> index 1 int =>>> decode stringIntPair "[\"hello\", 42]" Just ("hello", 42)Alternative to construct sums {eitherTextOrInt :: Decoder (Either Text Int) eitherTextOrInt = Left <$> Decode.text <|> Right <$> Decode.int v>>> decode eitherTextOrInt "\"Lorem Ipsum\"" Just (Left "Lorem Ipsum") >>> decode eitherTextOrInt "42" Just (Right 42) Monad for  chaining odd :: Decoder Int odd = do val <- int if val `mod` 2 == 1 then $ return val else fail $ "Expected odd value, got " <> show val f>>> eitherDecode odd "3" Right 3 >>> eitherDecode odd "4" Left "Error in $: Expected odd value, got 4"aeson-combinators is compatible with Aeson's ? class.  decoder acts like a proxy to instance implementation. Any type that is an instance of this class is automatically compatible.While  is universally usable for all primitive values, this library provides individual type constraint functions for decoding most common primitives and combinators for decoding larger structure from these primitives.aeson-combinatorsDecode any JSON value to @) value which is impossible to construct.#This Decoder is guarenteed to fail.aeson-combinatorsDecode JSON null into '()'aeson-combinators Decode JSON booleans to Haskell aeson-combinatorsDecode JSON number to aeson-combinatorsDecode JSON number to Aaeson-combinatorsDecode JSON number to B aeson-combinatorsDecode JSON number to C aeson-combinatorsDecode JSON number to D aeson-combinators Decode JSON number to unbounded E aeson-combinatorsDecode JSON number to GHC's  (non negative)This function requires base >= 4.8.0 aeson-combinatorsDecode JSON number to bounded Faeson-combinatorsDecode JSON number to bounded Gaeson-combinatorsDecode JSON number to bounded Haeson-combinatorsDecode JSON number to bounded Iaeson-combinatorsDecode JSON number to bounded Jaeson-combinatorsDecode JSON number to Kaeson-combinatorsDecode JSON number to Laeson-combinators*Decode JSON number to arbitrary precision Maeson-combinators'Decode single character JSON string to aeson-combinatorsDecode JSON string to  aeson-combinatorsDecode JSON string to  aeson-combinatorsDecode JSON string to Naeson-combinatorsDecode JSON string to  aeson-combinatorsDecode JSON string to   ( using Aeson's instance implementation.Supported string formats:BYYYY-MM-DD HH:MM Z YYYY-MM-DD HH:MM:SS Z YYYY-MM-DD HH:MM:SS.SSS ZThe first space may instead be a T, and the second space is optional. The Z represents UTC. The Z may be replaced with a time zone offset of the form +0000 or -08:00, where the first two digits are hours, the : is optional and the second two digits (also optional) are minutes.aeson-combinatorsDecode JSON string to  ( using Aeson's instance implementation.aeson-combinatorsDecode JSON string to  ( using Aeson's instance implementation.aeson-combinatorsDecode JSON string to O( using Aesons's instance implementationaeson-combinatorsDecode JSON string to P( using Aesons's instance implementationaeson-combinatorsDecode JSON string to Q( using Aesons's instance implementationThis function requires  'time-compat' >= 1.9.2 aeson-combinators)Decode JSON null and other JSON value to  . JSON null will be decoded to R#. Other value decoded by provided  to S!aeson-combinators?Decode JSON array of values to '[a]' of values using provided ."aeson-combinatorsDecode JSON array of values to T of values using provided .#aeson-combinatorsDecode JSON object to U with   key using provided .$aeson-combinators INLINE hashMapLazy Decode JSON object to U with   key using provided .%aeson-combinators INLINE hashMapStrict Decode JSON object to V with   key using provided .&aeson-combinators INLINE mapStrict Decode JSON object to V with   key using provided .'aeson-combinators INLINE mapStrict uDecode JSON null to any value. This function is useful for decoding constructors which represented by null in JSON. data Codomain = NotSet | Foo | Bar myDomainDecoder :: Decoder Codomain myDomainDecoder = jsonNull NotSet <|> (text >>= fooBar) where fooBar "foo" = return Foo fooBar "bar" = return Bar fooBar unknown = fail $ "Unknown value " <> show unknown(aeson-combinators'Extract JSON value from JSON object key 4>>> decode (key "data" int) "{\"data\": 42}" Just 42)aeson-combinators(Extract JSON value from JSON object keys K>>> decode (at ["data", "value"] int) "{\"data\": {\"value\": 42}}" Just 42*aeson-combinators(Extract JSON value from JSON array index ->>> decode (index 2 int) "[0,1,2,3,4]" Just 2+aeson-combinators*Extract JSON value from JSON array indexes 9>>> decode (indexes [0,1,0] int) "[[true, [42]]]" Just 42,aeson-combinators!Decode value from JSON structure.From object key: G>>> decode (element (Key "data") text) "{\"data\": \"foo\"}" Just "foo"From array index: 3>>> decode (element (Index 1) int) "[0,1,2]" Just 1-aeson-combinators&Decode value from deep JSON structure. X>>> decode (path [Key "data", Index 0] bool) "{\"data\":[true, false, false]}" Just True.aeson-combinators1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, R is returned._The input must consist solely of a JSON document, with no trailing data except for whitespace.>This function parses immediately, but defers conversion. See  for details./aeson-combinators1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, R is returned._The input must consist solely of a JSON document, with no trailing data except for whitespace.?This function parses and performs conversion immediately. See  for details.0aeson-combinatorsLike .2 but returns an error message when decoding fails.1aeson-combinatorsLike /2 but returns an error message when decoding fails.2aeson-combinators3Efficiently deserialize a JSON value from a strict W5. If this fails due to incomplete or invalid input, R is returned._The input must consist solely of a JSON document, with no trailing data except for whitespace.>This function parses immediately, but defers conversion. See  for details.3aeson-combinators3Efficiently deserialize a JSON value from a strict W5. If this fails due to incomplete or invalid input, R is returned._The input must consist solely of a JSON document, with no trailing data except for whitespace.@This function parses and performs conversion immediately. See  for details.4aeson-combinatorsLike 22 but returns an error message when decoding fails.5aeson-combinatorsLike 32 but returns an error message when decoding fails.6aeson-combinatorseEfficiently deserialize a JSON value from a file. If this fails due to incomplete or invalid input, R is returned.nThe input file's content must consist solely of a JSON document, with no trailing data except for whitespace.>This function parses immediately, but defers conversion. See  for details.7aeson-combinatorseEfficiently deserialize a JSON value from a file. If this fails due to incomplete or invalid input, R is returned.nThe input file's content must consist solely of a JSON document, with no trailing data except for whitespace.@This function parses and performs conversion immediately. See  for details.8aeson-combinatorsLike 62 but returns an error message when decoding fails.9aeson-combinatorsLike 72 but returns an error message when decoding fails.:  !"#$%&'()*+,-./0123456789:    !"#$%&'()*+,-./0123456789X !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYWZ[WZ\WZ]WZ^_`abcdWefWegWehWeibcjbcklmnopqrstruvwxyWz{Wz|}~0aeson-combinators-0.0.2.1-IjOHm6udLXmFbppJuhifsoData.Aeson.Combinators.DecodeDataBoolData.IntIntGHCNaturalCharStringTextVersionData.Local.Time ZonedTime LocalTime TimeOfDayMaybeL ByteString Data.Aesonjsonjson'Decoderautovoidunitboolintint8int16int32int64integernaturalwordword8word16word32word64floatdouble scientificcharstringtextuuidversion zonedTime localTime timeOfDayutcTimeday dayOfWeeknullablelistvector hashMapLazy hashMapStrictmapLazy mapStrictjsonNullkeyatindexindexeselementpathdecodedecode' eitherDecode eitherDecode' decodeStrict decodeStrict'eitherDecodeStricteitherDecodeStrict'decodeFileStrictdecodeFileStrict'eitherDecodeFileStricteitherDecodeFileStrict'$fMonadFailDecoder$fAlternativeDecoder$fMonadDecoder$fApplicativeDecoder$fFunctorDecoder$aeson-1.4.6.0-E1ZzdvBD9VeKPALBZCtZxxData.Aeson.Types.FromJSONFromJSONbase Data.VoidVoidGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeIntegerghc-prim GHC.TypesWordGHC.WordWord8Word16Word32Word64FloatDouble)scientific-0.3.6.2-2j3UqQy2nBn6FeJPXACpOzData.Scientific Scientific'uuid-types-1.0.3-Ch4DBmGyJLS7uw4hSXblWiData.UUID.Types.InternalUUID time-1.8.0.2 Data.Time.Clock.Internal.UTCTimeUTCTimeData.Time.Calendar.DaysDay*time-compat-1.9.2.2-B4M2FpSJt3R4h2zQkxlzCqData.Time.Calendar.Compat DayOfWeek GHC.MaybeNothingJust&vector-0.12.1.2-E9YBdJZ4ywF23gc9L8wAxp Data.VectorVector3unordered-containers-0.2.10.0-b9YJCQLkMeLUf311RZkQDData.HashMap.BaseHashMapcontainers-0.6.0.1Data.Map.InternalMapbytestring-0.10.8.2Data.ByteString.Internal