diff --git a/libraries/base/GHC/IORef.hs b/libraries/base/GHC/IORef.hs index 0736567975f7d36eed7f7a1b4dbf4948bafb7f05..0832be04cfe78426a3ffd8bc009d135341548d07 100644 --- a/libraries/base/GHC/IORef.hs +++ b/libraries/base/GHC/IORef.hs @@ -31,11 +31,10 @@ import GHC.IO -- |A mutable variable in the 'IO' monad newtype IORef a = IORef (STRef RealWorld a) - --- explicit instance because Haddock can't figure out a derived one --- | @since 4.1.0.0 -instance Eq (IORef a) where - IORef x == IORef y = x == y + deriving Eq + -- ^ Pointer equality. + -- + -- @since 4.1.0.0 -- |Build a new 'IORef' newIORef :: a -> IO (IORef a) diff --git a/libraries/base/GHC/STRef.hs b/libraries/base/GHC/STRef.hs index 22db7f32db63b0a1f680f5499b6c709ed58acbe6..a6e4292ddbe75c59335ef941a1edbba235604675 100644 --- a/libraries/base/GHC/STRef.hs +++ b/libraries/base/GHC/STRef.hs @@ -44,7 +44,8 @@ writeSTRef (STRef var#) val = ST $ \s1# -> case writeMutVar# var# val s1# of { s2# -> (# s2#, () #) } --- Just pointer equality on mutable references: --- | @since 2.01 +-- | Pointer equality. +-- +-- @since 2.01 instance Eq (STRef s a) where STRef v1# == STRef v2# = isTrue# (sameMutVar# v1# v2#)