instance Eq Box, MVAR_DIRTY, MUT_VAR_DIRTY
authordennis <dennis@felsin9.de>
Mon, 30 Apr 2012 19:29:31 +0000 (19:29 +0000)
committerdennis <dennis@felsin9.de>
Mon, 30 Apr 2012 19:29:31 +0000 (19:29 +0000)
src/GHC/HeapView.hs

index cc20f8f..e8f0506 100644 (file)
@@ -24,12 +24,13 @@ module GHC.HeapView (
     -- * Boxes
     Box(..),
     asBox,
-    aToWord#
     )
     where
 
 import GHC.Exts
-import GHC.Arr (Array(..))
+import GHC.Prim 
+import System.Environment
+import GHC.Arr ((!), Array(..), elems)
 
 import GHC.Constants ( wORD_SIZE, tAG_MASK, wORD_SIZE_IN_BITS )
 
@@ -58,6 +59,11 @@ instance Show Box where
        pad_out ls = 
           '0':'x':(replicate (2*wORD_SIZE - length ls) '0') ++ ls
 
+instance Eq Box where
+  Box a == Box b = case reallyUnsafePtrEquality# a b of
+    1# -> True
+    _  -> False
+
 {-|
   This takes an arbitrary value and puts it into a box. Note that calls like