More bangs to avoid LiberateCase
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 24 May 2010 03:41:56 +0000 (03:41 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Mon, 24 May 2010 03:41:56 +0000 (03:41 +0000)
Data/Vector/Generic/Base.hs
Data/Vector/Generic/Mutable.hs

index 9596d51..13ffe9b 100644 (file)
@@ -1,5 +1,5 @@
 {-# LANGUAGE Rank2Types, MultiParamTypeClasses, FlexibleContexts,
-             TypeFamilies, ScopedTypeVariables #-}
+             TypeFamilies, ScopedTypeVariables, BangPatterns #-}
 {-# OPTIONS_HADDOCK hide #-}
 
 -- |
@@ -104,9 +104,9 @@ class MVector (Mutable v) a => Vector v a where
   basicUnsafeCopy :: PrimMonad m => Mutable v (PrimState m) a -> v a -> m ()
 
   {-# INLINE basicUnsafeCopy #-}
-  basicUnsafeCopy dst src = do_copy 0
+  basicUnsafeCopy !dst !src = do_copy 0
     where
-      n = basicLength src
+      !n = basicLength src
 
       do_copy i | i < n = do
                             x <- basicUnsafeIndexM src i
index bf00b10..5b66efa 100644 (file)
@@ -144,9 +144,9 @@ class MVector v a where
   basicClear _ = return ()
 
   {-# INLINE basicSet #-}
-  basicSet v x = do_set 0
+  basicSet !v x = do_set 0
     where
-      n = basicLength v
+      !n = basicLength v
 
       do_set i | i < n = do
                            basicUnsafeWrite v i x
@@ -154,9 +154,9 @@ class MVector v a where
                 | otherwise = return ()
 
   {-# INLINE basicUnsafeCopy #-}
-  basicUnsafeCopy dst src = do_copy 0
+  basicUnsafeCopy !dst !src = do_copy 0
     where
-      n = basicLength src
+      !n = basicLength src
 
       do_copy i | i < n = do
                             x <- basicUnsafeRead src i