Ηu      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstD(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 u& the constructors of a datatype, with allW nullary constructors, will be encoded to just a string with the constructor tag. If v& the encoding will always follow the  . If u record fields with a w6 value will be omitted from the resulting object. If v< 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 xQ 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.ySuccess continuation.zFailure 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 ).*The empty object.+Run a .,Run a .-Run a  with a | result type..Run a  with an }( result type. If the parse fails, the ~' payload will contain an error message./"Annotate an error message with a  &http://goessner.net/articles/JsonPath/JSONPath error location.0 Create a  from a list of name/value Ks. If duplicate keys arise, earlier keys and their associated values win.1!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.102 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.03Default encoding :  {  = id ,   = id ,   = True ,   = False ,   = 4 ,   = False } 4Default   options: defaultTaggedObject =  { & = "tag" , & = "contents" } 5Converts 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"6Better version of 5 . Example where it works better: ]camelTo '_' 'CamelAPICase' == "camel_apicase" camelTo2 '_' 'CamelAPICase' == "camel_api_case"j yz !"#$%&'(){*+,-./0123456; ! "#$%&'(){*+,-./0123456J yz !"#$%&'(){*+,-./0123456 D(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneB7Parse 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 9r. In aeson 0.8 and earlier, it parsed only object or array types, in conformance with the now-obsolete RFC 4627.8Parse a top-level JSON value.This is a strict version of 7 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 :r. In aeson 0.8 and earlier, it parsed only object or array types, in conformance with the now-obsolete RFC 4627.9*Parse any JSON value. You should usually 7h 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.:Strict version of 9 . See also 8.;Parse a quoted JSON string.'Parse a string without a leading quote.[Parse a top-level JSON value followed by optional whitespace and end-of-input. See also: 7.[Parse a top-level JSON value followed by optional whitespace and end-of-input. See also: 8.789:; 789:;789:;D(c) 2012-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone789:;79;8:(c) 2015-2016 Bryan O'SullivanBSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone<<Like TimeOfDay, but using a fixed-width integer for seconds.<=>?@A<=>?@A<=?>@A<=>?@A (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 wF 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> experimentalportableSafe Transform a  into a  while transforming the keys. Transform a  into a  while transforming the keys.#Transform the keys and values of a .Transform the keys of a . O(c) 2011 MailRank, Inc. (c) 2013 Simon Meier <iridcode@gmail.com>BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone BEncode 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.!BB B D(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone6:C,A key-value pair for encoding a JSON object.EIA 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 messageSb 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 SL -- gives a much more informative error message. parseJSON invalid = S "Coord" invalid !Instead of manually writing your E9 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 F. To use the second, simply add a  deriving ( clause to your datatype and declare a E= instance for your datatype without giving a definition for F.<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 R with your preferred : .instance FromJSON Coord where parseJSON = R 3 G%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) = 0 ["x" D x, "y" D y] toEncoding (Coord x y) = pairs ("x" D x <> "y" D y) !Instead of manually writing your G9 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 H. To use the second, simply add a  deriving ( clause to your datatype and declare a G< instance for your datatype without giving definitions for H or I.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 = Q 3 (Why do we provide an implementation for I here? The I 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 I uses HY. 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 I! 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 P and Q with your preferred : -instance ToJSON Coord where toJSON = P 3 toEncoding = Q 3 H=Convert a Haskell value to a JSON-friendly intermediate type.IEncode a Haskell value as JSON.CThe default implementation of this method creates an intermediate  using H. 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 = Q 3 J'Class of generic representation types (") that can be converted from JSON.KThis method (applied to 34) is used as the default generic implementation of F.L'Class of generic representation types (#) that can be converted to a JSON .MThis method (applied to 38) can be used as the default generic implementation of I.N'Class of generic representation types (!) that can be converted to JSON.OThis method (applied to 34) is used as the default generic implementation of H.P?A configurable generic JSON creator. This function applied to 3 is used as the default for H" when the type is an instance of .Q?A configurable generic JSON encoder. This function applied to 3 is used as the default for I" when the type is an instance of .R?A configurable generic JSON decoder. This function applied to 3 is used as the default for F" when the type is an instance of .S@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 = S "Coord" wat CDEFGHIJKLMNOPQRS-The name of the type you are trying to parse.The actual value encountered.CDEFGHIJKLMNOPQRS CDEFFGHHIJKLMNOPQRSD8NoneT-Efficiently serialize a JSON value as a lazy .$This is implemented in terms of the G class's I method.U Encode a  as a JSON array.V8Encode a series of key/value pairs, separated by commas.TUVTUVTUVD(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone $069:;I"Encode something to a JSON string.WwithObject expected f value applies f to the  when value is an Object and fails using S expected otherwise.XwithText expected f value applies f to the  when value is a String and fails using S expected otherwise.YwithArray expected f value applies f to the  when value is an Array and fails using S expected otherwise.ZwithNumber expected f value applies f to the  when value is a . and fails using S expected otherwise.[withScientific expected f value applies f to the  number when value is a . and fails using S expected otherwise.\withBool expected f value applies f to the  when value is a Bool and fails using S expected otherwise.]=Convert a value from JSON, failing if the types do not match.^=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 w 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.aLike `D, but the resulting parser will fail, if the key is present but is .b#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.     WXYZ[\]^_`ab !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"CDEFGHIJKLMNOPQRSWXYZ[\]^_`ab     WXYZ[\]^_`ab !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6(c) 2015-2016 Bryan O'SullivanBSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone "#$%&'(,/1^ "#$&'(%1/^,n(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:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]D(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneK ! )*+-.023456CDEFGHIJKLMNOPQRSUVWXYZ[\]_`abN)*S !EFF]+.-GHHICD2JKNOLMPQRWXYZ[\VU_`ab0 5634D(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 B instead.cd_`BTcdTBcdcd_`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, w 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 7 for details.f3Efficiently deserialize a JSON value from a strict a5. If this fails due to incomplete or invalid input, w 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 7 for details.g1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, w 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 8 for details.h1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, w 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 8 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. efghbijkl<! 0378CDEFGHIJKLMNOPQRTUVWXYZ[\]_`abefghijkl?egikTfhjlEFF !]GHHICDJKNOLMPQR3WXYZ[\VU_`ab078 efghbijklC(c) 2011-2016 Bryan O'Sullivan (c) 2011 MailRank, Inc.BSD3 experimentalportableNone#9;mGenerates both G and ET 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 GS 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.cHelper 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.dHelper 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.eIf constructor is nullary.fEGenerates code to generate the JSON encoding of a single constructor.gEGenerates code to generate the JSON encoding of a single constructor.q Generates a ES 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.hHelper 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.iBGenerates code to parse the JSON encoding of a single constructor.jCGenerates code to parse the JSON encoding of an n-ary constructor.k"Boilerplate for top level splices. The given l 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.mMInfer the context and instance head needed for a FromJSON or ToJSON instance.nAttempt to derive a constraint on a Type. If it's of kind *, we give it Just a ToJSON/FromJSON constraint. Otherwise, return Nothing.oKIf a VarT is missing an explicit kind signature, steal it from a TyVarBndr.p.Extracts the kind from a type variable binder.q"Returns True if a Type has kind *.rdExtract the Name from a type variable. If the argument Type is not a type variable, throw an error.s%Extracts the name from a constructor.t7Fully applies a type constructor to its type variables.uIs the given type a variable?v6Peel off a kind signature from a Type (if it has one).w<Makes a string literal expression from a constructor's name.x>Creates a string literal expression from a record field label.yThe name of the outermost  constructor.zBExpands all type synonyms in a type. Written by Dan Rosn in the  genifunctors package (licensed under BSD3).G{|}mEncoding options.'Name of the type for which to generate G and E instances.nEncoding options.)Name of the type for which to generate a G instance declaration.oEncoding options.Name of the type to encode.pEncoding options.Name of the type to encode.cEncoding options.8Constructors for which to generate JSON generating code.~dEncoding options.8Constructors for which to generate JSON generating code.efgqEncoding options.)Name of the type for which to generate a E instance declaration.rEncoding options.Name of the encoded type.h2Name of the type to which the constructors belong.Encoding options5Constructors for which to generate JSON parsing code.i2Name of the type to which the constructor belongs.Encoding options.4Constructor for which to generate JSON parsing code.0Left (valFieldName, objName) or Right valNamej2Name of the type to which the constructor belongs.structor name.structor arity.kVFunction that generates the actual code. Will be applied to the datatype/data family lC, type variable binders and constructors extracted from the given l . If the lo is from a data family instance constructor, it will also have its instantiated types; otherwise, it will be w.Resulting value in the  uasi monad.m(The type constructor or data family nameThe typeclass name (G or E)=The type variables from the data type/data family declaration; the types used to instantiate a data family instance, or w 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 (G or E)*The types to instantiate the instance with+True if it's a data family, False otherwisenopqrstuvwxEncoding optionsyzst 34mnopqr 34mnqoprF{|}mnopc~defgqrhijkmnopqrstuvwxyzst654 !!"#$%&'()*+,('-./0123456789:;<=>?@ABCDE F G H I JKLMNOP Q R S T U V W X Y Z [ \ ] ^ _ ` a bcdefghijklmnopqrstuvwxyz{|}~0&$-         ?        *+ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?yzyzyzyz%aeson-0.11.1.2-2dGvSS6SjcIEbaepqtJ02fData.Aeson.TypesData.Aeson.InternalData.Aeson.ParserData.Aeson.Internal.TimeData.Aeson.Encode Data.Aeson Data.Aeson.THData.Aeson.Types.InternalData.Aeson.Parser.InternalData.Aeson.Parser.TimeData.Aeson.FunctionsData.Aeson.Encode.BuilderData.Aeson.Types.ClassData.Aeson.Encode.FunctionsData.Aeson.Types.InstancesData.Aeson.Types.GenericL ByteString SumEncoding TaggedObjectObjectWithSingleField TwoElemArray tagFieldNamecontentsFieldNameOptionsfieldLabelModifierconstructorTagModifierallNullaryToStringTagomitNothingFields sumEncodingunwrapUnaryRecordsPair DotNetTimefromDotNetTimeSeriesEncoding fromEncodingValueObjectArrayStringNumberBoolNullParserResultErrorSuccessIResultIErrorISuccessJSONPathJSONPathElementKeyIndex emptyArray emptyObjectparseiparse parseMaybe parseEither formatErrorobject modifyFailuredefaultOptionsdefaultTaggedObjectcamelTocamelTo2jsonjson'valuevalue'jstring TimeOfDay64TODtoPicofromPicodiffTimeOfDay64 toTimeOfDay64encodeToBuilderKeyValue.=FromJSON parseJSONToJSONtoJSON toEncoding GFromJSON gParseJSON GToEncoding gToEncodingGToJSONgToJSON genericToJSONgenericToEncodinggenericParseJSON typeMismatchencodefoldablepairs withObjectwithText withArray withNumberwithScientificwithBoolfromJSON ifromJSON.:.:?.:!.!=encodeToTextBuilder fromValuedecode decodeStrictdecode' decodeStrict' eitherDecodeeitherDecodeStrict eitherDecode'eitherDecodeStrict' deriveJSON deriveToJSONmkToJSON mkToEncodingderiveFromJSON mkParseJSON$fLookupFieldMaybe$fLookupFieldaghc-prim GHC.TypesTrueFalsebaseGHC.BaseNothing time-1.6.0.1Data.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$fNFDataJSONPathElementjstring_jsonEOFjsonEOF'Sobject_object_' objectValuesarray_array_' arrayValuesunescapehexQuad decodeWithdecodeStrictWitheitherDecodeWitheitherDecodeStrictWithword8copycharUtf8runday twoDigits timeOfDaysecondstimeZone localTimeutcTime zonedTimeTutc mapHashKeyValcontainers-0.5.7.1 Data.Map.BaseMap2unordered-containers-0.2.7.1-5INwdG7O5Jdakf1CqKoOBData.HashMap.BaseHashMap hashMapKey mapKeyValmapKeybytestring-0.10.8.1 Data.ByteString.Builder.InternalBuildernull_boolarraytextunquotedquotestringnumber escapeAsciic2w emptyArray_ emptyArray__ emptyObject_ emptyObject__ascii2ascii4ascii5ascii6ascii8 timeOfDay64dayTimedigitfail#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalText Data.Functor<$><*> GHC.GenericsGenericRepData.ByteString.Lazy.Internal Data.FoldableFoldablebuilderlistbracketsData.ByteString.Builderchar7stringEncoding*attoparsec-0.13.1.0-K5Fyc3MOMYs22DiprZQxLMData.Attoparsec.Number)scientific-0.3.4.9-JxsEP2U97KeHjUTI8Fv24jData.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 $fGToJSONM10Data.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