Enough bytesランタイム例外の原因と対処の一例
私のHakyll製のこのブログのコードをいじっていたとき、コンパイルは問題なかったが 実行時に以下のような例外を吐いた。
blog: Data.Binary.Get.runGet at position 269: not enough bytes
CallStack (from HasCallStack):
error, called at libraries/binary/src/Data/Binary/Get.hs:351:5 in binary-0.8.8.0:Data.Binary.Get
これは、どこかで Snapshot
に入れた値が Binary
のインスタンスを持たない型であった
可能性がある。
一番気をつけるべき(と個人的に思う)のは、 そのうちの一つが Text
型であること だ。
Text
は実は Binary
のインスタンスを持たない (持ってそうなのに)。 hackageを確認すれば
明白だろう。
なので、 Snapshotに入れる際は必ず unpack
してあげる必要がある 。