úÎ!‚>      !"#$%&'()*+,-./0123456789:;<=None2Xâÿ8> arith-encode5A simple binary tree structure, for use with exclude. arith-encode_Type for an encoding. The structure of this type is deliberately hidden from users. Use the  functions to construct 's, and the seven functions to use them.? arith-encode Encode a ty as a positive integer.@ arith-encode!Decode a positive integer into a ty.A arith-encodeThe size of an encoding, or B if it is infinite.C arith-encodeAIndicate whether or not a value is in the domain of the encoding. arith-encode>An exception to be thrown if an illegal argument is given to , . arith-encode5Create an encoding from all the necessary components. arith-encodeGCreate an infinite-sized encoding. This variant does not need a size. arith-encode Encode a ty as a positive D (ie. a natural number). If the given ty is not in the domain of the  (meaning,  returns E!), the underlying implementation may throw . However, this is not strictly& required; therefore, do not rely on  being thrown. arith-encode Decode a ty from a positive D (ie. a natural number). If the given D* is out of bounds (ie. it is bigger than !), the underlying implementation may throw . However, this not strictly& required; therefore, do not rely on  being thrown. arith-encodeGet the size of an , or B if it is infinite. arith-encodeAIndicate whether or not a value is in the domain of the encoding.  arith-encode,The identity encoding. Maps every positive D to itself.xNote: only positive integers are in the domain of this encoding. For all an encoding whose domain is all integers, use  .  arith-encode2A singleton encoding. Maps a singular value to 0.  arith-encodeAn encoding of all integers.Note: this is not an identity mapping.  arith-encode)Build an encoding from a finite range of Fs.@Both the upper and lower bounds are inclusive. This allows an 7 to be created for bounded integer datatypes, such as Int8.  arith-encode.Build an encoding from a list of items with a G instance. arith-encode/Build an encoding from a list of items with an H instance. arith-encode^Wrap an encoding using a pair of functions. These functions must also define an isomorphism. arith-encodeGenerate an encoding for Maybe ty from an inner encoding for ty. arith-encode The dual of optional". This construction assumes that Nothing maps to 0', and removes it from the input domain.)Using this construction on encodings for Maybe ty which are not produced by optional may have unexpected results. arith-encodeRemoves the mapping to 08 (ie. the first mapping). This has the same effect as  exclude [x], where x is the value that maps to 0. It is also similar to  mandatory0, except that it does not change the base type.I arith-encodeWFind the tree node with the highest index less than the given key and return its data.J arith-encode0Simple binary tree lookup, for use with exclude.K arith-encode7Convert a list to a binary tree, for use with excludes. arith-encode>Removes the mapping to the items in the list. The resulting encode, decode, and  highestIndex are O(length excludes@), so this should only be used with a very short excludes list. arith-encode>Combine two encodings into a single encoding that returns an Either of the two types. arith-encode~Combine a set of encodings with the result type into a single encoding which represents the disjoint union of the components. arith-encodeSTake encodings for two datatypes A and B, and build an encoding for a pair (A, B). arith-encodezConstruct an encoding for a 3-tuple from the encodings for the three components. This is actually just a wrapper around pair. arith-encodeyConstruct an encoding for a 4-tuple from the encodings for the four components. This is actually just a wrapper around pair. arith-encodeyConstruct an encoding for a 5-tuple from the encodings for the five components. This is actually just a wrapper around pair. arith-encodexConstruct an encoding for a 6-tuple from the encodings for the six components. This is actually just a wrapper around pair. arith-encodezConstruct an encoding for a 7-tuple from the encodings for the seven components. This is actually just a wrapper around pair. arith-encode{Construct an encoding for an 8-tuple from the encodings for the eight components. This is actually just a wrapper around pair. arith-encodeyConstruct an encoding for a 9-tuple from the encodings for the nine components. This is actually just a wrapper around pair. arith-encodeyConstruct an encoding for a 10-tuple from the encodings for the ten components. This is actually just a wrapper around pair.L arith-encode€Common idiom in bounded sets and sequences: take an entropy value and generate a list of entropy values of a particular length. arith-encodeTake an Encoding+ for elements and a length and produce an Encoding" for lists of exactly that length.This differs from # in that the resulting list is exactly5 the given length, as opposed to upper-bounded by it.  arith-encodeBuild an encoding for finiteH sets of values of a given datatype from an encoding for that datatype.ZNote: this encoding and its variants can produce very large numbers for a very small set.! arith-encodeBuild an encoding for finiteU sets of values of a given datatype from an encoding for that datatype. Similar to set , but uses HashSet instead" arith-encodeConstruct an encoding for finite? sequences of a type from an encoding for values of that type.HNote: This encoding can produce very large numbers for short sequences.M arith-encodeSum of finite geometric seriesN arith-encodeHInteger logarithm (for base b and n, find largest i such that b^i <= n)# arith-encode|Construct an encoding for sequences whose length is bounded by a given value from an encoding for elements of the sequence.$ arith-encodevTake a function which takes a self-reference and produces a recursive encoding, and produce the fixed-point encoding.% arith-encodeBA recursive construction for two mutually-recursive constructions.& arith-encodeDA recursive construction for three mutually-recursive constructions.' arith-encodeCA recursive construction for four mutually-recursive constructions.( arith-encodeCA recursive construction for five mutually-recursive constructions.) arith-encodeBA recursive construction for six mutually-recursive constructions.* arith-encodeDA recursive construction for seven mutually-recursive constructions.+ arith-encodeDA recursive construction for eight mutually-recursive constructions., arith-encodeCA recursive construction for nine mutually-recursive constructions.- arith-encodeBA recursive construction for ten mutually-recursive constructions. arith-encodeThe encoding function. arith-encode;The decoding function. Can assume all inputs are positive. arith-encodeThe number of mappings, or B if it is infinite. arith-encodeOA function indicating whether or not a given value is in the domain of values. arith-encodeThe encoding function. arith-encode;The decoding function. Can assume all inputs are positive. arith-encodeOA function indicating whether or not a given value is in the domain of values. arith-encodeEncoding to use. arith-encodeValue to encode. arith-encodeEncoded value. arith-encodeEncoding to use. arith-encodeNumber to decode. arith-encodeDecoded value. arith-encodeEncoding to use. arith-encodeNumber of values mapped, or B for infinity. arith-encodeEncoding to use. arith-encodeValue to query. arith-encode:Whether or not the value is in the domain of the encoding.  arith-encode)The (inclusive) lower bound on the range. arith-encode)The (inclusive) upper bound on the range.  arith-encodeA list of items to encode. arith-encode>An encoding mapping the items in the list to natural numbers. arith-encodeA list of items to encode. arith-encode>An encoding mapping the items in the list to natural numbers. arith-encodeThe forward encoding function. arith-encodeThe reverse encoding function. arith-encodeThe inner encoding. arith-encodeThe list of items to exclude. arith-encode The base Encoding. arith-encodeThe Encoding that will be represented by Left. arith-encodeThe Encoding that will be represented by Right. arith-encodeThe components of the union. arith-encode)Number of elements in the resulting lists arith-encodeEncoding for the elements# arith-encode"The maximum length of the sequence arith-encodeThe Encoding for the sequence elements$ arith-encodeAA function that, given a self-reference, constructs an encoding.% arith-encodeYA function that, given self-references to both encodings, constructs the first encoding. arith-encodeZA function that, given self-references to both encodings, constructs the second encoding.& arith-encodeXA function that, given self-references to all encodings, constructs the first encoding. arith-encodeYA function that, given self-references to all encodings, constructs the second encoding. arith-encodeXA function that, given self-references to all encodings, constructs the third encoding.' arith-encodeXA function that, given self-references to all encodings, constructs the first encoding. arith-encodeYA function that, given self-references to all encodings, constructs the second encoding. arith-encodeXA function that, given self-references to all encodings, constructs the third encoding. arith-encodeYA function that, given self-references to all encodings, constructs the fourth encoding.( arith-encodeXA function that, given self-references to all encodings, constructs the first encoding. arith-encodeYA function that, given self-references to all encodings, constructs the second encoding. arith-encodeXA function that, given self-references to all encodings, constructs the third encoding. arith-encodeYA function that, given self-references to all encodings, constructs the fourth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the fifth encoding.) arith-encodeXA function that, given self-references to all encodings, constructs the first encoding. arith-encodeYA function that, given self-references to all encodings, constructs the second encoding. arith-encodeXA function that, given self-references to all encodings, constructs the third encoding. arith-encodeYA function that, given self-references to all encodings, constructs the fourth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the fifth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the sixth encoding.* arith-encodeXA function that, given self-references to all encodings, constructs the first encoding. arith-encodeYA function that, given self-references to all encodings, constructs the second encoding. arith-encodeXA function that, given self-references to all encodings, constructs the third encoding. arith-encodeYA function that, given self-references to all encodings, constructs the fourth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the fifth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the sixth encoding. arith-encodeZA function that, given self-references to all encodings, constructs the seventh encoding.+ arith-encodeXA function that, given self-references to all encodings, constructs the first encoding. arith-encodeYA function that, given self-references to all encodings, constructs the second encoding. arith-encodeXA function that, given self-references to all encodings, constructs the third encoding. arith-encodeYA function that, given self-references to all encodings, constructs the fourth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the fifth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the sixth encoding. arith-encodeZA function that, given self-references to all encodings, constructs the seventh encoding. arith-encodeYA function that, given self-references to all encodings, constructs the eighth encoding.,  arith-encodeXA function that, given self-references to all encodings, constructs the first encoding. arith-encodeYA function that, given self-references to all encodings, constructs the second encoding. arith-encodeXA function that, given self-references to all encodings, constructs the third encoding. arith-encodeYA function that, given self-references to all encodings, constructs the fourth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the fifth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the sixth encoding. arith-encodeZA function that, given self-references to all encodings, constructs the seventh encoding. arith-encodeYA function that, given self-references to all encodings, constructs the eighth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the ninth encoding.-  arith-encodeXA function that, given self-references to all encodings, constructs the first encoding. arith-encodeYA function that, given self-references to all encodings, constructs the second encoding. arith-encodeXA function that, given self-references to all encodings, constructs the third encoding. arith-encodeYA function that, given self-references to all encodings, constructs the fourth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the fifth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the sixth encoding. arith-encodeZA function that, given self-references to all encodings, constructs the seventh encoding. arith-encodeYA function that, given self-references to all encodings, constructs the eighth encoding. arith-encodeXA function that, given self-references to all encodings, constructs the ninth encoding.  arith-encodeXA function that, given self-references to all encodings, constructs the tenth encoding..  !"#$%&'()*+,-.  !"#$%&'()*+,-Noneèq1 arith-encodeUse an Encoding to extract a ty from binary data.2 arith-encodeUse an Encoding to write a ty out as binary data.1 arith-encodeThe encoding to use.2 arith-encodeThe encoding to use. arith-encodeThe value to encode.1212None2XŒ 3 arith-encodeAn encoding that produces ().4 arith-encode.An empty encoding, which contains no mappings.5 arith-encodegBuild an encoding that produces non-empty sequences from an encoding for the elements of the sequence.6 arith-encode]Build an encoding that produces non-empty sets from an encoding for the elements of the set.7 arith-encodebBuild an encoding that produces non-empty hash sets from an encoding for the elements of the set.8 arith-encodeBuild an encoding for lists of MaybeFs, where the last element of the list is always guaranteed not to be Nothing3. This is useful for building function encodings.O arith-encode.Build an encoding for bounded-length lists of MaybeFs, where the last element of the list is always guaranteed not to be Nothing2. This is useful for building function encodings.9 arith-encode}Build an encoding that produces a (finite partial) function from one type to another. This function is represented using a Map.: arith-encode}Build an encoding that produces a (finite partial) function from one type to another. This function is represented using a HashMap.; arith-encodeaBuild an encoding that produces relations between two types. These relations are represented as Maps from the first type to Sets of the second.< arith-encodeaBuild an encoding that produces relations between two types. These relations are represented as HashMaps from the first type to HashSets of the second.= arith-encodeLBuild an encoding that produces trees from an encoding for the node labels. 5 arith-encode!The encoding for the element type6 arith-encode!The encoding for the element type7 arith-encode!The encoding for the element type8 arith-encode!The encoding for the element typeO arith-encode"The maximum length of the sequence arith-encode!The encoding for the element type9 arith-encode/The encoding for the domain type (ie. key type) arith-encode0The encoding for the range type (ie. value type): arith-encode/The encoding for the domain type (ie. key type) arith-encode0The encoding for the range type (ie. value type); arith-encode2The encoding for the left-hand type (ie. key type) arith-encode5The encoding for the right-hand type (ie. value type)< arith-encode2The encoding for the left-hand type (ie. key type) arith-encode5The encoding for the right-hand type (ie. value type)= arith-encode#The encoding for the node data type 3456789:;<= 3458679:;<=None2X29  !"#$%&'()*+,-3456789:;<=P      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOFPQRSTMUVWXYZ[\]^)arith-encode-1.0.1-A2CrxwMxQ2w3COfj3rehHgData.ArithEncode.BasicData.ArithEncode.BinaryData.ArithEncode.UtilData.ArithEncodeEncodingIllegalArgument mkEncoding mkInfEncodingencodedecodesizeinDomainidentity singletonintegralintervalfromHashableList fromOrdListwrapoptional mandatorynonzeroexcludeeitherunionpairtriplequadquintsextetseptetoctetnonetdectetpowersethashSetseq boundedSeq recursive recursive2 recursive3 recursive4 recursive5 recursive6 recursive7 recursive8 recursive9 recursive10$fExceptionIllegalArgument$fShowIllegalArgument $fShowBinTreegetWithEncodingputWithEncodingunitvoid nonEmptySeq nonEmptySetnonEmptyHashSetnonEmptyOptionSeqfunctionfunctionHashablerelationrelationHashabletreeBinTree encEncode encDecodeencSizebase GHC.MaybeNothing encInDomain integer-gmpGHC.Integer.TypeIntegerghc-prim GHC.TypesFalseGHC.RealIntegral'hashable-1.3.0.0-1RsrIcitxVDKffGN1TuMlmData.Hashable.ClassHashable GHC.ClassesOrd closestBelow closestWithin toBinTree toProdList geometricSumilognonEmptyBoundedOptionSeq