tNp)7      !"#$%&'()*+,-./0123456 Safe-InferredA binary list is a list containing a power of two elements. Note that a binary list is never empty because it has at least 2^0 = 1 element.78978879None# An exponent.O(1)%. Build a list with a single element.O(1). Given a binary list l with length 2^k: lengthExponent l = kO(1)!. Number of elements in the list.O(log n)a. Lookup an element in the list by its index (starting from 0). If the index is out of range, : is returned.O(log n)c. Replace a single element in the list. If the index is out of range, returns the original list.O(1)z. Append two binary lists. This is only possible if both lists have the same length. If this condition is not hold, : is returned.O(1). Split a binary list into two sublists of half the length, unless the list only contains one element. In that case, it just returns that element. O(log n) . Calling  take n xs returns the first min (2^n) (length xs) elements of xs. O(log n) . Calling  takeEnd n xs returns the last min (2^n) (length xs) elements of xs. Calling replicateA n f= builds a binary list collecting the results of executing 2^n times the applicative action f.  The same as  1, but the actions are executed in reversed order. O(log n) . Calling  replicate n x builds a binary list with 2^n occurences of x.O(n):. Build a binary list with the given length exponent (see *) by applying a function to each index.Like 2, but the generator function returns a value in a ;5. Therefore, the result is as well contained in a ;.O(log n)). Get the first element of a binary list.O(log n)(. Get the last element of a binary list.O(n). Reverse a binary list.O(n)w. Transform a list of pairs into a flat list. The resulting list will have twice more elements than the original.O(n). Opposite transformation of . It halves the number of elements of the input. As a result, when applied to a binary list with a single element, it returns :.< Expression pairBuilder f xs is equivalent to joinPairs (map f xs)M, but does not build any intermediate structure. Used for rewriting rules.= Expression zipAndJoing f g xs ys is equivalent to pairBuilder f (zipWith g xs ys)M, but does not build any intermediate structure. Used for rewriting rules.O(n)). Zip two binary lists using an operator.O(n) . Zip two binary lists in pairs.O(n). Unzip a binary list of pairs.> Expression  unzipMap f xs is equivalent to unzip (map f xs)4, but does not create any intermediate structure.?O(log n)U. Calculate the exponent of a positive integer number expressed as a power of two.O(n)t. Build a binary list from a linked list. If the input list has length different from a power of two, it returns :.@O(1)F. This is the last exponent that has power of two defined in the type A.5Note: This value is system dependent, since the type A varies in size from system to system.BO(1)u. Calculate the next power of two exponent, if there is any. It is possible to not find a next one since the type AP is finite. If the input is already a power of two, its exponent is returned.O(n). Build a binary list from a linked list. If the input list has length different from a power of two, fill to the next power of two with a default element.JWarning: this function crashes if the input list length is larger than any power of two in the type A!. However, this is very unlikely.O(n)R. Build a binary list from a linked list. It returns a binary list with length 2 ^ n (where n is the supplied Av argument), and the list of elements of the original list that were not used. If the input list is shorter than 2 ^ n~, a default element will be used to complete the binary list. This method for building binary lists is faster than both  and .O(n)Q. Create a list from the elements of a binary list matching a given condition.O(n)D. Create a list extracting a sublist of elements from a binary list._Apply an applicative action to every element in a segment of a binary list, from left to right.-Index to look forElement to insert C<=>?@BDefault elementLength exponent Input listDEFGHIJKL   - C<=>?@BDEFGHIJKLNoneThe result of decoding a binary list, which produces a list of binary lists of increasing size, ending in either a decoding error or a final binary list. When this is the result of 4, it contains sublists of order 1, 2, 4, 8, ... up to the order of the total list (unless an error has been encountered first). These sublists are either a section starting at the left, or a section starting at the right, depending on the , of encoding.@A decoding error, with an error message and the remaining input. %Full binary list and remaining input.!/Partial binary list, and rest of decoded input."A binary list decoded, from where you can extract a binary list. If the decoding process fails in some point, you still will be able to retrieve the binary list of elements that were decoded successfully before the error.$Direction of encoding.%Length exponent (see ) of the binary list.& Decoded data.'yA binary list encoded, ready to be written in a file or be sent over a network. It can be directly translated to a M using 5, or restored using 6.)Direction of encoding.*Length exponent (see ) of the binary list.+ Encoded data.,+Direction of encoding. If the direction is .P, the binary list will be encoded from left to right. If the direction is -=, the binary list will be encoded in the opposite way. Choose a direction according to the part of the list you want to have access earlier. If you foresee reading only a part of the list, either at its beginning or end, an appropiate choice of direction will allow you to avoid decoding the full list./Encode a binary list using the N instance of its elements.0Decode a binary list using the N+ instance of its elements. It returns a O in case of decoding failure.1fEncode a binary list, using a custom serialization for its elements and an user-supplied direction.2vGet the final result of a decoding process, unless it returned an error, in which case this error is returned as a O.3ZBreak a list down to sublists of order 1, 2, 4, 8, ..., 2^k. The result is stored in a @ value. Obviously, the output will not have a decoding error.4;Decode an encoded binary list. The result is given as a "< value, which can then be queried to get partial results.51Translate an encoded binary list to a bytestring.6Translate a bytestring to an encoded binary list, in case this is possible. Otherwise, it returns a string with a human-readable error. !"#$%&'()*+,-./0123456P !"#$%&'()*+,-./0123456/0,.-'()*+1"#$%&! 23456 ! "#$%&'()*+,.-/0123456PQ      !"#$%&&'()**+,-./0123456789:;<=><?@ABCDEFGHIJKLMNOPQRSTUVWXY<?Z[\binary-list-1.0.0.0Data.BinaryListData.BinaryList.SerializeData.BinaryList.InternalBinListExponent singletonlengthExponentlengthlookupreplaceappendsplittaketakeEnd replicateA replicateAR replicategenerate generateMheadlastreverse joinPairs disjoinPairszipWithzipunzipfromListfromListWithDefault fromListSplit toListFilter toListSegmenttraverseSegmentDecoded DecodingError FinalResult PartialResultDecodedBinList decDirection decLengthdecDataEncodedBinList encDirection encLengthencData Direction FromRightFromLeftencodedecode encodeBinList fromDecoded toDecoded decodeBinListencodedToByteStringencodedFromByteStringListNodeListEnd$fNFDataBinListbase Data.MaybeNothingGHC.BaseMonad pairBuilder zipAndJoinunzipMapexponentInBasisTwolastExponentOfTwoghc-prim GHC.TypesIntnextExponentOfTwodisjoinPairsNodestraverseSegmentFromTotraverseSegmentFromtraverseSegmentTo traverseFullmap$fTraversableBinList$fFoldableBinList$fFunctorBinList $fShowBinListbytestring-0.10.4.0Data.ByteString.Lazy.Internal ByteStringbinary-0.7.1.0Data.Binary.ClassBinaryString$fNFDataDecoded