diff --git a/Data/Array/Base.hs b/Data/Array/Base.hs index 6aa1a4f5d96a65ac1d1dc389489075899f0375c8..b3916a4faca4a42325e7174b2f99ef18aa5c6267 100644 --- a/Data/Array/Base.hs +++ b/Data/Array/Base.hs @@ -1115,6 +1115,10 @@ data STUArray s i a = STUArray !i !i !Int !(MutableByteArray s) INSTANCE_TYPEABLE3(STUArray,stUArrayTc,"STUArray") +instance Eq (STUArray s i e) where + STUArray _ _ _ arr1# == STUArray _ _ _ arr2# = + sameMutableByteArray# arr1# arr2# + #ifdef __GLASGOW_HASKELL__ {-# INLINE unsafeNewArraySTUArray_ #-} unsafeNewArraySTUArray_ :: Ix i diff --git a/Data/Array/IO/Internals.hs b/Data/Array/IO/Internals.hs index 0b79b0769a55d479bf012f1064634a39ac01471f..1827ea74a9069341978327694ed6d93da1b896ad 100644 --- a/Data/Array/IO/Internals.hs +++ b/Data/Array/IO/Internals.hs @@ -77,6 +77,9 @@ newtype IOUArray i e = IOUArray (STUArray RealWorld i e) INSTANCE_TYPEABLE2(IOUArray,iOUArrayTc,"IOUArray") +instance Eq (IOUArray i e) where + IOUArray s1 == IOUArray s2 = s1 == s2 + instance MArray IOUArray Bool IO where {-# INLINE getBounds #-} getBounds (IOUArray arr) = stToIO $ getBounds arr