ԝv      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuD(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableSafev Transform a w into a x while transforming the keys.y Transform a w into a x while transforming the keys.z#Transform the keys and values of a x.{Transform the keys of a x.vyz{vyz{vyz{(c) 2015-2016 Bryan O'SullivanBSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone<Like TimeOfDay, but using a fixed-width integer for seconds. D(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone!"0IOT,7Specifies how to encode constructors of a sum datatype.9A constructor will be encoded to an object with a field  7 which specifies the constructor tag (modified by the ). If the constructor is a record the encoded record fields will be unpacked into this object. So make sure that your record doesn't have a field with the same label as the  . Otherwise the tag gets overwritten by the encoded value of that field! If the constructor is not a record the encoded constructor contents will be stored under the   field.rA constructor will be encoded to an object with a single field named after the constructor tag (modified by the 9) which maps to the encoded contents of the constructor. |A constructor will be encoded to a 2-element array where the first element is the tag of the constructor (modified by the B) and the second element the encoded contents of the constructor. EOptions that specify how to encode/decode your datatype to/from JSON.YFunction applied to field labels. Handy for removing common record prefixes for example.]Function applied to constructor tags which could be handy for lower-casing them for example.If |& the constructors of a datatype, with allW nullary constructors, will be encoded to just a string with the constructor tag. If }& the encoding will always follow the .If | record fields with a ~6 value will be omitted from the resulting object. If }< the resulting object will include those fields mapping to null.7Specifies how to encode constructors of a sum datatype.RHide the field name when a record constructor has only one field, like a newtype.A key/value pair for an #.A newtype wrapper for Q that uses the same non-standard serialization format as Microsoft .NET, whose  Ghttps://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspxSystem.DateTimeD type is by default serialized to JSON as in the following example: /Date(1302547608878)/8The number represents milliseconds since the Unix epoch.Acquire the underlying value.[A series of values that, when encoded, should be separated by commas. Since 0.11.0.0, the .=* operator is overloaded to create either  (Text, Value) or b. You can use Series when encoding directly to a bytestring builder as in the following example: EtoEncoding (Person name age) = pairs ("name" .= name <> "age" .= age)An encoding of a JSON value.*Acquire the underlying bytestring builder.,A JSON value represented as a Haskell value."A JSON "array" (sequence).# A JSON "object" (key/value map).$A JSON parser.Success continuation.Failure continuation.%The result of running a $.(!The internal result of running a $.,CElements of a JSON path used to describe the location of an error.-9JSON path element of a key into an object, "object.key"..=JSON path element of an index into an array, "array[index]"./Make Encoding from Builder.WUse with care! You have to make sure that the passed Builder is a valid JSON Encoding!0The empty array.Determines if the  is an empty ". Note that:  isEmptyArray 0.1The empty object.2Run a $.3Run a $.4Run a $ with a  result type.5Run a $ with an ( result type. If the parse fails, the ' payload will contain an error message.6"Annotate an error message with a  &http://goessner.net/articles/JsonPath/JSONPath error location.7 Create a  from a list of name/value Ks. If duplicate keys arise, earlier keys and their associated values win.8!Add JSON Path context to a parserWhen parsing a complex structure, it helps to annotate (sub)parsers with context, so that if an error occurs, you can find its location. iwithObject "Person" $ \o -> Person <$> o .: "name" <?> Key "name" <*> o .: "age" <?> Key "age"/(Standard methods like '(.:)' already do this.)\With such annotations, if an error occurs, you will get a JSON Path location of that error. Since 0.109 If the inner Parser failed, modify the failure message using the provided function. This allows you to create more descriptive error messages. For example: pparseJSON (Object o) = modifyFailure ("Parsing of the Foo value failed: " ++) (Foo <$> o .: "someField") Since 0.6.2.0:Default encoding  :   {  = id ,  = id ,  = True ,  = False ,  = ; ,  = False } ;Default   options: defaultTaggedObject =  {  & = "tag" ,  & = "contents" } <Converts from CamelCase to another lower case, interspersing the character between all capital letters and their previous entries, except those capital letters that appear together, like API.(For use by Aeson template haskell calls. .camelTo '_' 'CamelCaseAPI' == "camel_case_api"=Better version of < . Example where it works better: ]camelTo '_' 'CamelAPICase' == "camel_apicase" camelTo2 '_' 'CamelAPICase' == "camel_api_case"k  !"#$%&'()*+,-./0123456789:;<=<  !"#$%'&()*+,-./0123456789:;<=K   !"#$%&'()*+,-./0123456789:;<= O(c) 2011 MailRank, Inc. (c) 2013 Simon Meier <iridcode@gmail.com>BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone >Encode a JSON value to a Data.ByteString .{Use this function if you are encoding over the wire, or need to prepend or append further bytes to the encoded JSON value.Encode a JSON null.Encode a JSON boolean.Encode a JSON array.Encode a JSON string./Encode a JSON string, without enclosing quotes. Add quotes surrounding a builderEncode a JSON string.Encode a JSON number.!>> > D(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone6:?,A key-value pair for encoding a JSON object.AIA type that can be converted from JSON, with the possibility of failure.In many cases, you can get the compiler to generate parsing code for you (see below). To begin, let's cover writing an instance by hand.EThere are various reasons a conversion could fail. For example, an #% could be missing a required key, an "J could be of the wrong size, or a value could be of an incompatible type.<The basic ways to signal a failed conversion are as follows:empty and mzero& work, but are terse and uninformative yields a custom error messageOb produces an informative message for cases when the value encountered is not of the expected typeAn example type and instance: -- Allow ourselves to write  literals. {-# LANGUAGE OverloadedStrings #-} data Coord = Coord { x :: Double, y :: Double } instance FromJSON Coord where parseJSON (# v) = Coord  v .: "x"  v .:" "y" -- We do not expect a non-# value here. -- We could use mzero to fail, but OL -- gives a much more informative error message. parseJSON invalid = O "Coord" invalid !Instead of manually writing your A9 instance, there are two options to do it automatically: Data.Aeson.TH provides Template Haskell functions which will derive an instance at compile time. The generated instance is optimized for your type so will probably be more efficient than the following two options:?The compiler can provide a default generic implementation for B. To use the second, simply add a  deriving ( clause to your datatype and declare a A= instance for your datatype without giving a definition for B.<For example, the previous example can be simplified to just: '{-# LANGUAGE DeriveGeneric #-} import  GHC.Generics; data Coord = Coord { x :: Double, y :: Double } deriving  instance FromJSON Coord If DefaultSignatures~ doesn't give exactly the results you want, you can customize the generic decoding with only a tiny amount of effort, using N with your preferred  : .instance FromJSON Coord where parseJSON = N : C%A type that can be converted to JSON.An example type and instance: -- Allow ourselves to write  literals. {-# LANGUAGE OverloadedStrings #-} data Coord = Coord { x :: Double, y :: Double } instance ToJSON Coord where toJSON (Coord x y) = 7 ["x" @ x, "y" @ y] toEncoding (Coord x y) = pairs ("x" @ x <> "y" @ y) !Instead of manually writing your C9 instance, there are two options to do it automatically: Data.Aeson.TH provides Template Haskell functions which will derive an instance at compile time. The generated instance is optimized for your type so will probably be more efficient than the following two options:?The compiler can provide a default generic implementation for D. To use the second, simply add a  deriving ( clause to your datatype and declare a C< instance for your datatype without giving definitions for D or E.PFor example, the previous example can be simplified to a more minimal instance: '{-# LANGUAGE DeriveGeneric #-} import  GHC.Generics; data Coord = Coord { x :: Double, y :: Double } deriving / instance ToJSON Coord where toEncoding = M : (Why do we provide an implementation for E here? The E function is a relatively new addition to this class. To allow users of older versions of this library to upgrade without having to edit all of their instances or encounter surprising incompatibilities, the default implementation of E uses DY. This produces correct results, but since it performs an intermediate conversion to a 7, it will be less efficient than directly emitting an  . Our one-liner definition of E! above bypasses the intermediate .If DefaultSignatures~ doesn't give exactly the results you want, you can customize the generic encoding with only a tiny amount of effort, using L and M with your preferred  : -instance ToJSON Coord where toJSON = L : toEncoding = M : D=Convert a Haskell value to a JSON-friendly intermediate type.EEncode a Haskell value as JSON.CThe default implementation of this method creates an intermediate  using D. This provides source-level compatibility for people upgrading from older versions of this library, but obviously offers no performance advantage.%To benefit from direct encoding, you mustj provide an implementation for this method. The easiest way to do so is by having your types implement  using the  DeriveGenericA extension, and then have GHC generate a method body as follows. -instance ToJSON Coord where toEncoding = M : F'Class of generic representation types (") that can be converted from JSON.GThis method (applied to :4) is used as the default generic implementation of B.H'Class of generic representation types (#) that can be converted to a JSON .IThis method (applied to :8) can be used as the default generic implementation of E.J'Class of generic representation types (!) that can be converted to JSON.KThis method (applied to :4) is used as the default generic implementation of D.L?A configurable generic JSON creator. This function applied to : is used as the default for D" when the type is an instance of .M?A configurable generic JSON encoder. This function applied to : is used as the default for E" when the type is an instance of .N?A configurable generic JSON decoder. This function applied to : is used as the default for B" when the type is an instance of .O@Fail parsing due to a type mismatch, with a descriptive message.Example usage: +instance FromJSON Coord where parseJSON (#@ v) = {- type matches, life is good -} parseJSON wat = O "Coord" wat ?@ABCDEFGHIJKLMNO-The name of the type you are trying to parse.The actual value encountered.?@ABCDEFGHIJKLMNO ?@ABBCDDEFGHIJKLMNO@8 NoneP-Efficiently serialize a JSON value as a lazy .$This is implemented in terms of the C class's E method.Q Encode a  as a JSON array.R8Encode a series of key/value pairs, separated by commas.PQRPQRPQR (c) 2015-2016 Bryan O'SullivanBSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneT ,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[.SSS]]$. The space may be replaced with a TT. The number of seconds is optional and may be followed by a fractional component. Behaves as 5, but converts any time zone offset into a UTC time.5Parse a date with time zone info. Acceptable formats:YYYY-MM-DD HH:MM Z YYYY-MM-DD HH:MM:SS Z YYYY-MM-DD HH:MM:SS.SSS 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.  D(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone $+069:;DI"Encode something to a JSON string.SwithObject expected f value applies f to the # when value is an Object and fails using O expected otherwise.TwithText expected f value applies f to the  when value is a String and fails using O expected otherwise.UwithArray expected f value applies f to the " when value is an Array and fails using O expected otherwise.VwithNumber expected f value applies f to the  when value is a . and fails using O expected otherwise.WwithScientific expected f value applies f to the  number when value is a . and fails using O expected otherwise.XwithBool expected f value applies f to the  when value is a Bool and fails using O expected otherwise.Y=Convert a value from JSON, failing if the types do not match.Z=Convert a value from JSON, failing if the types do not match.[7Retrieve the value associated with the given key of an #. The result is emptyQ if the key is not present or the value cannot be converted to the desired type.2This accessor is appropriate if the key and value mustW be present in an object for it to be valid. If the key and value are optional, use \ instead.\7Retrieve the value associated with the given key of an #. The result is ~ if the key is not present, or empty7 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 [ instead.]Like \D, but the resulting parser will fail, if the key is present but is !.^#Helper for use in combination with \< to provide default values for optional JSON object fields.This combinator is most useful if the key and value can be absent from an object without affecting its validity and we know a default value to assign in that case. If the key and value are mandatory, use [ instead.Example usage:  v1 <- o \1 "opt_field_with_dfl" .!= "default_val" v2 <- o [ "mandatory_field" v3 <- o \ "opt_field2" WARNING: Only parse lengths of time from trusted input since an attacker could easily fill up the memory of the target system by specifying a scientific number with a big exponent like  1e1000000000.WARNING: Only parse Integers from trusted input since an attacker could easily fill up the memory of the target system by specifying a scientific number with a big exponent like  1e1000000000.WARNING: Only parse fixed-precision numbers from trusted input since an attacker could easily fill up the memory of the target system by specifying a scientific number with a big exponent like  1e1000000000.STUVWXYZ[\]^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"?@ABCDEFGHIJKLMNOSTUVWXYZ[\]^STUVWXYZ[\]^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6(c) 2015-2016 Bryan O'SullivanBSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone ()*+,-.368Z ()*,-.+86Z3n(c) 2012-2016 Bryan O'Sullivan (c) 2011, 2012 Bas Van Dijk (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone!"#$,69:;<=?DQRT2Get the name of the constructor of a sum datatype.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJD(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneL  !"#$%'&/0124579:;<=?@ABCDEFGHIJKLMNOQRSTUVWXY[\]^O !/"0#1O$%&'ABBY254CDDE?@9FGJKHILMNSTUVWXRQ[\]^7  <=:;D(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneB_Parse a top-level JSON value.The conversion of a parsed value to a Haskell value is deferred until the Haskell value is needed. This may improve performance if only a subset of the results of conversions are needed, but at a cost in thunk allocation.This function is an alias for ar. In aeson 0.8 and earlier, it parsed only object or array types, in conformance with the now-obsolete RFC 4627.`Parse a top-level JSON value.This is a strict version of _ which avoids building up thunks during parsing; it performs all conversions immediately. Prefer this version if most of the JSON data needs to be accessed.This function is an alias for br. In aeson 0.8 and earlier, it parsed only object or array types, in conformance with the now-obsolete RFC 4627.a*Parse any JSON value. You should usually _h in preference to this function, as this function relaxes the object-or-array requirement of RFC 4627.In particular, be careful in using this function if you think your code might interoperate with Javascript. A nave Javascript library that parses JSON data using eval is vulnerable to attack unless the encoded data represents an object or an array. JSON implementations in other languages conform to that same restriction to preserve interoperability and security.bStrict version of a . See also `.cParse a quoted JSON string.K'Parse a string without a leading quote.L[Parse a top-level JSON value followed by optional whitespace and end-of-input. See also: _.M[Parse a top-level JSON value followed by optional whitespace and end-of-input. See also: `.NO_`PQRSTUabcKVWXYZ[LM\]^ _`abcXYZ[LMNO_`PQRSTUabcKVWXYZ[LM\]^D(c) 2012-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone_`abc_ac`bD(c) 2012-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNonedEncode a JSON  to a  Data.Text _>, which can be embedded efficiently in a text-based protocol.6If you are going to immediately encode straight to a , it is more efficient to use > instead.de`a>PdeP>dede`aD(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNonef1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, ~ 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.g3Efficiently deserialize a JSON value from a strict b5. If this fails due to incomplete or invalid input, ~ 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.h1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, ~ 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.i1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, ~ 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.jLike f2 but returns an error message when decoding fails.kLike g2 but returns an error message when decoding fails.lLike h2 but returns an error message when decoding fails.mLike i2 but returns an error message when decoding fails. fghicjklm< !"#%'&7:?@ABCDEFGHIJKLMNPQRSTUVWXY[\]^_`fghijklm?fhjlPgikm !"#ABB%&'YCDDE?@FGJKHILMN:STUVWXRQ[\]^7_` fghicjklmC(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3 experimentalportableNone#9;nGenerates both C and AT instance declarations for the given data type or data family instance constructor.EThis is a convienience function which is equivalent to calling both o and r.o Generates a CS instance declaration for the given data type or data family instance constructor.pjGenerates a lambda expression which encodes the given data type or data family instance constructor as a .qvGenerates a lambda expression which encodes the given data type or data family instance constructor as a JSON string.dHelper function used by both o and p . Generates code to generate a K of a number of constructors. All constructors must be from the same type.eHelper function used by both o and qr. Generates code to write out a value for a number of constructors. All constructors must be from the same type.fIf constructor is nullary.gEGenerates code to generate the JSON encoding of a single constructor.hEGenerates code to generate the JSON encoding of a single constructor.r Generates a AS instance declaration for the given data type or data family instance constructor.syGenerates a lambda expression which parses the JSON encoding of the given data type or data family instance constructor.iHelper function used by both r and sw. Generates code to parse the JSON encoding of a number of constructors. All constructors must be from the same type.jBGenerates code to parse the JSON encoding of a single constructor.kCGenerates code to parse the JSON encoding of an n-ary constructor.l"Boilerplate for top level splices. The given m must meet one of two criteria: JIt must be the name of a type constructor of a plain data type or newtype.NIt must be the name of a data family instance or newtype instance constructor.nMInfer the context and instance head needed for a FromJSON or ToJSON instance.oAttempt to derive a constraint on a Type. If it's of kind *, we give it Just a ToJSON/FromJSON constraint. Otherwise, return Nothing.pKIf a VarT is missing an explicit kind signature, steal it from a TyVarBndr.q.Extracts the kind from a type variable binder.r"Returns True if a Type has kind *.sdExtract the Name from a type variable. If the argument Type is not a type variable, throw an error.t%Extracts the name from a constructor.u7Fully applies a type constructor to its type variables.vIs the given type a variable?w6Peel off a kind signature from a Type (if it has one).x<Makes a string literal expression from a constructor's name.y>Creates a string literal expression from a record field label.zThe name of the outermost  constructor.{BExpands all type synonyms in a type. Written by Dan Rosn in the  genifunctors package (licensed under BSD3).G|}~nEncoding options.'Name of the type for which to generate C and A instances.oEncoding options.)Name of the type for which to generate a C instance declaration.pEncoding options.Name of the type to encode.qEncoding options.Name of the type to encode.dEncoding options.8Constructors for which to generate JSON generating code.eEncoding options.8Constructors for which to generate JSON generating code.fghrEncoding options.)Name of the type for which to generate a A instance declaration.sEncoding options.Name of the encoded type.i2Name of the type to which the constructors belong.Encoding options5Constructors for which to generate JSON parsing code.j2Name of the type to which the constructor belongs.Encoding options.4Constructor for which to generate JSON parsing code.0Left (valFieldName, objName) or Right valNamek2Name of the type to which the constructor belongs.structor name.structor arity.lVFunction that generates the actual code. Will be applied to the datatype/data family mC, type variable binders and constructors extracted from the given m . If the mo is from a data family instance constructor, it will also have its instantiated types; otherwise, it will be ~.Resulting value in the  uasi monad.n(The type constructor or data family nameThe typeclass name (C or A)=The type variables from the data type/data family declaration; the types used to instantiate a data family instance, or ~ if it's a plain data typeThe resulting  and 9 to use in a class instance Plain data type/newtype case(The type constructor or data family nameThe typeclass name (C or A)*The types to instantiate the instance with+True if it's a data family, False otherwiseopqrstuvwxyEncoding optionsz{tu :;nopqrs  :;norpqsF|}~nopqdefghrsijklnopqrstuvwxyz{tu654         ! " # $ % & ' ' ( ) * + , - . / 0 1 2 . - 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` abcdefghijklmnopqrstuvwxyz{|}~ 6    , * 3    F     01      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^__`abcdefghijklmnopqrstuvwxyz{|}~Fz{z{z{z{%aeson-0.11.2.0-BcZF3WOQ5KHCKaQqaTtAJmData.Aeson.Internal.TimeData.Aeson.TypesData.Aeson.InternalData.Aeson.EncodeData.Aeson.Parser Data.Aeson Data.Aeson.THData.Aeson.FunctionsData.Aeson.Types.InternalData.Aeson.Encode.BuilderData.Aeson.Types.ClassData.Aeson.Encode.FunctionsData.Aeson.Parser.TimeData.Aeson.Types.InstancesData.Aeson.Types.GenericData.Aeson.Parser.InternalL ByteString TimeOfDay64TODtoPicofromPicodiffTimeOfDay64 toTimeOfDay64 SumEncoding TaggedObjectObjectWithSingleField TwoElemArray tagFieldNamecontentsFieldNameOptionsfieldLabelModifierconstructorTagModifierallNullaryToStringTagomitNothingFields sumEncodingunwrapUnaryRecordsPair DotNetTimefromDotNetTimeSeriesEncoding fromEncodingValueObjectArrayStringNumberBoolNullParserResultErrorSuccessIResultIErrorISuccessJSONPathJSONPathElementKeyIndexunsafeToEncoding emptyArray emptyObjectparseiparse parseMaybe parseEither formatErrorobject modifyFailuredefaultOptionsdefaultTaggedObjectcamelTocamelTo2encodeToBuilderKeyValue.=FromJSON parseJSONToJSONtoJSON toEncoding GFromJSON gParseJSON GToEncoding gToEncodingGToJSONgToJSON genericToJSONgenericToEncodinggenericParseJSON typeMismatchencodefoldablepairs withObjectwithText withArray withNumberwithScientificwithBoolfromJSON ifromJSON.:.:?.:!.!=jsonjson'valuevalue'jstringencodeToTextBuilder fromValuedecode decodeStrictdecode' decodeStrict' eitherDecodeeitherDecodeStrict eitherDecode'eitherDecodeStrict' deriveJSON deriveToJSONmkToJSON mkToEncodingderiveFromJSON mkParseJSON$fLookupFieldMaybe$fLookupFielda mapHashKeyValcontainers-0.5.7.1 Data.Map.BaseMap3unordered-containers-0.2.7.0-AgzviyBVsJXB02ZvZ7buwsData.HashMap.BaseHashMap hashMapKey mapKeyValmapKeyghc-prim GHC.TypesTrueFalsebaseGHC.BaseNothingtime-1.6Data.Time.Clock.UTCUTCTimeFailure isEmptyArrayMaybe Data.EitherEitherLeftEmpty runParserapP hashValue $fShowOptions $fLiftValue$fHashableValue$fIsStringValue $fNFDataValue$fMonoidSeries$fSemigroupSeries $fOrdEncoding $fEqEncoding$fShowEncoding$fMonoidParser$fSemigroupParser$fMonadPlusParser$fAlternativeParser$fApplicativeParser$fFunctorParser$fMonadFailParser $fMonadParser$fTraversableResult$fTraversableIResult$fFoldableResult$fFoldableIResult$fMonoidResult$fSemigroupResult$fMonoidIResult$fSemigroupIResult$fAlternativeResult$fAlternativeIResult$fMonadPlusResult$fMonadPlusIResult$fApplicativeResult$fApplicativeIResult$fMonadFailResult $fMonadResult$fMonadFailIResult$fMonadIResult$fFunctorResult$fFunctorIResult$fNFDataResult$fNFDataIResult$fNFDataJSONPathElementbytestring-0.10.8.0 Data.ByteString.Builder.InternalBuildernull_boolarraytextunquotedquotestringnumberT escapeAsciic2w emptyArray_ emptyArray__ emptyObject_ emptyObject__ascii2ascii4ascii5ascii6ascii8day timeOfDay timeOfDay64timeZonedayTimeutcTime localTime zonedTime twoDigitsdigitfail#text-1.2.2.1-EAONJZlHaySDAracSa6F6FData.Text.InternalText Data.Functor<$><*> GHC.GenericsGenericRepData.ByteString.Lazy.Internal Data.FoldableFoldablebuilderlistbracketsData.ByteString.Builderchar7runsecondsutcstringEncoding*attoparsec-0.13.0.2-9FSMIsbtZMuCPuFwlLVHYCData.Attoparsec.Number)scientific-0.3.4.6-LCwwrQYvRbAKG9KKeYwtQyData.Scientific Scientific$fFromJSONNominalDiffTime$fFromJSONInteger$fFromJSONFixedparseIndexedJSONleftrightorderingToText encodeVector vectorToJSONvectorParseJSON encodeSet encodeMap encodeWithKeyencodeKV dotNetTime formatMillisparseJSONElemAtIndextuple>*<realFloatToJSONrealFloatToEncodingscientificToNumberparseRealFloat parseIntegral$fKeyValueSeries $fKeyValue(,)$fFromJSONConst $fToJSONConst$fFromJSONTagged$fToJSONTagged$fFromJSONProxy $fToJSONProxy$fFromJSONVersion$fToJSONVersion$fFromJSONLast $fToJSONLast$fFromJSONFirst $fToJSONFirst$fFromJSONDual $fToJSONDual$fFromJSON(,,,,,,,,,,,,,,)$fToJSON(,,,,,,,,,,,,,,)$fFromJSON(,,,,,,,,,,,,,)$fToJSON(,,,,,,,,,,,,,)$fFromJSON(,,,,,,,,,,,,)$fToJSON(,,,,,,,,,,,,)$fFromJSON(,,,,,,,,,,,)$fToJSON(,,,,,,,,,,,)$fFromJSON(,,,,,,,,,,)$fToJSON(,,,,,,,,,,)$fFromJSON(,,,,,,,,,)$fToJSON(,,,,,,,,,)$fFromJSON(,,,,,,,,)$fToJSON(,,,,,,,,)$fFromJSON(,,,,,,,)$fToJSON(,,,,,,,)$fFromJSON(,,,,,,)$fToJSON(,,,,,,)$fFromJSON(,,,,,)$fToJSON(,,,,,)$fFromJSON(,,,,)$fToJSON(,,,,)$fFromJSON(,,,) $fToJSON(,,,)$fFromJSON(,,) $fToJSON(,,) $fFromJSON(,) $fToJSON(,)$fToJSONNominalDiffTime$fFromJSONUTCTime$fToJSONUTCTime$fFromJSONZonedTime$fToJSONZonedTime$fFromJSONLocalTime$fToJSONLocalTime$fFromJSONTimeOfDay$fToJSONTimeOfDay $fFromJSONDay $fToJSONDay$fFromJSONDotNetTime$fToJSONDotNetTime$fFromJSONValue $fToJSONValue$fFromJSONTree $fToJSONTree$fFromJSONHashMap$fToJSONHashMap$fFromJSONHashMap0$fToJSONHashMap0$fFromJSONHashMap1$fToJSONHashMap1 $fFromJSONMap $fToJSONMap$fFromJSONMap0 $fToJSONMap0$fFromJSONMap1 $fToJSONMap1$fFromJSONIntMap$fToJSONIntMap$fFromJSONIntSet$fToJSONIntSet$fFromJSONHashSet$fToJSONHashSet $fFromJSONSet $fToJSONSet$fFromJSONVector$fToJSONVector$fFromJSONVector0$fToJSONVector0$fFromJSONVector1$fToJSONVector1$fFromJSONVector2$fToJSONVector2 $fFromJSONSeq $fToJSONSeq $fFromJSON[] $fToJSON[]$fFromJSONNonEmpty$fToJSONNonEmpty$fFromJSONText $fToJSONText$fFromJSONText0 $fToJSONText0$fFromJSONWord64$fToJSONWord64$fFromJSONWord32$fToJSONWord32$fFromJSONWord16$fToJSONWord16$fFromJSONWord8 $fToJSONWord8$fFromJSONWord $fToJSONWord$fFromJSONInt64 $fToJSONInt64$fFromJSONInt32 $fToJSONInt32$fFromJSONInt16 $fToJSONInt16$fFromJSONInt8 $fToJSONInt8$fFromJSONNatural$fToJSONNatural$fToJSONInteger $fFromJSONInt $fToJSONInt $fToJSONFixed$fFromJSONRatio $fToJSONRatio$fFromJSONFloat $fToJSONFloat$fFromJSONNumber$fToJSONNumber$fFromJSONDouble$fToJSONDouble$fFromJSONScientific$fToJSONScientific$fFromJSONChar $fToJSONChar $fFromJSON[]0 $fToJSON[]0 $fFromJSON() $fToJSON()$fFromJSONOrdering$fToJSONOrdering$fFromJSONBool $fToJSONBool$fFromJSONEither$fToJSONEither$fFromJSONMaybe $fToJSONMaybe$fFromJSONIdentity$fToJSONIdentity GetConNameTagged2 unTagged2TaggedunTaggedAnd AllNullaryIsRecordisUnaryFromPair parsePair FromProduct parseProduct ProductSize productSize FromRecord parseRecord ConsFromJSON'consParseJSON' ConsFromJSON consParseJSONFromTaggedObject''parseFromTaggedObject''FromTaggedObject'parseFromTaggedObject'FromTaggedObjectparseFromTaggedObject SumFromStringparseSumFromStringParseSumparseSumObjectWithSingleFieldEncobjectWithSingleFieldEncObjectWithSingleFieldObjobjectWithSingleFieldObj EncodeProduct encodeProduct WriteProduct writeProductRecordToEncodingrecordToEncoding RecordToPairs recordToPairsConsToEncoding'consToEncoding'ConsToEncodingconsToEncoding ConsToJSON' consToJSON' ConsToJSON consToJSONTwoElemArrayEnctwoElemArrayEncTwoElemArrayObjtwoElemArrayObj getConNameTaggedObjectEnc'taggedObjectEnc'TaggedObjectEnctaggedObjectEncTaggedObjectPairs'taggedObjectPairs'TaggedObjectPairstaggedObjectPairs SumToEncoding sumToEncoding SumToJSON sumToJSONnonAllNullarySumToJSONnonAllNullarySumToEncoding fieldToPairfieldToEncodinggbuilderparseAllNullarySumparseNonAllNullarySumnotFound$fAndTrueFalseFalse$fAndFalseTrueFalse$fAndFalseFalseFalse$fAndTrueTrueTrue$fAllNullaryU1True$fAllNullaryK1False$fAllNullary:*:False$fAllNullaryM1allNullary$fAllNullary:+:allNullary$fIsRecordU1False$fIsRecordK1True$fIsRecordM1isRecord$fIsRecordM1False$fIsRecord:*:isRecord $fFromPairM1 $fFromPair:+:$fFromProductM1$fFromProduct:*:$fProductSizeM1$fProductSize:*:$fFromRecordM1$fFromRecordM10$fFromRecord:*:$fConsFromJSON'fFalse$fConsFromJSON'fTrue$fConsFromJSONf$fFromTaggedObject''fFalse$fFromTaggedObject''fTrue$fFromTaggedObject'f$fFromTaggedObjectM1$fFromTaggedObject:+:$fSumFromStringM1$fSumFromString:+:$fParseSum:+:False$fParseSum:+:True$fGFromJSON:+:$fGFromJSON:*: $fGFromJSONM1 $fGFromJSONU1 $fGFromJSONK1$fGFromJSONM10$fObjectWithSingleFieldEncM1$fObjectWithSingleFieldEnc:+:$fObjectWithSingleFieldObjM1$fObjectWithSingleFieldObj:+:$fEncodeProducta$fEncodeProduct:*:$fWriteProducta$fWriteProduct:*:$fRecordToEncodingM1$fRecordToEncodingM10$fRecordToEncoding:*:$fRecordToPairsM1$fRecordToPairsM10$fRecordToPairs:*:$fConsToEncoding'fFalse$fConsToEncoding'fTrue$fConsToEncodingf$fConsToJSON'fFalse$fConsToJSON'fTrue $fConsToJSONf$fTwoElemArrayEncM1$fTwoElemArrayEnc:+:$fTwoElemArrayObjM1$fTwoElemArrayObj:+:$fGetConNameM1$fGetConName:+:$fTaggedObjectEnc'fFalse$fTaggedObjectEnc'fTrue$fTaggedObjectEncM1$fTaggedObjectEnc:+:$fTaggedObjectPairs'fFalse$fTaggedObjectPairs'fTrue$fTaggedObjectPairsM1$fTaggedObjectPairs:+:$fSumToEncodingfFalse$fSumToEncodingfTrue$fSumToJSONfFalse$fSumToJSONfTrue$fGToEncoding:+:$fGToEncoding:*:$fGToEncodingM1$fGToEncodingU1$fGToEncodingK1$fGToEncodingM10 $fGToJSON:+: $fGToJSON:*: $fGToJSONM1 $fGToJSONU1 $fGToJSONK1 $fGToJSONM10jstring_jsonEOFjsonEOF'Sobject_object_' objectValuesarray_array_' arrayValuesunescapehexQuad decodeWithdecodeStrictWitheitherDecodeWitheitherDecodeStrictWithword8copycharUtf8Data.Text.Internal.BuilderfromScientificData.ByteString.InternaleitherFormatError consToValue isNullary argsToValueargsToEncoding consFromJSON parseArgswithTypetemplate-haskellLanguage.Haskell.TH.SyntaxNamebuildTypeInstancederiveConstraintstealKindForTypetvbKind hasKindStar varTToName applyTyConisTyVarunSigT conNameExp fieldLabelExp valueConName expandSyn TypeSubst LookupField lookupFieldconStrconTxt conStringEencStr sumToValueisMaybe<^><:><%>parseNullaryMatchesparseUnaryMatches getValFieldCon matchFailedparseTypeMismatchunknownFieldFail noArrayFail noObjectFailfirstElemNoStringFailwrongPairCountFail noStringFail noMatchFail not2ElemArrayconNotFoundFail2ElemArray conNotFoundFailObjectSingleFieldconNotFoundFailTaggedObjectparseTypeMismatch'QJustCxtTypebuildTypeInstanceFromTys tvbToTypeapplyCon expandSynKind expandSynAppmkSubst substType