nhc only: expose Foldable and Traversable instances of Array
authorRoss Paterson <ross@soi.city.ac.uk>
Sun, 17 Aug 2008 00:27:19 +0000 (00:27 +0000)
committerRoss Paterson <ross@soi.city.ac.uk>
Sun, 17 Aug 2008 00:27:19 +0000 (00:27 +0000)
These were turned off as a side-effect of a previous nhc-only fix for
#2176 that is no longer needed.  They should be fine for nhc now.

Data/Foldable.hs
Data/Traversable.hs

index 9d5502c..eaf0ab6 100644 (file)
@@ -76,6 +76,8 @@ import GHC.Exts (build)
 import GHC.Arr
 #elif defined(__HUGS__)
 import Hugs.Array
+#elif defined(__NHC__)
+import Array
 #endif
 
 -- | Data structures that can be folded.
@@ -153,10 +155,8 @@ instance Foldable [] where
         foldr1 = Prelude.foldr1
         foldl1 = Prelude.foldl1
 
-#ifndef __NHC__
 instance Ix i => Foldable (Array i) where
-    foldr f z = Prelude.foldr f z . elems
-#endif
+        foldr f z = Prelude.foldr f z . elems
 
 -- | Fold over the elements of a structure,
 -- associating to the right, but strictly.
index df10679..969e720 100644 (file)
@@ -47,6 +47,8 @@ import Data.Monoid (Monoid)
 import GHC.Arr
 #elif defined(__HUGS__)
 import Hugs.Array
+#elif defined(__NHC__)
+import Array
 #endif
 
 -- | Functors representing data structures that can be traversed from
@@ -110,10 +112,8 @@ instance Traversable [] where
 
         mapM = Prelude.mapM
 
-#ifndef __NHC__
 instance Ix i => Traversable (Array i) where
-    traverse f arr = listArray (bounds arr) `fmap` traverse f (elems arr)
-#endif
+        traverse f arr = listArray (bounds arr) `fmap` traverse f (elems arr)
 
 -- general functions