It occured to me that the bytestrings are already in memory by converting them to Builders, buffers would be allocated to produce the Lazy ByteString these buffers would be immediately written to the socket so why not just use the already allocated ByteStrings and send them to the socket.