From 388384b67e84b70862eb83ecc86ff5efd1d80817 Mon Sep 17 00:00:00 2001 From: Simon Marlow <simonmar@microsoft.com> Date: Tue, 23 Oct 2007 13:24:47 +0000 Subject: [PATCH] FIX #1270: add Eq instances for STUArray and IOUArray --- Data/Array/Base.hs | 4 ++++ Data/Array/IO/Internals.hs | 3 +++ 2 files changed, 7 insertions(+) diff --git a/Data/Array/Base.hs b/Data/Array/Base.hs index 6aa1a4f5..b3916a4f 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 0b79b076..1827ea74 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 -- GitLab