Merge pull request #75 from treeowl/coerce-version
authorMilan Straka <fox@ucw.cz>
Fri, 21 Nov 2014 17:50:11 +0000 (18:50 +0100)
committerMilan Straka <fox@ucw.cz>
Fri, 21 Nov 2014 17:50:11 +0000 (18:50 +0100)
Use GHC version for coercion rules

Data/Map/Base.hs
Data/Map/Strict.hs
Data/Sequence.hs

index 3911125..e582e16 100644 (file)
@@ -294,7 +294,7 @@ import qualified GHC.Exts as GHCExts
 import Text.Read
 import Data.Data
 #endif
-#if MIN_VERSION_base(4,8,0)
+#if __GLASGOW_HASKELL__ >= 709
 import Data.Coerce
 #endif
 
@@ -1668,9 +1668,8 @@ map f (Bin sx kx x l r) = Bin sx kx (f x) (map f l) (map f r)
 "map/map" forall f g xs . map f (map g xs) = map (f . g) xs
  #-}
 #endif
-#if MIN_VERSION_base(4,8,0)
--- Safe coercions were introduced in 4.7.0, but I am not sure if they played
--- well enough with RULES to do what we want.
+#if __GLASGOW_HASKELL__ >= 709
+-- Safe coercions were introduced in 7.8, but did not work well with RULES yet.
 {-# RULES
 "map/coerce" map coerce = coerce
  #-}
index 6255e91..88f494e 100644 (file)
@@ -279,7 +279,7 @@ import Data.Utils.StrictFold
 import Data.Utils.StrictPair
 
 import Data.Bits (shiftL, shiftR)
-#if MIN_VERSION_base(4,8,0)
+#if __GLASGOW_HASKELL__ >= 709
 import Data.Coerce
 #endif
 
@@ -941,9 +941,8 @@ map f (Bin sx kx x l r) = let x' = f x in x' `seq` Bin sx kx x' (map f l) (map f
 "map/map" forall f g xs . map f (map g xs) = map (f . g) xs
  #-}
 #endif
-#if MIN_VERSION_base(4,8,0)
--- Safe coercions were introduced in 4.7.0, but I am not sure if they played
--- well enough with RULES to do what we want.
+#if __GLASGOW_HASKELL__ >= 709
+-- Safe coercions were introduced in 7.8, but did not work well with RULES yet.
 {-# RULES
 "mapSeq/coerce" map coerce = coerce
  #-}
index 331ac30..4799056 100644 (file)
@@ -165,7 +165,7 @@ import Text.Read (Lexeme(Ident), lexP, parens, prec,
     readPrec, readListPrec, readListPrecDefault)
 import Data.Data
 #endif
-#if MIN_VERSION_base(4,8,0)
+#if __GLASGOW_HASKELL__ >= 709
 import Data.Coerce
 #endif
 
@@ -197,9 +197,8 @@ fmapSeq f (Seq xs) = Seq (fmap (fmap f) xs)
 "fmapSeq/fmapSeq" forall f g xs . fmapSeq f (fmapSeq g xs) = fmapSeq (f . g) xs
  #-}
 #endif
-#if MIN_VERSION_base(4,8,0)
--- Safe coercions were introduced in 4.7.0, but I am not sure if they played
--- well enough with RULES to do what we want.
+#if __GLASGOW_HASKELL__ >= 709
+-- Safe coercions were introduced in 7.8, but did not work well with RULES yet.
 {-# RULES
 "fmapSeq/coerce" fmapSeq coerce = coerce
  #-}