diff options
| author | krasimir <krasimir@chalmers.se> | 2009-06-24 12:08:32 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-06-24 12:08:32 +0000 |
| commit | f20dd0ba4a3a073cd82c27690afcd6b9d8c66bae (patch) | |
| tree | bdb0601248c441e061bb412bd3913119d8b7b2d6 /src/Data | |
| parent | f81a309eb1a96e6161c6bef59e397cc95aca6a7b (diff) | |
make the Functor Get instance in Data.Binary strict to be sure that the decoder is strict
Diffstat (limited to 'src/Data')
| -rw-r--r-- | src/Data/Binary/Get.hs | 4 |
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 |
