@@ -229,7 +229,7 @@ import Data.Text.Internal.Lazy.Fusion (stream, unstream)
229import Data.Text.Internal.Lazy (Text(..), chunk, empty, foldlChunks,
229import Data.Text.Internal.Lazy (Text(..), chunk, empty, foldlChunks,
230 foldrChunks, smallChunkSize)
230 foldrChunks, smallChunkSize)
231import Data.Text.Internal (firstf, safe, text)
231import Data.Text.Internal (firstf, safe, text)
232−import Data.Text.Lazy.Encoding (decodeUtf8, encodeUtf8)
232+import Data.Text.Lazy.Encoding (decodeUtf8', encodeUtf8)
233import qualified Data.Text.Internal.Functions as F
233import qualified Data.Text.Internal.Functions as F
234import Data.Text.Internal.Lazy.Search (indices)
234import Data.Text.Internal.Lazy.Search (indices)
235#if __GLASGOW_HASKELL__ >= 702
235#if __GLASGOW_HASKELL__ >= 702
@@ -376,7 +376,11 @@ instance NFData Text where
377instance Binary Text where
377instance Binary Text where
378 put t = put (encodeUtf8 t)
378 put t = put (encodeUtf8 t)
379− get = P.fmap decodeUtf8 get
381+ case decodeUtf8' bs of
382+ P.Left exn -> P.fail (P.show exn)
383+ P.Right a -> P.return a
381-- | This instance preserves data abstraction at the cost of inefficiency.
385-- | This instance preserves data abstraction at the cost of inefficiency.
382-- We omit reflection services for the sake of data abstraction.
386-- We omit reflection services for the sake of data abstraction.