n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmD(c) 2011-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportable Safe-Inferredn Transform a o into a p while transforming the keys.q Transform a o into a p while transforming the keys.r#Transform the keys and values of a p.sTransform the keys of a p.nqrsnqrsnqrs(c) 2015 Bryan O'SullivanApache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone<Like TimeOfDay, but using a fixed-width integer for seconds. D(c) 2011-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone+BHM+7Specifies how to encode constructors of a sum datatype.|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.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. 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. 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 t& the constructors of a datatype, with allW nullary constructors, will be encoded to just a string with the constructor tag. If u& the encoding will always follow the .If t record fields with a v6 value will be omitted from the resulting object. If u< 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 wQ 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.xSuccess continuation.yFailure 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.z=JSON path element of an index into an array, "array[index]".{9JSON path element of a key into an object, "object.key".-The empty array.|Determines if the  is an empty ". Note that:  isEmptyArray -..The empty object./Run a $.0Run a $.1Run a $ with a } result type.2Run a $ with an ~( result type. If the parse fails, the ' payload will contain an error message.3"Annotate an error message with a  &http://goessner.net/articles/JsonPath/JSONPath error location.4 Create a  from a list of name/value Ks. If duplicate keys arise, earlier keys and their associated values win.!Add JSON Path context to a parserWhen parsing complex structure it helps to annotate (sub)parsers with context so that if error occurs you can find it's location. iwithObject "Person" $ \o -> Person <$> o .: "name" <?> Key "name" <*> o .: "age" <?> Key "age"9(except for standard methods like '(.:)' already do that)LAfter that in case of error you will get a JSON Path location of that error. Since 0.95 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.06Default encoding  :   {  = id ,  = id ,  = True ,  = False ,  = 7 } 7Default    options: defaultTaggedObject =   {  & = "tag" ,  & = "contents" } 8Converts 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"9Better version of 8 . Example where it works better: ]camelTo '_' 'CamelAPICase' == "camel_apicase" camelTo2 '_' 'CamelAPICase' == "camel_api_case"b  !"#$xy%&'()*+,z{-|./0123456789;  !"#$%&'()*+,z{-|./0123456789B   ! "#$xy%'&(*)+,{z-|./0123456789 O(c) 2011 MailRank, Inc. (c) 2013 Simon Meier <iridcode@gmail.com>Apache%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.Encode a JSON string.Encode a JSON number. ::: D(c) 2011-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone13;,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 messageJb 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 JL -- gives a much more informative error message. parseJSON invalid = J "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 >. To use the second, simply add a  deriving ( clause to your datatype and declare a == instance for your datatype without giving a definition for >.<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 I with your preferred  : .instance FromJSON Coord where parseJSON = I 6 ?%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) = 4 ["x" < x, "y" < y] toEncoding (Coord x y) = pairs ("x" < x <> "y" < y) !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 @. To use the second, simply add a  deriving ( clause to your datatype and declare a ?< instance for your datatype without giving definitions for @ or A.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 = H 6 (Why do we provide an implementation for A here? The A 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 A uses @Y. 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 A! 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 G and H with your preferred  : -instance ToJSON Coord where toJSON = G 6 toEncoding = H 6 @=Convert a Haskell value to a JSON-friendly intermediate type.AEncode a Haskell value as JSON.CThe default implementation of this method creates an intermediate  using @. 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 = H 6 B'Class of generic representation types (") that can be converted from JSON.CThis method (applied to 64) is used as the default generic implementation of >.D'Class of generic representation types (!) that can be converted to JSON.EThis method (applied to 64) is used as the default generic implementation of @.FThis method (applied to 68) can be used as the default generic implementation of A.G?A configurable generic JSON creator. This function applied to 6 is used as the default for @" when the type is an instance of .H?A configurable generic JSON encoder. This function applied to 6 is used as the default for A" when the type is an instance of .I?A configurable generic JSON decoder. This function applied to 6 is used as the default for >" when the type is an instance of .J@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 = J "Coord" wat ;<=>?@ABCDEFGHIJ-The name of the type you are trying to parse.The actual value encountered.;<=>?@ABCDEFGHIJ ;<=>?@ABCDEFGHIJ< NoneK-Efficiently serialize a JSON value as a lazy .$This is implemented in terms of the ? class's A method.L Encode a  as a JSON array.M8Encode a series of key/value pairs, separated by commas.KLMKLMKLM (c) 2015 Bryan O'SullivanApache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneM ,Run an attoparsec parser as an aeson parser.Parse a date of the form  YYYY-MM-DD.4Parse a two-digit integer (e.g. day of month, hour).Parse a time of the form HH:MM:SS[.SSS].GParse a count of seconds, with the integer part being two digits long.Parse a time zone, and return vF if the offset from UTC is zero. (This makes some speedups possible.)#Parse a date and time, of the form YYYY-MM-DD HH:MM:SS$. The space may be replaced with a TD. The number of seconds may be followed by a fractional component. 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:SS Z!The first space may instead be a T*, and the second space is optional. The Z represents UTC. The Z6 may be replaced with a time zone offset of the form +0000 or -08:00-, where the first two digits are hours, the :D is optional and the second two digits (also optional) are minutes.  D(c) 2011-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone  +1234B"Encode something to a JSON string.NwithObject expected f value applies f to the # when value is an Object and fails using J expected otherwise.OwithText expected f value applies f to the  when value is a String and fails using J expected otherwise.PwithArray expected f value applies f to the " when value is an Array and fails using J expected otherwise.QwithNumber expected f value applies f to the  when value is a . and fails using J expected otherwise.RwithScientific expected f value applies f to the  number when value is a . and fails using J expected otherwise.SwithBool expected f value applies f to the  when value is a Bool and fails using J expected otherwise.T=Convert a value from JSON, failing if the types do not match.U=Convert a value from JSON, failing if the types do not match.V7Retrieve 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 mustg be present in an object for it to be valid. If the key and value are optional, use '(.:?)' instead.W7Retrieve the value associated with the given key of an #. The result is v 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.X#Helper for use in combination with W< 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 W1 "opt_field_with_dfl" .!= "default_val" v2 <- o V "mandatory_field" v3 <- o W "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.NOPQRSTUVWX      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ;<=>?@ABCDEFGHIJNOPQRSTUVWXNOPQRSTUVWX      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) 2015 Bryan O'SullivanApache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone()*+,03U(*),+3U0n(c) 2012-2015 Bryan O'Sullivan (c) 2011, 2012 Bas Van Dijk (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone 123468<=FJKM2Get 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?gD(c) 2011-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneI  !"#$%&'-./12456789;<=>?@ABCDEFGHIJLMNOPQRSTVWXJ! "-#.J$%'&=>T/21?@A;<5BCDEFGHINOPQRSMLVWX4   8967D(c) 2011-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone;YParse 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.ZParse a top-level JSON value.This is a strict version of Y 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.[*Parse any JSON value. You should usually Yh 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 [ . See also Z.]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: Y. [Parse a top-level JSON value followed by optional whitespace and end-of-input. See also: Z.  YZ[\]    YZ[\]    YZ[\]   D(c) 2012-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNoneYZ[\]Y[]Z\D(c) 2012-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone^Encode 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.^_:K^_K:^_^_D(c) 2011-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache%Bryan O'Sullivan <bos@serpentine.com> experimentalportableNone`1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, v 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 Y for details.a3Efficiently deserialize a JSON value from a strict  5. If this fails due to incomplete or invalid input, v 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 Y for details.b1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, v 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 Z for details.c1Efficiently deserialize a JSON value from a lazy 5. If this fails due to incomplete or invalid input, v 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 Z for details.dLike `2 but returns an error message when decoding fails.eLike a2 but returns an error message when decoding fails.fLike b2 but returns an error message when decoding fails.gLike c2 but returns an error message when decoding fails. `abc!defg: !"#%&'46;<=>?@ABCDEFGHIKLMNOPQRSTVWXYZ`abcdefg;`bdfKaceg! "#=>%'&T?@A;<BCDEFGHI6NOPQRSMLVWX4YZ `abc!defgC(c) 2011-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.Apache experimentalportableNone24hGenerates both ? 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 i and l.i Generates a ?S instance declaration for the given data type or data family instance constructor.jjGenerates a lambda expression which encodes the given data type or data family instance constructor as a .kvGenerates a lambda expression which encodes the given data type or data family instance constructor as a JSON string."Helper function used by both i and j . Generates code to generate a K of a number of constructors. All constructors must be from the same type.#Helper function used by both i and kr. Generates code to write out a value for a number of constructors. All constructors must be from the same type.$If constructor is nullary.%EGenerates code to generate the JSON encoding of a single constructor.&EGenerates code to generate the JSON encoding of a single constructor.l Generates a =S instance declaration for the given data type or data family instance constructor.myGenerates a lambda expression which parses the JSON encoding of the given data type or data family instance constructor.'Helper function used by both l and mw. Generates code to parse the JSON encoding of a number of constructors. All constructors must be from the same type.(BGenerates code to parse the JSON encoding of a single constructor.)CGenerates code to parse the JSON encoding of an n-ary constructor.*"Boilerplate for top level splices. The given + 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.,MInfer the context and instance head needed for a FromJSON or ToJSON instance.-.Extracts the kind from a type variable binder..%Extracts the name from a constructor./.Extracts the name from a type variable binder.0NReplace the Name of a TyVarBndr with one from a Type (if the Type has a Name).17Fully applies a type constructor to its type variables.2Is the given type a variable?36Peel off a kind signature from a Type (if it has one).4<Makes a string literal expression from a constructor's name.5>Creates a string literal expression from a record field label.6The name of the outermost  constructor.?78hEncoding options.'Name of the type for which to generate ? and = instances.iEncoding options.)Name of the type for which to generate a ? instance declaration.jEncoding options.Name of the type to encode.kEncoding options.Name of the type to encode."Encoding options.8Constructors for which to generate JSON generating code.9:;#Encoding options.8Constructors for which to generate JSON generating code.<$=%>?@ABCD&lEncoding options.)Name of the type for which to generate a = instance declaration.mEncoding options.Name of the encoded type.'2Name of the type to which the constructors belong.Encoding options5Constructors for which to generate JSON parsing code.EFGH(2Name of the type to which the constructor belongs.Encoding options.4Constructor for which to generate JSON parsing code.0Left (valFieldName, objName) or Right valName)2Name of the type to which the constructor belongs.Istructor name.Istructor arity.JKLMNOPQRSTUVW*VFunction that generates the actual code. Will be applied to the datatype/data family +C, type variable binders and constructors extracted from the given + . If the +o is from a data family instance constructor, it will also have its instantiated types; otherwise, it will be v.Resulting value in the X uasi monad.,(The type constructor or data family nameThe typeclass name (? or =)=The type variables from the data type/data family declarationY; the types used to instantiate a data family instance, or v if it's a plain data typeThe resulting Z and [9 to use in a class instance Plain data type/newtype case\-]./012345Encoding options6^_` 67hijklm   67hiljkm>78hijk"9:;#<$=%>?@ABCD&lm'EFGH()JKLMNOPQRSTUVW*,\-]./0123456^_`?@Aa         ! " # $ % & ' ' ( ) * + , - . / 0 1 2 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{|}~ 5     ,  * 3    C    /.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLCMNO56PQRSTUVWXYZ[\]^56_`56a56bcdefghaeson-0.10.0.0Data.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 TwoElemArrayObjectWithSingleField TaggedObject tagFieldNamecontentsFieldNameOptionsfieldLabelModifierconstructorTagModifierallNullaryToStringTagomitNothingFields sumEncodingunwrapUnaryRecordsPair DotNetTimefromDotNetTimeSeriesEncoding fromEncodingValueNullBoolNumberStringArrayObjectParserResultSuccessErrorIResultISuccessIErrorJSONPathJSONPathElement emptyArray emptyObjectparseiparse parseMaybe parseEither formatErrorobject modifyFailuredefaultOptionsdefaultTaggedObjectcamelTocamelTo2encodeToBuilderKeyValue.=FromJSON parseJSONToJSONtoJSON toEncoding GFromJSON gParseJSONGToJSONgToJSON gToEncoding genericToJSONgenericToEncodinggenericParseJSON typeMismatchencodefoldablepairs withObjectwithText withArray withNumberwithScientificwithBoolfromJSON ifromJSON.:.:?.!=jsonjson'valuevalue'jstringencodeToTextBuilder fromValuedecode decodeStrictdecode' decodeStrict' eitherDecodeeitherDecodeStrict eitherDecode'eitherDecodeStrict' deriveJSON deriveToJSONmkToJSON mkToEncodingderiveFromJSON mkParseJSON mapHashKeyValcontainers-0.5.5.1 Data.Map.BaseMapunordered-containers-0.2.5.1Data.HashMap.BaseHashMap hashMapKey mapKeyValmapKeyghc-prim GHC.TypesTrueFalsebase Data.MaybeNothing time-1.4.2Data.Time.Clock.UTCUTCTimeFailureIndexKey isEmptyArrayMaybe Data.EitherEitherLeftEmpty runParserapP hashValue $fShowOptions$fHashableValue$fIsStringValue $fNFDataValue$fMonoidSeries $fOrdEncoding $fEqEncoding$fShowEncoding$fMonoidParser$fMonadPlusParser$fAlternativeParser$fApplicativeParser$fFunctorParser $fMonadParser$fTraversableResult$fTraversableIResult$fFoldableResult$fFoldableIResult$fMonoidResult$fMonoidIResult$fAlternativeResult$fAlternativeIResult$fMonadPlusResult$fMonadPlusIResult$fApplicativeResult$fApplicativeIResult $fMonadResult$fMonadIResult$fFunctorResult$fFunctorIResult$fNFDataResult$fNFDataIResult$fNFDataJSONPathElementbytestring-0.10.4.0 Data.ByteString.Builder.InternalBuildernull_boolarraytextunquotedstringnumberT escapeAsciic2w emptyArray_ emptyArray__ emptyObject_ emptyObject__ascii2ascii4ascii5ascii6ascii8day timeOfDay timeOfDay64timeZonedayTimeutcTime localTime zonedTime twoDigitsdigitGHC.Basefail text-1.2.1.3Data.Text.InternalText GHC.GenericsGenericRepData.ByteString.Lazy.Internal Data.FoldableFoldablebuilderlistbracketsData.ByteString.Builderchar7runsecondsutcstringEncodingattoparsec-0.13.0.1Data.Attoparsec.Numberscientific-0.3.3.8Data.Scientific Scientific$fFromJSONNominalDiffTime$fFromJSONInteger$fFromJSONFixedparseIndexedJSONleftright encodeVector vectorToJSONvectorParseJSON encodeSet encodeMap encodeWithKeyencodeKV dotNetTime formatMillisparseJSONElemAtIndextuple>*<realFloatToJSONrealFloatToEncodingscientificToNumberparseRealFloat parseIntegral$fKeyValueSeries $fKeyValue(,)$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 $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 $fToJSONt $fFromJSON[] $fToJSON[]$fFromJSONText $fToJSONText$fFromJSONText0 $fToJSONText0$fFromJSONWord64$fToJSONWord64$fFromJSONWord32$fToJSONWord32$fFromJSONWord16$fToJSONWord16$fFromJSONWord8 $fToJSONWord8$fFromJSONWord $fToJSONWord$fFromJSONInt64 $fToJSONInt64$fFromJSONInt32 $fToJSONInt32$fFromJSONInt16 $fToJSONInt16$fFromJSONInt8 $fToJSONInt8$fToJSONInteger $fFromJSONInt $fToJSONInt $fToJSONFixed$fFromJSONRatio $fToJSONRatio$fFromJSONFloat $fToJSONFloat$fFromJSONNumber$fToJSONNumber$fFromJSONDouble$fToJSONDouble$fFromJSONScientific$fToJSONScientific$fFromJSONChar $fToJSONChar $fFromJSON[]0 $fToJSON[]0 $fFromJSON() $fToJSON()$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 SumFromStringparseSumFromStringParseSumparseSumobjectWithSingleFieldObjobjectWithSingleFieldEnc WriteProduct writeProduct encodeProductRecordTo recordToPairsrecordToEncoding ConsToJSON' consToJSON'consToEncoding' ConsToJSON consToJSONconsToEncodingtwoElemArrayObjtwoElemArrayEnc getConName TaggedObject'taggedObjectPairs'taggedObjectEnc'taggedObjectPairstaggedObjectEnc SumToJSON sumToJSON sumToEncodingnonAllNullarySumToJSONnonAllNullarySumToEncoding 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$fObjectWithSingleFieldM1$fObjectWithSingleField:+:$fWriteProducta$fWriteProduct:*: $fRecordToM1 $fRecordToM10 $fRecordTo:*:$fConsToJSON'fFalse$fConsToJSON'fTrue $fConsToJSONf$fTwoElemArrayM1$fTwoElemArray:+:$fGetConNameM1$fGetConName:+:$fTaggedObject'fFalse$fTaggedObject'fTrue$fTaggedObjectM1$fTaggedObject:+:$fSumToJSONfFalse$fSumToJSONfTrue $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.SyntaxNamebuildTypeInstancetvbKindtvbNamereplaceTyVarName applyTyConisTyVarunSigT conNameExp fieldLabelExp valueConName LookupField lookupFieldconStrconTxt conStringEencStr sumToValueisMaybe<^><:><%>parseNullaryMatchesparseUnaryMatches getValFieldCon matchFailedparseTypeMismatchunknownFieldFail noArrayFail noObjectFailfirstElemNoStringFailwrongPairCountFail noStringFail noMatchFail not2ElemArrayconNotFoundFail2ElemArray conNotFoundFailObjectSingleFieldconNotFoundFailTaggedObjectparseTypeMismatch'QJustCxtTypedistinctKindVars tvbToTypeapplyCon$fLookupFieldMaybe$fLookupFielda