X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Flib%2Fstd%2FArray.lhs;h=5ff36c9748aba8346032dbdee2555a52777c28d0;hb=e921b2e307532e0f30eefa88b11a124be592bde4;hp=e703494642c6c1727cacefc785cd988260d53441;hpb=f7989a6dea8c43352f363117d9bb07439953ccdc;p=ghc-hetmet.git diff --git a/ghc/lib/std/Array.lhs b/ghc/lib/std/Array.lhs index e703494..5ff36c9 100644 --- a/ghc/lib/std/Array.lhs +++ b/ghc/lib/std/Array.lhs @@ -63,33 +63,15 @@ infixl 9 !, // \begin{code} -#ifdef USE_FOLDR_BUILD -{-# INLINE indices #-} -{-# INLINE elems #-} -{-# INLINE assocs #-} -#endif {-# SPECIALISE listArray :: (Int,Int) -> [b] -> Array Int b #-} listArray :: (Ix a) => (a,a) -> [b] -> Array a b listArray b vs = array b (zip (range b) vs) -{-# SPECIALISE indices :: Array Int b -> [Int] #-} -indices :: (Ix a) => Array a b -> [a] -indices = range . bounds - -{-# SPECIALISE elems :: Array Int b -> [b] #-} +{-# INLINE elems #-} elems :: (Ix a) => Array a b -> [b] elems a = [a!i | i <- indices a] -{-# SPECIALISE assocs :: Array Int b -> [(Int,b)] #-} -assocs :: (Ix a) => Array a b -> [(a,b)] -assocs a = [(i, a!i) | i <- indices a] - -{-# SPECIALISE amap :: (b -> c) -> Array Int b -> Array Int c #-} -amap :: (Ix a) => (b -> c) -> Array a b -> Array a c -amap f a = array b [(i, f (a!i)) | i <- range b] - where b = bounds a - ixmap :: (Ix a, Ix b) => (a,a) -> (a -> b) -> Array b c -> Array a c ixmap b f a = array b [(i, a ! f i) | i <- range b] \end{code} @@ -101,34 +83,6 @@ ixmap b f a = array b [(i, a ! f i) | i <- range b] %* * %********************************************************* -\begin{code} -instance Ix a => Functor (Array a) where - fmap = amap - -instance (Ix a, Eq b) => Eq (Array a b) where - a == a' = assocs a == assocs a' - a /= a' = assocs a /= assocs a' - -instance (Ix a, Ord b) => Ord (Array a b) where - compare a b = compare (assocs a) (assocs b) - -instance (Ix a, Show a, Show b) => Show (Array a b) where - showsPrec p a = showParen (p > 9) ( - showString "array " . - shows (bounds a) . showChar ' ' . - shows (assocs a) ) - showList = showList__ (showsPrec 0) - -{- -instance (Ix a, Read a, Read b) => Read (Array a b) where - readsPrec p = readParen (p > 9) - (\r -> [(array b as, u) | ("array",s) <- lex r, - (b,t) <- reads s, - (as,u) <- reads t ]) - readList = readList__ (readsPrec 0) --} -\end{code} - #else \begin{code}