Ah, I see what you mean, that's a good point. More generally, I think that getting this to do the “expected thing” will be tricky. See the documentation for `send` here to see how confusing it can be https://hackage.haskell.org/package/network-2.5.0.0/docs/Network-Socket-ByteString-Lazy.html#v:send