Skip to content

Commit 4f29d02

Browse files
committed
Create NonEmptyMap type
1 parent 30ccbaa commit 4f29d02

File tree

4 files changed

+396
-342
lines changed

4 files changed

+396
-342
lines changed

containers-tests/benchmarks/LookupGE/LookupGE_Map.hs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ lookupGE2 :: Ord k => k -> Map k a -> Maybe (k,a)
1414
lookupGE2 = go
1515
where
1616
go !_ Tip = Nothing
17-
go !k (Bin _ kx x l r) =
17+
go !k (NE (Bin _ kx x l r)) =
1818
case compare k kx of
1919
LT -> case go k l of
2020
Nothing -> Just (kx,x)
@@ -27,7 +27,7 @@ lookupGE3 :: Ord k => k -> Map k a -> Maybe (k,a)
2727
lookupGE3 = go Nothing
2828
where
2929
go def !_ Tip = def
30-
go def !k (Bin _ kx x l r) =
30+
go def !k (NE (Bin _ kx x l r)) =
3131
case compare k kx of
3232
LT -> go (Just (kx,x)) k l
3333
GT -> go def k r
@@ -38,26 +38,26 @@ lookupGE4 :: Ord k => k -> Map k a -> Maybe (k,a)
3838
lookupGE4 k = k `seq` goNothing
3939
where
4040
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
4545

4646
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
5151
{-# INLINABLE lookupGE4 #-}
5252

5353
-------------------------------------------------------------------------------
5454
-- Utilities
5555
-------------------------------------------------------------------------------
5656

5757
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
6161

6262
#ifdef TESTING
6363
-------------------------------------------------------------------------------

0 commit comments

Comments
 (0)