@@ -14,7 +14,7 @@ lookupGE2 :: Ord k => k -> Map k a -> Maybe (k,a)
14
14
lookupGE2 = go
15
15
where
16
16
go ! _ Tip = Nothing
17
- go ! k (Bin _ kx x l r) =
17
+ go ! k (NE ( Bin _ kx x l r) ) =
18
18
case compare k kx of
19
19
LT -> case go k l of
20
20
Nothing -> Just (kx,x)
@@ -27,7 +27,7 @@ lookupGE3 :: Ord k => k -> Map k a -> Maybe (k,a)
27
27
lookupGE3 = go Nothing
28
28
where
29
29
go def ! _ Tip = def
30
- go def ! k (Bin _ kx x l r) =
30
+ go def ! k (NE ( Bin _ kx x l r) ) =
31
31
case compare k kx of
32
32
LT -> go (Just (kx,x)) k l
33
33
GT -> go def k r
@@ -38,26 +38,26 @@ lookupGE4 :: Ord k => k -> Map k a -> Maybe (k,a)
38
38
lookupGE4 k = k `seq` goNothing
39
39
where
40
40
goNothing Tip = Nothing
41
- goNothing (Bin _ kx x l r) = case compare k kx of
42
- LT -> goJust kx x l
43
- EQ -> Just (kx, x)
44
- GT -> goNothing r
41
+ goNothing (NE ( Bin _ kx x l r) ) = case compare k kx of
42
+ LT -> goJust kx x l
43
+ EQ -> Just (kx, x)
44
+ GT -> goNothing r
45
45
46
46
goJust ky y Tip = Just (ky, y)
47
- goJust ky y (Bin _ kx x l r) = case compare k kx of
48
- LT -> goJust kx x l
49
- EQ -> Just (kx, x)
50
- GT -> goJust ky y r
47
+ goJust ky y (NE ( Bin _ kx x l r) ) = case compare k kx of
48
+ LT -> goJust kx x l
49
+ EQ -> Just (kx, x)
50
+ GT -> goJust ky y r
51
51
{-# INLINABLE lookupGE4 #-}
52
52
53
53
-------------------------------------------------------------------------------
54
54
-- Utilities
55
55
-------------------------------------------------------------------------------
56
56
57
57
findMinMaybe :: Map k a -> Maybe (k ,a )
58
- findMinMaybe (Bin _ kx x Tip _) = Just (kx,x)
59
- findMinMaybe (Bin _ _ _ l _) = findMinMaybe l
60
- findMinMaybe Tip = Nothing
58
+ findMinMaybe (NE ( Bin _ kx x Tip _) ) = Just (kx,x)
59
+ findMinMaybe (NE ( Bin _ _ _ l _) ) = findMinMaybe l
60
+ findMinMaybe Tip = Nothing
61
61
62
62
#ifdef TESTING
63
63
-------------------------------------------------------------------------------
0 commit comments