úÎ{mrê0      !"#$%&'()*+,-./$Builders for linear data structures Ivan.Miljenovic@gmail.comNoneJ%Encode a textual value using UTF-32. Needs to be used with either  or . %Encode a textual value using UTF-16. Needs to be used with either  or . $Encode a textual value using UTF-8. @Unicode codepoints are truncated to 8 bits. For the codepoints $ 0-255 this corresponds to the ISO/IEC 8859-1 (aka Latin-1)  encoding. ?Unicode codepoints are truncated to 7 bits and prefixed with a @ leading 0. For the codepoints 0-127 this corresponds to the  ASCII encoding. 7Encode a number as its hexadecimal representation with A ASCII-encoded (lower-case) characters using a fixed number of 8 hexadecimal digits. For shortest-width encoding use   instead. 7Encode a number as its hexadecimal representation with E ASCII-encoded (lower-case) characters using the shortest possible 1 representation. For fixed-width encoding use  instead. AEncode a number as its decimal representation with ASCII-encoded  characters. BExplicitly state that a number should be encoded in little-endian  format. ?Explicitly state that a number should be encoded in big-endian  format. You probably won'$t actually need to use this type; it' s defined  solely to be the + for !. !BAn explicit chunkified representation of a Builder. If we have a  polymorphic expression  buildValue that can be used to build  something of type b%, then the following are equivalent: < 'build' buildValue == mconcat . unChunk $ build buildValue $-Which values can be built from other values? Minimal complete definition:   fromValue%(Create a builder from an initial value. &Add a value to the front. 'Add a value to the end. (CanBuildFrom b a* states that we can build a value of type b  with values of type a. )A linear data structure a$ is buildable if we can prepend and @ append both values of the data structure in question and its ( constituent elements to the builder. *The individual elements. ,!Build the actual data structure. . An alias for &. -Mnemonic: the arrow points to the new value. / An alias for '. -Mnemonic: the arrow points to the new value. 0;For lazy ByteStrings; goes via a lazy Text. Equivalent to  the LittleEndian (Utf32 ByteString) instance. 1;For lazy ByteStrings; goes via a lazy Text. Equivalent to  the Utf32 (LittleEndian ByteString) instance. 2;For lazy ByteStrings; goes via a lazy Text. Equivalent to  the BigEndian (Utf32 ByteString) instance. 3;For lazy ByteStrings; goes via a lazy Text. Equivalent to  the Utf32 (BigEndian ByteString) instance. 4;For lazy ByteStrings; goes via a lazy Text. Equivalent to  the LittleEndian (Utf16 ByteString) instance. 5;For lazy ByteStrings; goes via a lazy Text. Equivalent to  the Utf16 (LittleEndian ByteString) instance. 6;For lazy ByteStrings; goes via a lazy Text. Equivalent to  the BigEndian (Utf16 ByteString) instance. 7;For lazy ByteStrings; goes via a lazy Text. Equivalent to  the Utf16 (BigEndian ByteString) instance. 8,For lazy ByteStrings; goes via a lazy Text. 9,For lazy ByteStrings; goes via a lazy Text. :?For strict ByteStrings; goes via a strict Text. Equivalent to  the LittleEndian (Utf32 ByteString) instance. ;?For strict ByteStrings; goes via a strict Text. Equivalent to  the Utf32 (LittleEndian ByteString) instance. <?For strict ByteStrings; goes via a strict Text. Equivalent to  the BigEndian (Utf32 ByteString) instance. =?For strict ByteStrings; goes via a strict Text. Equivalent to  the Utf32 (BigEndian ByteString) instance. >?For strict ByteStrings; goes via a strict Text. Equivalent to  the LittleEndian (Utf16 ByteString) instance. ??For strict ByteStrings; goes via a strict Text. Equivalent to  the Utf16 (LittleEndian ByteString) instance. @?For strict ByteStrings; goes via a strict Text. Equivalent to  the BigEndian (Utf16 ByteString) instance. A?For strict ByteStrings; goes via a strict Text. Equivalent to  the Utf16 (BigEndian ByteString) instance. B0For strict ByteStrings; goes via a strict Text. C0For strict ByteStrings; goes via a strict Text. D>For lazy Text values; goes via a lazy ByteString. Equivalent  to the LittleEndian (Utf32 Text) instance. E>For lazy Text values; goes via a lazy ByteString. Equivalent  to the Utf32 (LittleEndian Text) instance. F>For lazy Text values; goes via a lazy ByteString. Equivalent  to the BigEndian (Utf32 Text) instance. G>For lazy Text values; goes via a lazy ByteString. Equivalent  to the Utf32 (BigEndian Text) instance. H>For lazy Text values; goes via a lazy ByteString. Equivalent  to the LittleEndian (Utf16 Text) instance. I>For lazy Text values; goes via a lazy ByteString. Equivalent  to the Utf16 (LittleEndian Text) instance. J>For lazy Text values; goes via a lazy ByteString. Equivalent  to the BigEndian (Utf16 Text) instance. K>For lazy Text values; goes via a lazy ByteString. Equivalent  to the Utf16 (BigEndian Text) instance. L2For lazy Text values; goes via a lazy ByteString. MBFor strict Text values; goes via a strict ByteString. Equivalent  to the LittleEndian (Utf32 Text) instance. NBFor strict Text values; goes via a strict ByteString. Equivalent  to the Utf32 (LittleEndian Text) instance. OBFor strict Text values; goes via a strict ByteString. Equivalent  to the BigEndian (Utf32 Text) instance. PBFor strict Text values; goes via a strict ByteString. Equivalent  to the Utf32 (BigEndian Text) instance. QBFor strict Text values; goes via a strict ByteString. Equivalent  to the LittleEndian (Utf16 Text) instance. RBFor strict Text values; goes via a strict ByteString. Equivalent  to the Utf16 (LittleEndian Text) instance. SBFor strict Text values; goes via a strict ByteString. Equivalent  to the BigEndian (Utf16 Text) instance. TBFor strict Text values; goes via a strict ByteString. Equivalent  to the Utf16 (BigEndian Text) instance. U6For strict Text values; goes via a strict ByteString. VUses 16 nibbles/hexadecimal digits. WUses 8 nibbles/hexadecimal digits. XUses 4 nibbles/hexadecimal digits. YUses 16 nibbles/hexadecimal digits. ZUses 8 nibbles/hexadecimal digits. [Uses 4 nibbles/hexadecimal digits. \Uses 8 nibbles/hexadecimal digits. ]Currently slow. ^Uses 16 nibbles/hexadecimal digits. _Currently slow. `Uses 2 nibbles/hexadecimal digits. aUses 2 nibbles/hexadecimal digits. bBLazy ByteStrings. This instance should be preferred over the one  for strict ByteStrings. cBStrict ByteStrings. This instance goes via lazy ByteStrings, and % as such they should be preferred. §  !"#$%&'()*+,-./defg0123456789:;<=>?@ABChijklmDEFGHIJKLMNOPQRSTUnopqrstuvwxyzV{|}~W€‚Xƒ„…†‡ˆY‰Š‹ZŒŽ[‘\]’“^_”•`–—a˜™š›œžbcŸ ¡¢£¤¥¦0  !"#$%&'()*+,-./0)*+,$%&'(-./!"#   ‰    !"#$%&'()*+,-./defg0123456789:;<=>?@ABChijklmDEFGHIJKLMNOPQRSTUnopqrstuvwxyzV{|}~W€‚Xƒ„…†‡ˆY‰Š‹ZŒŽ[‘\]’“^_”•`–—a˜™š›œžbcŸ ¡¢£¤¥¦§        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡buildable-0.1.0.1Data.BuildableUtf32unUtf32Utf16unUtf16Utf8unUtf8Char8unChar8Char7unChar7HexFixed unHexFixedHexunHexDecunDec LittleEndianLEunLE BigEndianBEunBEChunkedBuilderCBunCBChunkedChunksunChunk BuildFrom fromValueprependappend CanBuildFrom BuildableUnitBuilderbuild singleton<||>$fBuildFromBuilderUtf32$fBuildFromBuilderLittleEndian$fBuildFromBuilderUtf320$fBuildFromBuilderBigEndian$fBuildFromBuilderUtf16$fBuildFromBuilderLittleEndian0$fBuildFromBuilderUtf160$fBuildFromBuilderBigEndian0$fBuildFromBuilderUtf8$fBuildFromBuilderChar8$fBuildFromBuilderUtf321$fBuildFromBuilderLittleEndian1$fBuildFromBuilderUtf322$fBuildFromBuilderBigEndian1$fBuildFromBuilderUtf161$fBuildFromBuilderLittleEndian2$fBuildFromBuilderUtf162$fBuildFromBuilderBigEndian2$fBuildFromBuilderUtf80$fBuildFromBuilderChar80$fBuildFromBuilderUtf323$fBuildFromBuilderLittleEndian3$fBuildFromBuilderUtf324$fBuildFromBuilderBigEndian3$fBuildFromBuilderUtf163$fBuildFromBuilderLittleEndian4$fBuildFromBuilderUtf164$fBuildFromBuilderBigEndian4$fBuildFromBuilderUtf81$fBuildFromBuilderUtf325$fBuildFromBuilderLittleEndian5$fBuildFromBuilderUtf326$fBuildFromBuilderBigEndian5$fBuildFromBuilderUtf165$fBuildFromBuilderLittleEndian6$fBuildFromBuilderUtf166$fBuildFromBuilderBigEndian6$fBuildFromBuilderUtf82$fBuildFromBuilderHexFixed$fBuildFromBuilderHexFixed0$fBuildFromBuilderHexFixed1$fBuildFromBuilderHexFixed2$fBuildFromBuilderHexFixed3$fBuildFromBuilderHexFixed4$fBuildFromBuilderHexFixed5$fBuildFromBuilderDec8$fBuildFromBuilderHexFixed6$fBuildFromBuilderDec9$fBuildFromBuilderHexFixed7$fBuildFromBuilderHexFixed8$fBuildableByteString$fBuildableByteString0$fBuildFromSeq[]$fBuildFromSeqa$fBuildFromSeqSeq$fBuildableSeq$fBuildFromBuilder[]$fBuildFromBuilderChar$fBuildFromBuilderText$fBuildFromBuilderText0$fBuildableText$fBuildableText0$fBuildFromBuilderUtf83$fBuildFromBuilderChar81$fBuildFromBuilderChar7$fBuildFromBuilderUtf84$fBuildFromBuilderChar82$fBuildFromBuilderChar70$fIsStringUtf32$fIsStringUtf16$fIsStringUtf8$fIsStringChar8$fIsStringChar7$fBuildFromBuilderHex$fBuildFromBuilderDec$fBuildFromBuilderHex0$fBuildFromBuilderDec0$fBuildFromBuilderLittleEndian7$fBuildFromBuilderBigEndian7$fBuildFromBuilderHex1$fBuildFromBuilderDec1$fBuildFromBuilderLittleEndian8$fBuildFromBuilderBigEndian8$fBuildFromBuilderHex2$fBuildFromBuilderDec2$fBuildFromBuilderLittleEndian9$fBuildFromBuilderBigEndian9$fBuildFromBuilderDec3$fBuildFromBuilderDec4$fBuildFromBuilderDec5 $fBuildFromBuilderLittleEndian10$fBuildFromBuilderBigEndian10$fBuildFromBuilderDec6 $fBuildFromBuilderLittleEndian11$fBuildFromBuilderBigEndian11$fBuildFromBuilderDec7 $fBuildFromBuilderLittleEndian12$fBuildFromBuilderBigEndian12 $fBuildFromBuilderLittleEndian13$fBuildFromBuilderBigEndian13 $fBuildFromBuilderLittleEndian14$fBuildFromBuilderBigEndian14$fBuildFromBuilderDec10$fBuildFromBuilderInt8$fBuildFromBuilderHex3$fBuildFromBuilderDec11$fBuildFromBuilderWord8$fBuildFromBuilderHexFixed9$fBuildFromBuilderByteString$fBuildFromBuilderHexFixed10$fBuildFromBuilderByteString0$fBuildFromChunkedBuildera $fBuildFromChunkedBuilderChunked$fBuildableChunked$fBuildFromDLista$fBuildFromDLista0$fBuildFromDList[]$fBuildFrom[]a $fBuildable[]