Data.BinaryのputとputByteString
ByteString
がBinary
クラスのインスタンスになっているので、put
とputByteString
は同じものかと思ったのですが、差がありました。
> runPut $ put $ BSL.pack [0xFF,0xFE,0xFD] "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\255\254\253" > runPut $ putLazyByteString $ BSL.pack [0xFF,0xFE,0xFD] "\255\254\253" ``` 実装を見ると```ByteString```の```Binary```のインスタンスは、バイト列だけでなく、その長さの情報もデコードしています。