import GHC.Exts (build)
#endif
+#if defined(__GLASGOW_HASKELL__)
+import GHC.Arr
+#elif defined(__HUGS__)
+import Hugs.Array
+#endif
+
-- | Data structures that can be folded.
--
-- Minimal complete definition: 'foldMap' or 'foldr'.
foldr1 = Prelude.foldr1
foldl1 = Prelude.foldl1
+#ifndef __NHC__
+instance Ix i => Foldable (Array i) where
+ foldr f z = Prelude.foldr f z . elems
+#endif
+
-- | Fold over the elements of a structure,
-- associating to the right, but strictly.
foldr' :: Foldable t => (a -> b -> b) -> b -> t a -> b