diff --git a/Data/Interned/URI.hs b/Data/Interned/URI.hs
--- a/Data/Interned/URI.hs
+++ b/Data/Interned/URI.hs
@@ -56,8 +56,8 @@
 instance Uninternable InternedURI where
   unintern (InternedURI _ b) = b 
 
--- Rather than be clever, use the reverse of the string
--- representation of the URI
+-- Rather than access the URI components, just use the reverse of the
+-- string representation of the URI.
 instance Hashable (Description InternedURI) where
   hash = hashWithSalt 5381 -- use the stringSalt value from Data.Hashable
   hashWithSalt salt (DU u) = hashWithSalt salt ((reverse . show) u)
diff --git a/Swish/RDF/GraphClass.hs b/Swish/RDF/GraphClass.hs
--- a/Swish/RDF/GraphClass.hs
+++ b/Swish/RDF/GraphClass.hs
@@ -34,6 +34,8 @@
 import qualified Data.Foldable as F
 import qualified Data.Traversable as T
 
+import Data.Hashable (Hashable(..))
+
 import Data.List (foldl', union, (\\))
 
 --  NOTE:  I wanted to declare this as a subclass of Functor, but
@@ -132,6 +134,10 @@
     
   -- | Calculate the hash of the label using the supplied seed.
   labelHash   :: Int -> lb -> Int     
+  
+  -- could provide a default of 
+  --   labelHash = hashWithSalt
+  -- but this would then force a Hashable constraint
     
   -- | Extract the local id from a variable node.                 
   getLocal    :: lb -> String
@@ -150,6 +156,10 @@
               , aobj :: lb   -- ^ The object of the arc.
               }
             deriving (Eq, Functor, F.Foldable, T.Traversable)
+
+instance (Hashable lb) => Hashable (Arc lb) where
+  hash (Arc s p o) = hash s `hashWithSalt` p `hashWithSalt` o
+  hashWithSalt salt (Arc s p o) = salt `hashWithSalt` s `hashWithSalt` p `hashWithSalt` o
 
 -- | Return the subject of the arc.
 arcSubj :: Arc lb -> lb
diff --git a/Swish/RDF/GraphMatch.hs b/Swish/RDF/GraphMatch.hs
--- a/Swish/RDF/GraphMatch.hs
+++ b/Swish/RDF/GraphMatch.hs
@@ -34,19 +34,20 @@
       ) where
 
 import Control.Exception.Base (assert)
+import Control.Arrow (second)
 
 import Data.Ord (comparing)
 import Data.List (foldl', nub, sortBy, partition)
-import qualified Data.List
+import Data.Hashable (combine)
+import qualified Data.List as L
 
 import Swish.RDF.GraphClass (Arc(..), Label(..),
-                             arc, arcSubj, arcPred, arcObj, arcLabels,
+                             arcLabels,
                              hasLabel, arcToTriple)
 import Swish.Utils.LookupMap (LookupEntryClass(..), LookupMap(..),
                               makeLookupMap, listLookupMap, mapFind, mapReplaceAll,
                               mapAddIfNew, mapReplaceMap, mapMerge)
 import Swish.Utils.ListHelpers (select, equiv, pairSort, pairGroup, pairUngroup)
-import Swish.Utils.MiscHelpers (hash, hashModulus)
 
 --------------------------
 --  Label index value type
@@ -129,7 +130,7 @@
 -}
 
 ecRemoveLabel :: (Label lb) => EquivalenceClass lb -> lb -> EquivalenceClass lb
-ecRemoveLabel (lv,ls) l = (lv,Data.List.delete l ls)
+ecRemoveLabel xs l = second (L.delete l) xs
 
 ------------------------------------------------------------
 --  Augmented graph label value - for graph matching
@@ -152,16 +153,14 @@
 makeScopedLabel = ScopedLabel 
 
 makeScopedArc :: (Label lb) => Int -> Arc lb -> Arc (ScopedLabel lb)
