Repository : ssh://darcs.haskell.org//srv/darcs/packages/containers

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/f430a6988de8cb63285e9802778fa5ca5d6d8a3e

>---------------------------------------------------------------

commit f430a6988de8cb63285e9802778fa5ca5d6d8a3e
Author: Johan Tibell <[email protected]>
Date:   Thu Nov 17 16:50:22 2011 -0800

    Data.M.Strict.fromDistinctAscList wasn't sufficiently strict

>---------------------------------------------------------------

 Data/Map/Strict.hs |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Data/Map/Strict.hs b/Data/Map/Strict.hs
index ba6dc40..dfd023e 100644
--- a/Data/Map/Strict.hs
+++ b/Data/Map/Strict.hs
@@ -1130,7 +1130,7 @@ fromDistinctAscList xs
     -- 2) special case for n==5 to build bushier trees. 
     build c 0 xs'  = c Tip xs'
     build c 5 xs'  = case xs' of
-                       ((k1,x1):(k2,x2):(k3,x3):(k4,x4):(k5,x5):xx) 
+                       ((k1,!x1):(k2,!x2):(k3,!x3):(k4,!x4):(k5,!x5):xx) 
                             -> c (bin k4 x4 (bin k2 x2 (singleton k1 x1) 
(singleton k3 x3)) (singleton k5 x5)) xx
                        _ -> error "fromDistinctAscList build"
     build c n xs'  = seq nr $ build (buildR nr c) nl xs'
@@ -1138,9 +1138,9 @@ fromDistinctAscList xs
                      nl = n `div` 2
                      nr = n - nl - 1
 
-    buildR n c l ((k,x):ys) = build (buildB l k x c) n ys
-    buildR _ _ _ []         = error "fromDistinctAscList buildR []"
-    buildB l k x c r zs     = c (bin k x l r) zs
+    buildR n c l ((k,!x):ys) = build (buildB l k x c) n ys
+    buildR _ _ _ []          = error "fromDistinctAscList buildR []"
+    buildB l k !x c r zs     = c (bin k x l r) zs
 #if __GLASGOW_HASKELL__ >= 700
 {-# INLINABLE fromDistinctAscList #-}
 #endif



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to