[Haskell-beginners] ByteString unfold that can fail