-makeScopedArc scope a1 = arc (s arcSubj a1) (s arcPred a1) (s arcObj a1)
-    where
-        s f a = ScopedLabel scope (f a)
+makeScopedArc scope = fmap (ScopedLabel scope)
 
 instance (Label lb) => Label (ScopedLabel lb) where
     getLocal  lab    = error $ "getLocal for ScopedLabel: "++show lab
     makeLabel locnam = error $ "makeLabel for ScopedLabel: "++locnam
     labelIsVar (ScopedLabel _ lab)   = labelIsVar lab
     labelHash seed (ScopedLabel scope lab)
-        | labelIsVar lab    = hash seed $ show scope ++ "???"
+        | labelIsVar lab    = seed `combine` scope -- MH.hash seed $ show scope ++ "???"
         | otherwise         = labelHash seed lab
 
 instance (Label lb) => Eq (ScopedLabel lb) where
@@ -363,6 +362,13 @@
         assert (ev1==ev2) -- "GraphMatch2: Equivalence class value mismatch" $
         $ try glp
 
+-- this was in Swish.Utils.MiscHelpers along with a simple hash-based function
+-- based on Sedgewick, Algorithms in C, p233. As we have now moved to using
+-- Data.Hashable it is not clear whether this is still necessary or sensible.
+--
+hashModulus :: Int
+hashModulus = 16000001
+
 -- | Returns a string representation  of a LabelMap value
 --
 showLabelMap :: (Label lb) => LabelMap lb -> String
@@ -391,8 +397,8 @@
 --  resulting label map is incremented.
 --
 newLabelMap :: (Label lb) => LabelMap lb -> [(lb,Int)] -> LabelMap lb
-newLabelMap (LabelMap g f) [] = LabelMap (g+1) f -- new generation
-newLabelMap lmap (lv:lvs)     = setLabelHash (newLabelMap lmap lvs) lv
+newLabelMap lmap []       = newGenerationMap lmap
+newLabelMap lmap (lv:lvs) = setLabelHash (newLabelMap lmap lvs) lv
 
 -- | Replace a label and its associated value in a label map
 --  with a new value using the supplied hash value and the current
@@ -437,7 +443,8 @@
 
 hashVal :: (Label lb) => Int -> lb -> Int
 hashVal seed lab =
-    if labelIsVar lab then hash seed "???" else labelHash seed lab
+  if labelIsVar lab then seed `combine` 23 else labelHash seed lab
+  -- if labelIsVar lab then hash seed "???" else labelHash seed lab
 
 equivalenceClasses :: 
   (Label lb) 
@@ -502,16 +509,18 @@
         LabelMap gen2 lm2 =
             remapLabels gs2 lmap $ foldl1 (++) $ map (ecLabels . snd) ecpairs
         lm' = mapReplaceMap lm $ mapMerge lm1 lm2
+        
+        tmap f (a,b) = (f a, f b)
+        
         -- ecGroups :: [([EquivalenceClass lb],[EquivalenceClass lb])]
-        ecGroups  = [ (remapEc ec1,remapEc ec2) | (ec1,ec2) <- ecpairs ]
+        ecGroups  = map (tmap remapEc) ecpairs
         ecpairs'  = concatMap (uncurry zip) ecGroups
         newPart   = any pairG1 lenGroups
         matchPart = all pairEq lenGroups
-        lenGroups = map subLength ecGroups
-        pairEq (p1,p2) = p1 == p2
+        lenGroups = map (tmap length) ecGroups
+        pairEq = uncurry (==)
         pairG1 (p1,p2) = p1 > 1 || p2 > 1
