summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-06-24 12:08:32 +0000
committerkrasimir <krasimir@chalmers.se>2009-06-24 12:08:32 +0000
commitf20dd0ba4a3a073cd82c27690afcd6b9d8c66bae (patch)
treebdb0601248c441e061bb412bd3913119d8b7b2d6 /src
parentf81a309eb1a96e6161c6bef59e397cc95aca6a7b (diff)
make the Functor Get instance in Data.Binary strict to be sure that the decoder is strict
Diffstat (limited to 'src')
-rw-r--r--src/Data/Binary/Get.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/Data/Binary/Get.hs b/src/Data/Binary/Get.hs
index bdc07d985..4b5625359 100644
--- a/src/Data/Binary/Get.hs
+++ b/src/Data/Binary/Get.hs
@@ -108,8 +108,8 @@ data S = S {-# UNPACK #-} !B.ByteString -- current chunk
newtype Get a = Get { unGet :: S -> (a, S) }
instance Functor Get where
- fmap f m = Get (\s -> let (a, s') = unGet m s
- in (f a, s'))
+ fmap f m = Get (\s -> case unGet m s of
+ (a, s') -> (f a, s'))
{-# INLINE fmap #-}
#ifdef APPLICATIVE_IN_BASE