s      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrD(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableSafes Transform a t into a u while transforming the keys.v Transform a t into a u while transforming the keys.w#Transform the keys and values of a u.xTransform the keys of a u.svwxsvwxsvwx(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+CIN+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 y& the constructors of a datatype, with allW nullary constructors, will be encoded to just a string with the constructor tag. If z& the encoding will always follow the .If y record fields with a {6 value will be omitted from the resulting object. If z< 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.EA series of values that, when encoded, should be separated by commas.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]"./The empty array.Determines if the  is an empty ". Note that:  isEmptyArray /.0The empty object.1Run a $.2Run a $.3Run a $ with a  result type.4Run a $ with an ( result type. If the parse fails, the ' payload will contain an error message.5"Annotate an error message with a  &http://goessner.net/articles/JsonPath/JSONPath error location.6 Create a  from a list of name/value Ks. If duplicate keys arise, earlier keys and their associated values win.7!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.108 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.09Default 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"j  !"#$}~%&'()*+,-./0123456789:;<;  !"#$%&'()*+,-./0123456789:;<J    !"#$}~%&'()*+,-./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> experimentalportableNone14>,A key-value pair for encoding a JSON object.@IA 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 messageNb 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 NL -- gives a much more informative error message. parseJSON invalid = N "Coord" invalid !Instead of manually writing your @9 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 A. To use the second, simply add a  deriving ( clause to your datatype and declare a @= instance for your datatype without giving a definition for A.<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 M with your preferred  : .instance FromJSON Coord where parseJSON = M 9 B%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) = 6 ["x" ? x, "y" ? y] toEncoding (Coord x y) = pairs ("x" ? x <> "y" ? y) !Instead of manually writing your B9 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 C. To use the second, simply add a  deriving ( clause to your datatype and declare a B< instance for your datatype without giving definitions for C or D.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 = L 9 (Why do we provide an implementation for D here? The D 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 D uses CY. 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 D! 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 K and L with your preferred  : -instance ToJSON Coord where toJSON = K 9 toEncoding = L 9 C=Convert a Haskell value to a JSON-friendly intermediate type.DEncode a Haskell value as JSON.CThe default implementation of this method creates an intermediate  using C. 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 = L 9 E'Class of generic representation types (") that can be converted from JSON.FThis method (applied to 94) is used as the default generic implementation of A.G'Class of generic representation types (#) that can be converted to a JSON .HThis method (applied to 98) can be used as the default generic implementation of D.I'Class of generic representation types (!) that can be converted to JSON.JThis method (applied to 94) is used as the default generic implementation of C.K?A configurable generic JSON creator. This function applied to 9 is used as the default for C" when the type is an instance of .L?A configurable generic JSON encoder. This function applied to 9 is used as the default for D" when the type is an instance of .M?A configurable generic JSON decoder. This function applied to 9 is used as the default for A" when the type is an instance of .N@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 = N "Coord" wat >?@ABCDEFGHIJKLMN-The name of the type you are trying to parse.The actual value encountered.>?@ABCDEFGHIJKLMN >?@ABCDEFGHIJKLMN? NoneO-Efficiently serialize a JSON value as a lazy .$This is implemented in terms of the B class's D method.P Encode a  as a JSON array.Q8Encode a series of key/value pairs, separated by commas.OPQOPQOPQ (c) 2015-2016 Bryan O'SullivanBSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneN ,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  +1345C"Encode something to a JSON string.RwithObject expected f value applies f to the # when value is an Object and fails using N expected otherwise.SwithText expected f value applies f to the  when value is a String and fails using N expected otherwise.TwithArray expected f value applies f to the " when value is an Array and fails using N expected otherwise.UwithNumber expected f value applies f to the  when value is a . and fails using N expected otherwise.VwithScientific expected f value applies f to the  number when value is a . and fails using N expected otherwise.WwithBool expected f value applies f to the  when value is a Bool and fails using N expected otherwise.X=Convert a value from JSON, failing if the types do not match.Y=Convert a value from JSON, failing if the types do not match.Z7Retrieve 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 Z 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 Z instead.Example usage:  v1 <- o [1 "opt_field_with_dfl" .!= "default_val" v2 <- o Z "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.RSTUVWXYZ[\]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~">?@ABCDEFGHIJKLMNRSTUVWXYZ[\]RSTUVWXYZ[\]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) 2015-2016 Bryan O'SullivanBSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone ()*+,-.257Y ()*,-.+75Y2n(c) 2012-2016 Bryan O'Sullivan (c) 2011, 2012 Bas Van Dijk (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone (134579>KLN2Get the name of the constructor of a sum datatype..A dummy label (Nothing to use proper label).A dummy label (Nothing to use proper label)indexlengthAre we a record with one field?Are we a record with one field?      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGD(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneK  !"#$%&'/0134689:;<>?@ABCDEFGHIJKLMNPQRSTUVWXZ[\]L !"/#0N$%&'@AX143BCD>?8EFIJGHKLMRSTUVWQPZ[\]6   ;<9:D(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone<^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 `r. 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 ar. In aeson 0.8 and earlier, it parsed only object or array types, in conformance with the now-obsolete RFC 4627.`*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.aStrict version of ` . See also _.bParse a quoted JSON string.H'Parse a string without a leading quote.I[Parse a top-level JSON value followed by optional whitespace and end-of-input. See also: ^.J[Parse a top-level JSON value followed by optional whitespace and end-of-input. See also: _.KL^_MNOPQR`abHSTUVWXIJYZ[ ^_`abUVWXIJKL^_MNOPQR`abHSTUVWXIJYZ[D(c) 2012-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone^_`ab^`b_aD(c) 2012-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNonecEncode 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.cd]^=OcdO=cdcd]^D(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNonee1Efficiently 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.f3Efficiently deserialize a JSON value from a strict _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.g1Efficiently 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.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.iLike e2 but returns an error message when decoding fails.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. efgh`ijkl< !"#%&'69>?@ABCDEFGHIJKLMOPQRSTUVWXZ[\]^_efghijkl=egikOfhjl !"#@A%&'XBCD>?EFIJGHKLM9RSTUVWQPZ[\]6^_ efgh`ijklC(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3 experimentalportableNone35mGenerates both B and @T instance declarations for the given data type or data family instance constructor.EThis is a convienience function which is equivalent to calling both n and q.n Generates a BS instance declaration for the given data type or data family instance constructor.ojGenerates a lambda expression which encodes the given data type or data family instance constructor as a .pvGenerates a lambda expression which encodes the given data type or data family instance constructor as a JSON string.aHelper function used by both n and o . Generates code to generate a K of a number of constructors. All constructors must be from the same type.bHelper function used by both n and pr. Generates code to write out a value for a number of constructors. All constructors must be from the same type.cIf constructor is nullary.dEGenerates code to generate the JSON encoding of a single constructor.eEGenerates code to generate the JSON encoding of a single constructor.q Generates a @S instance declaration for the given data type or data family instance constructor.ryGenerates a lambda expression which parses the JSON encoding of the given data type or data family instance constructor.fHelper function used by both q and rw. Generates code to parse the JSON encoding of a number of constructors. All constructors must be from the same type.gBGenerates code to parse the JSON encoding of a single constructor.hCGenerates code to parse the JSON encoding of an n-ary constructor.i"Boilerplate for top level splices. The given j 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.kMInfer the context and instance head needed for a FromJSON or ToJSON instance.lAttempt to derive a constraint on a Type. If it's of kind *, we give it Just a ToJSON/FromJSON constraint. Otherwise, return Nothing.mKIf a VarT is missing an explicit kind signature, steal it from a TyVarBndr.n.Extracts the kind from a type variable binder.o"Returns True if a Type has kind *.pdExtract the Name from a type variable. If the argument Type is not a type variable, throw an error.q%Extracts the name from a constructor.r7Fully applies a type constructor to its type variables.sIs the given type a variable?t6Peel off a kind signature from a Type (if it has one).u<Makes a string literal expression from a constructor's name.v>Creates a string literal expression from a record field label.wThe name of the outermost  constructor.xBExpands all type synonyms in a type. Written by Dan Rosn in the  genifunctors package (licensed under BSD3).Gyz{mEncoding options.'Name of the type for which to generate B and @ instances.nEncoding options.)Name of the type for which to generate a B instance declaration.oEncoding options.Name of the type to encode.pEncoding options.Name of the type to encode.aEncoding options.8Constructors for which to generate JSON generating code.|}~bEncoding options.8Constructors for which to generate JSON generating code.cdeqEncoding options.)Name of the type for which to generate a @ instance declaration.rEncoding options.Name of the encoded type.f2Name of the type to which the constructors belong.Encoding options5Constructors for which to generate JSON parsing code.g2Name of the type to which the constructor belongs.Encoding options.4Constructor for which to generate JSON parsing code.0Left (valFieldName, objName) or Right valNameh2Name of the type to which the constructor belongs.structor name.structor arity.iVFunction that generates the actual code. Will be applied to the datatype/data family jC, type variable binders and constructors extracted from the given j . If the jo is from a data family instance constructor, it will also have its instantiated types; otherwise, it will be {.Resulting value in the  uasi monad.k(The type constructor or data family nameThe typeclass name (B or @)=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 (B or @)*The types to instantiate the instance with+True if it's a data family, False otherwiselmnopqrstuvEncoding optionswx 9:mnopqr   9:mnqoprFyz{mnopa|}~bcdeqrfghiklmnopqrstuvwx         ! " # $ % & ' ' ( ) * + , - . / 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    E    01      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ewxwxwxwxaeson_Fkm5HTDq9sq2VG6C07CmPVData.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 TaggedObject tagFieldNamecontentsFieldNameObjectWithSingleField TwoElemArrayOptionsfieldLabelModifierconstructorTagModifierallNullaryToStringTagomitNothingFields sumEncodingunwrapUnaryRecordsPair DotNetTimefromDotNetTimeSeriesEncoding fromEncodingValueObjectArrayStringNumberBoolNullParserResultErrorSuccessIResultIErrorISuccessJSONPathJSONPathElementKeyIndex 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 mapHashKeyValconta_2C3ZI8RgPO2LBMidXKTvIU Data.Map.BaseMapunord_2BLx4faR35mFWLJj5xiBgmData.HashMap.BaseHashMap hashMapKey mapKeyValmapKeyghc-prim GHC.TypesTrueFalsebaseGHC.BaseNothingtime_FTheb6LSxyX1UABIbBXRfnData.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$fNFDataJSONPathElementbytes_6VWy06pWzJq9evDvK2d4w6 Data.ByteString.Builder.InternalBuildernull_boolarraytextunquotedquotestringnumberT escapeAsciic2w emptyArray_ emptyArray__ emptyObject_ emptyObject__ascii2ascii4ascii5ascii6ascii8day timeOfDay timeOfDay64timeZonedayTimeutcTime localTime zonedTime twoDigitsdigitfailtext_HmqVQnZSpjaC156ABqPhneData.Text.InternalText Data.Functor<$><*> GHC.GenericsGenericRepData.ByteString.Lazy.Internal Data.FoldableFoldablebuilderlistbracketsData.ByteString.Builderchar7runsecondsutcstringEncodingattop_C6pUTDzrecbIO4LDYHwJUGData.Attoparsec.Numberscien_5s26qRhE5w04kI4pP1RtwmData.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$fLookupFieldMaybe$fLookupFielda