-        subLength (ls1,ls2) = (length ls1,length ls2)
-        remapEc ec = pairGroup $ map (newIndex lm') $ pairUngroup ec
+        remapEc = pairGroup . map (newIndex lm') . pairUngroup 
         newIndex x (_,lab) = (mapFind nullLabelVal lab x,lab)
 
 -- | Calculate a new index value for a supplied list of labels based on the
@@ -534,7 +543,8 @@
         newIndex l
             | labelIsVar l  = mapAdjacent l     -- adjacency classifies variable labels
             | otherwise     = hashVal gen l     -- otherwise rehash (to disentangle collisions)
-        mapAdjacent l       = sum (sigsOver l) `rem` hashModulus
+        -- mapAdjacent l       = sum (sigsOver l) `rem` hashModulus
+        mapAdjacent l       = sum (sigsOver l) `combine` hashModulus -- is this a sensible replacement for `rem` MH.hashModulus        
         sigsOver l          = select (hasLabel l) gs (arcSignatures lmap gs)
 
 -- | Return list of distinct labels used in a graph
@@ -557,7 +567,10 @@
         sigCalc (s,p,o)  =
             ( labelVal2 s +
               labelVal2 p * 3 +
-              labelVal2 o * 5 ) `rem` hashModulus
+              labelVal2 o * 5 )
+            `combine` hashModulus
+            -- `rem` hashModulus
+          
         labelVal         = mapLabelIndex lmap
         labelVal2        = uncurry (*) . labelVal
 
diff --git a/Swish/RDF/GraphMem.hs b/Swish/RDF/GraphMem.hs
--- a/Swish/RDF/GraphMem.hs
+++ b/Swish/RDF/GraphMem.hs
@@ -32,9 +32,9 @@
 
 import Swish.RDF.GraphClass
 import Swish.RDF.GraphMatch
-import Swish.Utils.MiscHelpers
-    ( hash )
+-- import Swish.Utils.MiscHelpers (hash)
 
+import Data.Hashable (Hashable(..), combine)
 import Data.Ord (comparing)
 
 import qualified Data.Foldable as F
@@ -114,13 +114,20 @@
     = LF String
     | LV String
 
+instance Hashable LabelMem where
+  hash (LF l) = 1 `hashWithSalt` l
+  hash (LV l) = 2 `hashWithSalt` l
+  hashWithSalt salt (LF l) = salt `combine` 1 `hashWithSalt` l
+  hashWithSalt salt (LV l) = salt `combine` 2 `hashWithSalt` l
+
 instance Label LabelMem where
     labelIsVar (LV _)   = True
     labelIsVar _        = False
     getLocal   (LV loc) = loc
     getLocal   lab      = error "getLocal of non-variable label: " ++ show lab
     makeLabel           = LV 
-    labelHash  seed lb  = hash seed (show lb)
+    -- labelHash  seed lb  = hash seed (show lb)
+    labelHash = hashWithSalt
 
 instance Eq LabelMem where
     (LF l1) == (LF l2)  = l1 == l2
diff --git a/Swish/Utils/MiscHelpers.hs b/Swish/Utils/MiscHelpers.hs
--- a/Swish/Utils/MiscHelpers.hs
+++ b/Swish/Utils/MiscHelpers.hs
@@ -13,12 +13,14 @@
 --  This module defines a random set of helper functions
 --  used by the graph handling code.
 --
+--  This module is *deprecated* and will be removed at the next possible
+--  release.
+--
 --------------------------------------------------------------------------------
 
 module Swish.Utils.MiscHelpers
-      ( hash -- RDFGraph, GraphMem, GraphMatch
-      , hashModulus -- GraphMatch
-      
+      ( hash
+      , hashModulus
       )
 where
 
diff --git a/Swish/Utils/QName.hs b/Swish/Utils/QName.hs
--- a/Swish/Utils/QName.hs
+++ b/Swish/Utils/QName.hs
@@ -69,11 +69,13 @@
 instance IsString QName where
   fromString = qnameFromString
                
+-- | Equality is determined by a case sensitive comparison of the               
+-- URI.
 instance Eq QName where
   -- see qnEq comments below
   (QName u1 _ _) == (QName u2 _ _) = u1 == u2
 
--- ugly, use show instance
+-- ugly, use show instance OR switch to the ordering of InternedURI
     
 instance Ord QName where
   {-
@@ -104,7 +106,7 @@
         (up2,ur2) = splitAt n u2
   -}
   
--- The format of show QName may well change to remove the <>
+-- | The format used to display the URI is @<uri>@.
 instance Show QName where
     show (QName u _ _) = "<" ++ show u ++ ">"
 
diff --git a/swish.cabal b/swish.cabal
--- a/swish.cabal
+++ b/swish.cabal
@@ -1,5 +1,5 @@
 Name:               swish
-Version:            0.6.0.0
+Version:            0.6.0.1
 Stability:          experimental
 License:            LGPL
 License-file:       LICENSE 
@@ -45,6 +45,9 @@
   * Complete, ready-to-run, command-line and script-driven programs.
   .
   Changes:
+  .
+  [Version 0.6.0.1] Moved to using hashing routine using the Data.Hashable
+  interface rather than Swish.Utils.MiscHelpers which is deprecated.
   .
   [Version 0.6.0.0] Add Data.Interned.URI and use it to speed up the QName
   equality check.
diff --git a/tests/GraphTest.hs b/tests/GraphTest.hs
--- a/tests/GraphTest.hs
+++ b/tests/GraphTest.hs
@@ -14,6 +14,13 @@
 --
 --------------------------------------------------------------------------------
 
+{- 
+
+Note: after changing the hash module the order and values of some
+of the tests; I have not checked that the new ordering makes sense.
+
+-}
+
 module Main where
 
 import qualified Data.Foldable as F
@@ -28,7 +35,6 @@
 import Data.Ord (comparing)
 
 import Swish.Utils.ListHelpers
-import Swish.Utils.MiscHelpers
 import Swish.RDF.GraphClass (Arc(..), LDGraph(..),
                              Label(..), arc,
                              arcFromTriple,arcToTriple)
@@ -140,25 +146,6 @@
     , testSubset "08" False [1,2,3]       []
     ]
 
--- hash
-
-testHash :: String -> Bool -> Int -> Int -> Test
-testHash lab eq h1 h2 = testeq ("Hash"++lab ) eq (h1 == h2)
-
-testHashEq :: String -> Int -> Int -> Test
-testHashEq lab = testeq ("Hash"++lab ) 
-
-testHashSuite :: Test
-testHashSuite = TestList
-    [ testHash "01" True  (hash 0 base1) (hash 0 base1)
-    , testHash "02" True  (hash 2 "")    (hash 2 "")
-    , testHash "03" False (hash 3 base1) (hash 3 base2)
-    , testHash "04" False (hash 4 base1) (hash 5 base1)
-    , testHash "05" False (hash 2 "")    (hash 3 "")
-    , testHashEq "06"     1424775        (hash 3 base1)
-    , testHashEq "07"     11801303       (hash 3 base2)
-    ]
-
 ------------------------------------------------------------
 --  Simple graph label tests
 ------------------------------------------------------------
@@ -170,10 +157,11 @@
     , testeq "Lab03" False (labelIsVar lab2f)
     , testeq "Lab04" True  (labelIsVar lab2v)
 
-    , testeq "Lab05"  3436883 (labelHash 1 lab1f)
-    , testeq "Lab06" 10955600 (labelHash 1 lab1v)
-    , testeq "Lab07"  3436884 (labelHash 1 lab2f)
-    , testeq "Lab08" 10955601 (labelHash 1 lab2v)
+    , testeq "Lab05" 39495998 (labelHash 1 lab1f)
+    , testeq "Lab06" 45349309 (labelHash 1 lab1v)
+    , testeq "Lab07" 39495997 (labelHash 1 lab2f)
+    , testeq "Lab08" 45349310 (labelHash 1 lab2v)
+    
 
     , testeq "Lab09" "!lab1" (show lab1f)
     , testeq "Lab10" "?lab1" (show lab1v)
@@ -662,23 +650,85 @@
 -- assignLabels :: (Label lb) => [lb] -> LabelMap lb -> LabelMap lb
 
 lmap5 :: LabelMap LabelMem
+{-
 lmap5 = tstLabelMap 2 [(s1,(1,142577)),(s2,(1,142578)),(s3,(1,142579)),
                        (p1,(1,142385)),(p2,(1,142386)),(p3,(1,142387)),
                        (o1,(1,142321)),(o2,(1,142322)),(o3,(1,142323)),
                        (l1,(1,142129)),(l4,(1,1709580)),(l10,(1,3766582)),
                        (b3,(1,262143)),(b4,(1,262143))]
-        
+-}
+
+bhash :: Int
+bhash = 23
+
+l1hash, l4hash, l10hash :: Int
+l1hash = 2524
+l4hash = -1302210307
+l10hash = 10836024  
+
+l1hash2, l4hash2, l10hash2 :: Int
+l1hash2 = 2524
+l4hash2 = -1302210307
+l10hash2 = 10836024  
+
+o1hash, o2hash, o3hash :: Int
+o1hash = 2623
+o2hash = 2620
+o3hash = 2621
+
+p1hash, p2hash, p3hash :: Int
+p1hash = 2624
+p2hash = 2627
+p3hash = 2626
+
+s1hash, s2hash, s3hash :: Int
+s1hash = 2723
+s2hash = 2720
+s3hash = 2721
+
+lmap5 = tstLabelMap 2 
+        [
+          (b4,(1,bhash)),
+          (b3,(1,bhash)),
+          (l10,(1,l10hash)),
+          (l4,(1,l4hash)),
+          (l1,(1,l1hash)),
+          (o3,(1,o3hash)),
+          (o2,(1,o2hash)),
+          (o1,(1,o1hash)),
+          (p3,(1,p3hash)),
+          (p2,(1,p2hash)),
+          (p1,(1,p1hash)),
+          (s3,(1,s3hash)),
+          (s2,(1,s2hash)),
+          (s1,(1,s1hash))
+        ]
+
 testAssignLabelMap05 :: Test        
 testAssignLabelMap05 = testeq "AssignLabels05" lmap5
                         (newGenerationMap $ assignLabelMap ls5 emptyMap)
 
 lmap6 :: LabelMap LabelMem
-lmap6 = tstLabelMap 2 [(s1,(1,142577)),(s2,(1,142578)),(s3,(1,142579)),
-                       (p1,(1,142385)),(p2,(1,142386)),(p3,(1,142387)),
-                       (o1,(1,142321)),(o2,(1,142322)),(o3,(1,142323)),
-                       (l1,(1,142129)),(l4,(1,1709580)),(l10,(1,3766582)),
-                       (b1,(2,262143)),(b2,(2,262143)),(b3,(1,262143)),(b4,(1,262143))]
-
+lmap6 = tstLabelMap 2
+        [
+          (b2,(2,bhash)),
+          (b1,(2,bhash)),
+          (b4,(1,bhash)),
+          (b3,(1,bhash)),
+          (l10,(1,l10hash)),
+          (l4,(1,l4hash)),
+          (l1,(1,l1hash)),
+          (o3,(1,o3hash)),
+          (o2,(1,o2hash)),
+          (o1,(1,o1hash)),
+          (p3,(1,p3hash)),
+          (p2,(1,p2hash)),
+          (p1,(1,p1hash)),
+          (s3,(1,s3hash)),
+          (s2,(1,s2hash)),
+          (s1,(1,s1hash))
+        ]
+        
 testAssignLabelMap06 :: Test
 testAssignLabelMap06 = testeq "AssignLabels06" lmap6 (assignLabelMap ls6 lmap5)
 
@@ -804,19 +854,42 @@
               assignLabelMap (graphLabels as61) emptyMap
 
 eq1ltst :: LabelMap (ScopedLabel LabelMem)
-eq1ltst     = tstLabelMap 2 [
-                             (s1_1,(1,142577)),(s2_1,(1,142578)),(s3_1,(1,142579)),
-                             (p1_1,(1,142385)),(p2_1,(1,142386)),(p3_1,(1,142387)),
-                             (o1_1,(1,142321)),(o2_1,(1,142322)),(o3_1,(1,142323)),
-                             (l1_1,(1,142129)),(l4_1,(1,1709580)),(l10_1,(1,3766582)),
-                             (b1_1,(1,262143)),(b2_1,(1,262143)),(b3_1,(1,262143)),(b4_1,(1,262143)),
-                             (s1_2,(1,142577)),(s2_2,(1,142578)),(s3_2,(1,142579)),
-                             (p1_2,(1,142385)),(p2_2,(1,142386)),(p3_2,(1,142387)),
-                             (o1_2,(1,142321)),(o2_2,(1,142322)),(o3_2,(1,142323)),
-                             (l1_2,(1,142129)),(l4_2,(1,1709580)),(l10_2,(1,3766582)),
-                             (b1_2,(1,262143)),(b2_2,(1,262143)),(b3_2,(1,262143)),(b4_2,(1,262143))
-                            ]
-              
+eq1ltst = tstLabelMap 2 
+          [
+            (b4_2,(1,bhash)),
+            (b3_2,(1,bhash)),
+            (p3_2,(1,p3hash)),
+            (b2_2,(1,bhash)),
+            (p2_2,(1,p2hash)),
+            (b1_2,(1,bhash)),
+            (l10_2,(1,l10hash)),
+            (l4_2,(1,l4hash)),
+            (l1_2,(1,l1hash)),
+            (o3_2,(1,o3hash)),
+            (s3_2,(1,s3hash)),
+            (o2_2,(1,o2hash)),
+            (s2_2,(1,s2hash)),
+            (o1_2,(1,o1hash)),
+            (p1_2,(1,p1hash)),
+            (s1_2,(1,s1hash)),
+            (b4_1,(1,bhash)),
+            (b3_1,(1,bhash)),
+            (p3_1,(1,p3hash)),
+            (b2_1,(1,bhash)),
+            (p2_1,(1,p2hash)),
+            (b1_1,(1,bhash)),
+            (l10_1,(1,l10hash)),
+            (l4_1,(1,l4hash)),
+            (l1_1,(1,l1hash)),
+            (o3_1,(1,o3hash)),
+            (s3_1,(1,s3hash)),
+            (o2_1,(1,o2hash)),
+            (s2_1,(1,s2hash)),
+            (o1_1,(1,o1hash)),
+            (p1_1,(1,p1hash)),
+            (s1_1,(1,s1hash))
+            ]
+          
 testEqAssignMap01 :: Test              
 testEqAssignMap01 = testeq "EqAssignMap01" eq1ltst eq1lmap
 
@@ -882,17 +955,38 @@
               assignLabelMap (graphLabels as41) emptyMap
               
 eq2ltst :: LabelMap (ScopedLabel LabelMem)
-eq2ltst     = tstLabelMap 2 [(s1_1,(1,142577)),(s2_1,(1,142578)),(s3_1,(1,142579)),
-                             (p1_1,(1,142385)),(p2_1,(1,142386)),(p3_1,(1,142387)),
-                             (o1_1,(1,142321)),(o2_1,(1,142322)),(o3_1,(1,142323)),
-                             (l1_1,(1,142129)),(l4_1,(1,1709580)),(l10_1,(1,3766582)),
-                             (b1_1,(1,262143)),(b2_1,(1,262143)),
-                             (s1_2,(1,142577)),(s2_2,(1,142578)),(s3_2,(1,142579)),
-                             (p1_2,(1,142385)),(p2_2,(1,142386)),(p3_2,(1,142387)),
-                             (o1_2,(1,142321)),(o2_2,(1,142322)),(o3_2,(1,142323)),
-                             (l1_2,(1,142129)),(l4_2,(1,1709580)),(l10_2,(1,3766582)),
-                             (b1_2,(1,262143)),(b2_2,(1,262143))]
-              
+eq2ltst = tstLabelMap 2
+          [
+            (p3_2,(1,p3hash)),
+            (b2_2,(1,bhash)),
+            (b1_2,(1,bhash)),
+            (p2_2,(1,p2hash)),
+            (l10_2,(1,l10hash)),
+            (l4_2,(1,l4hash)),
+            (l1_2,(1,l1hash)),
+            (o3_2,(1,o3hash)),
+            (s3_2,(1,s3hash)),
+            (o2_2,(1,o2hash)),
+            (s2_2,(1,s2hash)),
+            (o1_2,(1,o1hash)),
+            (p1_2,(1,p1hash)),
+            (s1_2,(1,s1hash)),
+            (p3_1,(1,p3hash)),
+            (b2_1,(1,bhash)),
+            (p2_1,(1,p2hash)),
+            (b1_1,(1,bhash)),
+            (l10_1,(1,l10hash)),
+            (l4_1,(1,l4hash)),
+            (l1_1,(1,l1hash)),
+            (o3_1,(1,o3hash)),
+            (s3_1,(1,s3hash)),
+            (o2_1,(1,o2hash)),
+            (s2_1,(1,s2hash)),
+            (o1_1,(1,o1hash)),
+            (p1_1,(1,p1hash)),
+            (s1_1,(1,s1hash))
+          ]
+
 testEqAssignMap21 :: Test
 testEqAssignMap21 = testeq "EqAssignMap21" eq2ltst eq2lmap
 
@@ -960,16 +1054,23 @@
               assignLabelMap (graphLabels as22) emptyMap
               
 eq3ltst :: LabelMap (ScopedLabel LabelMem)
-eq3ltst     = tstLabelMap 2
-    [ (s1_1,(1,142577))
-    , (p1_1,(1,142385))
-    , (o1_1,(1,142321))
-    , (s1_2,(1,142577)), (s2_2,(1,142578)), (s3_2,(1,142579))
-    , (p1_2,(1,142385))
-    , (o1_2,(1,142321)), (o2_2,(1,142322)), (o3_2,(1,142323))
-    , (l1_2,(1,142129)), (l4_2,(1,1709580)), (l10_2,(1,3766582))
+eq3ltst = tstLabelMap 2
+    [ 
+      (o1_1,(1,o1hash))
+    , (p1_1,(1,p1hash))
+    , (s1_1,(1,s1hash))
+    , (l10_2,(1,l10hash))
+    , (l4_2,(1,l4hash))
+    , (l1_2,(1,l1hash))
+    , (o3_2,(1,o3hash))
+    , (s3_2,(1,s3hash))
+    , (o2_2,(1,o2hash))
+    , (s2_2,(1,s2hash))
+    , (o1_2,(1,o1hash))
+    , (p1_2,(1,p1hash))
+    , (s1_2,(1,s1hash)) 
     ]
-    
+
 testEqAssignMap32 :: Test    
 testEqAssignMap32 = testeq "EqAssignMap32" eq3ltst eq3lmap
 
@@ -981,9 +1082,9 @@
 
 ec31test :: [EquivArgs]
 ec31test =
-    [ ((1,142321),[o1_1])
-    , ((1,142385),[p1_1])
-    , ((1,142577),[s1_1])
+    [ ((1,2623),[o1_1])
+    , ((1,2624),[p1_1])
+    , ((1,2723),[s1_1])
     ]
 
 ec32 :: [EquivClass]
@@ -991,18 +1092,19 @@
 
 ec32test :: [EquivArgs]
 ec32test =
-    [ ((1,142129),[l1_2])
-    , ((1,142321),[o1_2])
-    , ((1,142322),[o2_2])
-    , ((1,142323),[o3_2])
-    , ((1,142385),[p1_2])
-    , ((1,142577),[s1_2])
-    , ((1,142578),[s2_2])
-    , ((1,142579),[s3_2])
-    , ((1,1709580),[l4_2])
-    , ((1,3766582),[l10_2])
+    [ 
+      ((1,-1302210307),[l4_2])
+    , ((1,2524),[l1_2])
+    , ((1,2620),[o2_2])
+    , ((1,2621),[o3_2])
+    , ((1,2623),[o1_2])
+    , ((1,2624),[p1_2])
+    , ((1,2720),[s2_2])
+    , ((1,2721),[s3_2])
+    , ((1,2723),[s1_2])
+    , ((1,10836024),[l10_2])
     ]
-
+  
 testEquivClass33_1, testEquivClass33_2 :: Test
 testEquivClass33_1 = testeq "EquivClass33_1" ec31test ec31
 testEquivClass33_2 = testeq "EquivClass33_2" ec32test ec32
@@ -1013,6 +1115,8 @@
 ec3pairs :: [(EquivClass, EquivClass)]
 ec3pairs = zip (pairSort ec31) (pairSort ec32)
 
+{-  This is a pointless test in this case
+
 ec3test :: [(EquivClass, EquivClass)]
 ec3test  =
     [ ( ((1,142321),[o1_1]), ((1,142321),[o1_2]) )
@@ -1020,7 +1124,6 @@
     , ( ((1,142577),[s1_1]), ((1,142577),[s1_2]) )
     ]
 
-{-  This is a pointless test in this case
 testEquivClass33_3 = testeq "EquivClass33_3" ec3test ec3pairs
 -}
 
@@ -1731,7 +1834,6 @@
 allTests = TestList
   [ testSelectSuite
   , testSubsetSuite
-  , testHashSuite
   , testLabSuite
   , testGraphSuite
   , testLabelEqSuite
