X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FArray%2FBase.hs;h=6864362d2481d608e9214f12e888d7a973dfa020;hb=6d89a2fe861274e66e6fa0a5cdd48b1161b33b75;hp=61e89e446a0c985ae487adebddd6bb139f885142;hpb=801734dc5a41c57659f90cadb6c2c986b304e9f0;p=ghc-base.git diff --git a/Data/Array/Base.hs b/Data/Array/Base.hs index 61e89e4..6864362 100644 --- a/Data/Array/Base.hs +++ b/Data/Array/Base.hs @@ -546,19 +546,22 @@ instance IArray UArray Int where {-# INLINE unsafeAccumArray #-} unsafeAccumArray f init lu ies = runST (unsafeAccumArrayUArray f init lu ies) -#ifdef __GLASGOW_HASKELL__ instance IArray UArray Word where {-# INLINE unsafeArray #-} unsafeArray lu ies = runST (unsafeArrayUArray lu ies 0) +#ifdef __GLASGOW_HASKELL__ {-# INLINE unsafeAt #-} unsafeAt (UArray _ _ arr#) (I# i#) = W# (indexWordArray# arr# i#) +#endif +#ifdef __HUGS__ + unsafeAt = unsafeAtBArray +#endif {-# INLINE unsafeReplace #-} unsafeReplace arr ies = runST (unsafeReplaceUArray arr ies) {-# INLINE unsafeAccum #-} unsafeAccum f arr ies = runST (unsafeAccumUArray f arr ies) {-# INLINE unsafeAccumArray #-} unsafeAccumArray f init lu ies = runST (unsafeAccumArrayUArray f init lu ies) -#endif instance IArray UArray (Ptr a) where {-# INLINE unsafeArray #-} @@ -798,10 +801,8 @@ instance Ix ix => Eq (UArray ix Char) where instance Ix ix => Eq (UArray ix Int) where (==) = eqUArray -#ifdef __GLASGOW_HASKELL__ instance Ix ix => Eq (UArray ix Word) where (==) = eqUArray -#endif instance Ix ix => Eq (UArray ix (Ptr a)) where (==) = eqUArray @@ -853,10 +854,8 @@ instance Ix ix => Ord (UArray ix Char) where instance Ix ix => Ord (UArray ix Int) where compare = cmpUArray -#ifdef __GLASGOW_HASKELL__ instance Ix ix => Ord (UArray ix Word) where compare = cmpUArray -#endif instance Ix ix => Ord (UArray ix (Ptr a)) where compare = cmpUArray @@ -903,10 +902,8 @@ instance (Ix ix, Show ix) => Show (UArray ix Char) where instance (Ix ix, Show ix) => Show (UArray ix Int) where showsPrec = showsIArray -#ifdef __GLASGOW_HASKELL__ instance (Ix ix, Show ix) => Show (UArray ix Word) where showsPrec = showsIArray -#endif instance (Ix ix, Show ix) => Show (UArray ix Float) where showsPrec = showsIArray @@ -1074,10 +1071,9 @@ instance MArray (STArray s) e (ST s) where {-# INLINE unsafeWrite #-} unsafeWrite = ArrST.unsafeWriteSTArray ------------------------------------------------------------------------------ --- Typeable instance for STArray - +#ifdef __HUGS__ INSTANCE_TYPEABLE3(STArray,sTArrayTc,"STArray") +#endif ----------------------------------------------------------------------------- -- Flat unboxed mutable arrays (ST monad) @@ -1450,6 +1446,11 @@ instance MArray (STUArray s) Int (ST s) where unsafeRead = unsafeReadMBArray unsafeWrite = unsafeWriteMBArray +instance MArray (STUArray s) Word (ST s) where + newArray_ = newMBArray_ + unsafeRead = unsafeReadMBArray + unsafeWrite = unsafeWriteMBArray + instance MArray (STUArray s) (Ptr a) (ST s) where newArray_ = newMBArray_ unsafeRead = unsafeReadMBArray