úÎóî‚;      !"#$%&'()*+,-./0123456789:None+M8;5A simple binary tree structure, for use with exclude._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.< Encode a ty as a positive integer.=!Decode a positive integer into a ty.>The size of an encoding, or ? if it is infinite.@AIndicate whether or not a value is in the domain of the encoding.>An exception to be thrown if an illegal argument is given to , .5Create an encoding from all the necessary components.GCreate an infinite-sized encoding. This variant does not need a size. Encode a ty as a positive A (ie. a natural number). If the given ty is not in the domain of the  (meaning,  returns B!), the underlying implementation may throw . However, this is not strictly& required; therefore, do not rely on  being thrown. Decode a ty from a positive A (ie. a natural number). If the given A* 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.Get the size of an , or ? if it is infinite.AIndicate whether or not a value is in the domain of the encoding. ,The identity encoding. Maps every positive A to itself.xNote: only positive integers are in the domain of this encoding. For all an encoding whose domain is all integers, use  . 2A singleton encoding. Maps a singular value to 0. An encoding of all integers.Note: this is not an identity mapping. )Build an encoding from a finite range of Cs.@Both the upper and lower bounds are inclusive. This allows an 7 to be created for bounded integer datatypes, such as Int8. .Build an encoding from a list of items with a D instance./Build an encoding from a list of items with an E instance.^Wrap an encoding using a pair of functions. These functions must also define an isomorphism.Generate an encoding for Maybe ty from an inner encoding for ty. 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.Removes 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.FWFind the tree node with the highest index less than the given key and return its data.G0Simple binary tree lookup, for use with exclude.H7Convert a list to a binary tree, for use with excludes.>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.>Combine two encodings into a single encoding that returns an Either of the two types.~Combine a set of encodings with the result type into a single encoding which represents the disjoint union of the components.STake encodings for two datatypes A and B, and build an encoding for a pair (A, B).zConstruct an encoding for a 3-tuple from the encodings for the three components. This is actually just a wrapper around pair.yConstruct an encoding for a 4-tuple from the encodings for the four components. This is actually just a wrapper around pair.yConstruct an encoding for a 5-tuple from the encodings for the five components. This is actually just a wrapper around pair.xConstruct an encoding for a 6-tuple from the encodings for the six components. This is actually just a wrapper around pair.zConstruct an encoding for a 7-tuple from the encodings for the seven components. This is actually just a wrapper around pair.{Construct an encoding for an 8-tuple from the encodings for the eight components. This is actually just a wrapper around pair.yConstruct an encoding for a 9-tuple from the encodings for the nine components. This is actually just a wrapper around pair.yConstruct an encoding for a 10-tuple from the encodings for the ten components. This is actually just a wrapper around pair.I€Common idiom in bounded sets and sequences: take an entropy value and generate a list of entropy values of a particular length.Take 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. Build 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.!Build an encoding for finiteU sets of values of a given datatype from an encoding for that datatype. Similar to set , but uses HashSet instead"Construct 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.JSum of finite geometric seriesKHInteger logarithm (for base b and n, find largest i such that b^i <= n)#|Construct an encoding for sequences whose length is bounded by a given value from an encoding for elements of the sequence.$vTake a function which takes a self-reference and produces a recursive encoding, and produce the fixed-point encoding.%BA recursive construction for two mutually-recursive constructions.&DA recursive construction for three mutually-recursive constructions.'CA recursive construction for four mutually-recursive constructions.(CA recursive construction for five mutually-recursive constructions.)BA recursive construction for six mutually-recursive constructions.*DA recursive construction for seven mutually-recursive constructions.+DA recursive construction for eight mutually-recursive constructions.,CA recursive construction for nine mutually-recursive constructions.-BA recursive construction for ten mutually-recursive constructions.D;LMN<=>@The encoding function.;The decoding function. Can assume all inputs are positive.The number of mappings, or ? if it is infinite.OA function indicating whether or not a given value is in the domain of values.The encoding function.;The decoding function. Can assume all inputs are positive.OA function indicating whether or not a given value is in the domain of values.Encoding to use.Value to encode.Encoded value.Encoding to use.Number to decode.Decoded value.Encoding to use.Number of values mapped, or ? for infinity.Encoding to use.Value to query.:Whether or not the value is in the domain of the encoding. )The (inclusive) lower bound on the range.)The (inclusive) upper bound on the range. A list of items to encode.>An encoding mapping the items in the list to natural numbers.A list of items to encode.>An encoding mapping the items in the list to natural numbers.The forward encoding function.The reverse encoding function.The inner encoding.FGHThe list of items to exclude. The base Encoding.The Encoding that will be represented by Left.The Encoding that will be represented by Right.OThe components of the union.PQIR)Number of elements in the resulting listsEncoding for the elements !S"JKT#"The maximum length of the sequenceThe Encoding for the sequence elements$AA function that, given a self-reference, constructs an encoding.%YA function that, given self-references to both encodings, constructs the first encoding.ZA function that, given self-references to both encodings, constructs the second encoding.&XA function that, given self-references to all encodings, constructs the first encoding.YA function that, given self-references to all encodings, constructs the second encoding.XA function that, given self-references to all encodings, constructs the third encoding.'XA function that, given self-references to all encodings, constructs the first encoding.YA function that, given self-references to all encodings, constructs the second encoding.XA function that, given self-references to all encodings, constructs the third encoding.YA function that, given self-references to all encodings, constructs the fourth encoding.(XA function that, given self-references to all encodings, constructs the first encoding.YA function that, given self-references to all encodings, constructs the second encoding.XA function that, given self-references to all encodings, constructs the third encoding.YA function that, given self-references to all encodings, constructs the fourth encoding.XA function that, given self-references to all encodings, constructs the fifth encoding.)XA function that, given self-references to all encodings, constructs the first encoding.YA function that, given self-references to all encodings, constructs the second encoding.XA function that, given self-references to all encodings, constructs the third encoding.YA function that, given self-references to all encodings, constructs the fourth encoding.XA function that, given self-references to all encodings, constructs the fifth encoding.XA function that, given self-references to all encodings, constructs the sixth encoding.*XA function that, given self-references to all encodings, constructs the first encoding.YA function that, given self-references to all encodings, constructs the second encoding.XA function that, given self-references to all encodings, constructs the third encoding.YA function that, given self-references to all encodings, constructs the fourth encoding.XA function that, given self-references to all encodings, constructs the fifth encoding.XA function that, given self-references to all encodings, constructs the sixth encoding.ZA function that, given self-references to all encodings, constructs the seventh encoding.+XA function that, given self-references to all encodings, constructs the first encoding.YA function that, given self-references to all encodings, constructs the second encoding.XA function that, given self-references to all encodings, constructs the third encoding.YA function that, given self-references to all encodings, constructs the fourth encoding.XA function that, given self-references to all encodings, constructs the fifth encoding.XA function that, given self-references to all encodings, constructs the sixth encoding.ZA function that, given self-references to all encodings, constructs the seventh encoding.YA function that, given self-references to all encodings, constructs the eighth encoding., XA function that, given self-references to all encodings, constructs the first encoding.YA function that, given self-references to all encodings, constructs the second encoding.XA function that, given self-references to all encodings, constructs the third encoding.YA function that, given self-references to all encodings, constructs the fourth encoding.XA function that, given self-references to all encodings, constructs the fifth encoding.XA function that, given self-references to all encodings, constructs the sixth encoding.ZA function that, given self-references to all encodings, constructs the seventh encoding.YA function that, given self-references to all encodings, constructs the eighth encoding.XA function that, given self-references to all encodings, constructs the ninth encoding.- XA function that, given self-references to all encodings, constructs the first encoding.YA function that, given self-references to all encodings, constructs the second encoding.XA function that, given self-references to all encodings, constructs the third encoding.YA function that, given self-references to all encodings, constructs the fourth encoding.XA function that, given self-references to all encodings, constructs the fifth encoding.XA function that, given self-references to all encodings, constructs the sixth encoding.ZA function that, given self-references to all encodings, constructs the seventh encoding.YA function that, given self-references to all encodings, constructs the eighth encoding.XA function that, given self-references to all encodings, constructs the ninth encoding. XA function that, given self-references to all encodings, constructs the tenth encoding.UV.  !"#$%&'()*+,-.  !"#$%&'()*+,-<;MLN<=>@ FGHOPQIR !S"JKT#$%&'()*+,-UVNone+M .An encoding that produces ()./.An empty encoding, which contains no mappings.0gBuild an encoding that produces non-empty sequences from an encoding for the elements of the sequence.1]Build an encoding that produces non-empty sets from an encoding for the elements of the set.2bBuild an encoding that produces non-empty hash sets from an encoding for the elements of the set.3Build 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.W.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.4}Build an encoding that produces a (finite partial) function from one type to another. This function is represented using a Map.5}Build an encoding that produces a (finite partial) function from one type to another. This function is represented using a HashMap.6aBuild an encoding that produces relations between two types. These relations are represented as Maps from the first type to Sets of the second.7aBuild an encoding that produces relations between two types. These relations are represented as HashMaps from the first type to HashSets of the second.8LBuild an encoding that produces trees from an encoding for the node labels. ./0!The encoding for the element type1!The encoding for the element type2!The encoding for the element type3!The encoding for the element typeW"The maximum length of the sequence!The encoding for the element type4/The encoding for the domain type (ie. key type)0The encoding for the range type (ie. value type)5/The encoding for the domain type (ie. key type)0The encoding for the range type (ie. value type)62The encoding for the left-hand type (ie. key type)5The encoding for the right-hand type (ie. value type)72The encoding for the left-hand type (ie. key type)5The encoding for the right-hand type (ie. value type)8#The encoding for the node data type ./012345678 ./031245678 ./0123W45678None9Use an Encoding to extract a ty from binary data.:Use an Encoding to write a ty out as binary data.X9The encoding to use.Y:The encoding to use.The value to encode.9:9:X9Y:None+M9  !"#$%&'()*+,-./012345678Z      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLCMNOPQJRSTUVWXYZ[\]^_`abcdefgarith-encode-0.7.0Data.ArithEncode.BasicData.ArithEncode.UtilData.ArithEncode.BinaryData.ArithEncodeEncodingIllegalArgument mkEncoding mkInfEncodingencodedecodesizeinDomainidentity singletonintegralintervalfromHashableList fromOrdListwrapoptional mandatorynonzeroexcludeeitherunionpairtriplequadquintsextetseptetoctetnonetdectetpowersethashSetseq boundedSeq recursive recursive2 recursive3 recursive4 recursive5 recursive6 recursive7 recursive8 recursive9 recursive10unitvoid nonEmptySeq nonEmptySetnonEmptyHashSetnonEmptyOptionSeqfunctionfunctionHashablerelationrelationHashabletreegetWithEncodingputWithEncodingBinTree encEncode encDecodeencSizebase Data.MaybeNothing encInDomain integer-gmpGHC.Integer.TypeIntegerghc-prim GHC.TypesFalseGHC.RealIntegralhashable-1.2.2.0Data.Hashable.ClassHashable GHC.ClassesOrd closestBelow closestWithin toBinTree toProdList geometricSumilogNilBranchsortfuncisqrt mkPairCore fromProdListseqCoreboundedSeqCore$fExceptionIllegalArgument$fShowIllegalArgumentnonEmptyBoundedOptionSeq getNatural putNatural