@@ -46,13 +46,6 @@ data Entry = Entry {key :: {-# UNPACK #-} !Char,
4646probe :: Entry -> Int
4747probe e = offset e - initialOffset e
4848
49−fastHash :: Char -> Int
50−fastHash :: Char -> Int
51−fastHash c = v `xor` (v `shiftR` 27) + 1858994727
52− where x = fromEnum c
53− u = x `xor` (x `shiftR` 12) + 942815629
54− v = u `xor` (u `shiftL` 25) * 260401194
55−
5649resolveCollisions :: [Entry] -> [Entry]
5750resolveCollisions [] = []
5851resolveCollisions [x] = [x]
@@ -76,6 +69,9 @@ nextPowerOf2 x = go (x - 1) 1
7669 where go y 32 = y + 1
7770 go y k = go (y .|. (y `shiftR` k)) $ k * 2
7871
72+fastHash :: Char -> Int
73+fastHash c = fromEnum
74+
7975fromList :: String -> FastSet
8076fromList s = FastSet (arr key) (arr initialOffset) mask'
8177 where l = length s