úÎ0.\     HWrite abstraction so we can avoid some gory and bloody details. A write J abstration holds the exact size of the write in bytes, and a function to  carry out the write operation. ;Type for a single build step. Every build step checks that  free + bytes-written <= last (Ptr to the next free byte in the buffer 'Ptr to the first byte AFTER the buffer !Signal the next step to be taken LA buildsignal is a signal returned from a write to the builder, it tells us  what should happen next. Pointer to the next free byte G | Signal that the buffer is full and a new one needs to be allocated. M It contains the minimal size required for the next buffer, a pointer to the % next free byte, and a continuation. GMain builder type. It simply contains a function to extract the actual  data. Write a single byte. Byte to write Resulting write Write a strict .  to write Resulting write  Construct a  from a single  abstraction.  abstraction Actual value to write  Resulting  EConstruct a builder writing a list of data from a write abstraction.  abstraction List of values to write  Resulting   Construct a  from a single byte. Byte to create a  from  Resulting  O(n). A Builder taking a , copying it. Strict  to copy  Resulting  "Copied from Data.ByteString.Lazy. .Run the builder with the default buffer size. 9Run the builder with buffers of at least the given size. KNote that the builders should guarantee that on average the desired buffer $ size is attained almost perfectly. Almost because builders may decide to L start a new buffer and not completely fill the existing buffer, if this is H faster. However, they should not spill too much of the buffer, if they  cannot compensate for it. O(n). Extract the lazy  from the builder.  to evaluate Resulting UTF-8 encoded      1Write a Unicode character, encoding it as UTF-8. Character to write Resulting write KEncode a Unicode character to another datatype, using UTF-8. This function J acts as an abstract way of encoding characters, as it is unaware of what L needs to happen with the resulting bytes: you have to specify functions to  deal with those.  1-byte UTF-8  2-byte UTF-8  3-byte UTF-8  4-byte UTF-8 Input  Result &An unescaped, utf8 encoded character.  to insert  Resulting  .A list of unescaped, utf8 encoded characters.  to insert  Resulting  Create an UTF-8 encoded  from some .  to insert  Resulting      Write an unicode character to a , doing HTML escaping. Character to write Resulting write A HTML escaped . Character to write  Resulting  A HTML escaped . String to create a  from  Resulting  An HTML escaped piece of .  to insert  Resulting         !"#$%&'()*blaze-builder-0.1Text.Blaze.Builder.CoreText.Blaze.Builder.Utf8Text.Blaze.Builder.HtmlWriteBuilder writeBytewriteByteStringwriteSingleton writeList singletonfromByteStringtoLazyByteString writeCharfromChar fromStringfromTextwriteHtmlEscapedCharfromHtmlEscapedCharfromHtmlEscapedStringfromHtmlEscapedText BuildStep BuildSignal BufferFullDonebytestring-0.9.1.8Data.ByteString.Internal ByteString defaultSize runBuilderrunBuilderWithData.ByteString.Lazy.InternalencodeCharUtf8ghc-prim GHC.TypesCharbaseGHC.BaseString text-0.10.0.2Data.Text.InternalText