Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4f29d02

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /