úÎ?;;      !"#$%&'()*+,-./0123456789: Safe-Infered+Class of JSON escapable text. The solidus (/) is always escaped, as are K all ASCII control characters. Non-ASCII control characters and Unicode 5 printable characters above ASCII are left as is. @Escapes an individual character for embedding in a JSON string. ;<=;<= Safe-Infered)A monomorphic JSON datatype, backed with > , strict ?  and ? @.  A   A Safe-Infered  Interpret a ? as any JSON literal. ESplit out the first parseable JSON literal from the input, returning K the result of the attempt along with the remainder of the input or the 5 whole input if no parseable item was discovered. !Tries to parse any JSON literal. "Parse a JSON object (dictionary). Parse a JSON array. 0Parses a string literal, unescaping as it goes. Parses a numeric literal to a Rational. Parse a JSON Boolean literal. Parse a JSON null literal. Per RFC 4627, section 2  JSON Grammar#, only a limited set of whitespace < characters actually count as insignificant whitespace. 3Parse a JSON string literal and unescape it but don't wrap it in a string : constructor (we might wrap it as a dict key instead).     Safe-InferedGStyle of serialization. Compact is the only one that is implemented at  present. Encode  as a strict ?$. All strings are treated as UTF-8; L ASCII control characters are escaped and UTF-8 multi-char sequences are  simply passed through.  Escape a ?1 representing a JSON string and wrap it in quote  marks.  Safe-InferedBA well-ordered semigroup has a minimal element and an associative M operation. These are used to provide measures for schema. At present, we M allow three measures: whether there is one or more of a schema (measured  with '()'C), whether there is one or more than one of an item (measured with  .) and positive counts of items (measured with B). %KThe type of JSON schemas. We treat the atomic types simply whereas objects & and arrays are treated specially. KObjects are treated as maps of keys to sets of schema types. Say a certain O type of object sometimes has a string at a certain key and sometimes has a O null at that key; we should merge them and say the schema of that key is a  union of string and null. FArrays admit measure in the sense of how many elements there are of a M certain kind. We support three measures at present: any, one or more and % individual counts. We expect the any% measure to prevail practice. Arrays O are also ordered; so one can distinguish an array that interleaves strings = and ints from one that is all strings and then all ints. ,+Determine a schema for one JSON data item. .IDevelop a schema for a list of JSON data, collating schemas according to , the measure, a well-ordered semigroup. /KCollate a list of counted schemas. Alike counted schemas that are adjacent G are replaced by a counted schema with an incremented counter. This ) operation is mutually recursive with 0, in order to merge comaptible ) object definitions before collating. 0GMerge two property sets. This operation is mutually recursive with our  /' and relies on polymorphic recusion in /.  !"#$%&'()*+,-./01CDEF !"#$%&'()*+,-./01%+*)('&,-./#$01!"  !"#$%+*)('&,-./01CDEF Safe-Infered3Provide a formatted G for the displayable. 23456789:HIJKLM 23456789: 23456789:23456789:HIJKLM Safe-Infered  %,.23  %,. 23N      !"#$%&'())**+,- ./0123456789:;<=>?@ABCDEFGHIJKLCMNOPQRFSHTUVWXYZ JSONb-1.0.8Text.JSON.EscapeText.JSONb.SimpleText.JSONb.DecodeText.JSONb.EncodeText.JSONb.SchemaText.JSONb.Schema.Display Text.JSONbEscapeescapeescescapedJSONNullBooleanNumberStringArrayObjectdecodebreakjsonobjectarraystringnumberbooleannull whitespacestring_literals_as_bStyleCompactencode stringifyCounterbottomplusOneManyManyOneElementsPropsSchemaArrObjBoolStrNumschemapropsschemascollatemergematchDisplaybyteslenmust_be_multilinebrokentoo_longdentspacelongest_key_len $fEscape[]$fEscapeByteString$fEscapeByteString0baseGHC.RealRationalbytestring-0.9.2.1Data.ByteString.Internal ByteStringbytestring-trie-0.2.3Data.Trie.InternalTrie $fShowJSONGHC.WordWord $fCounter() $fCounterWord$fCounterOneMany $fOrdPropsData.ByteString.Lazy.Internal $fShowSchema $fDisplay(,) $fDisplayWord$fDisplayOneMany $fDisplay()$fDisplaySchema