@@ -365,7 +365,6 @@ module Data.Map.Internal (
365365 , ascLinkAll
366366 , descLinkTop
367367 , descLinkAll
368- , MaybeS (.. )
369368 , Identity (.. )
370369 , Stack (.. )
371370 , foldl'Stack
@@ -403,8 +402,8 @@ import Prelude ()
403402import qualified Data.Set.Internal as Set
404403import Data.Set.Internal (Set )
405404import Utils.Containers.Internal.PtrEquality (ptrEq )
406- import Utils.Containers.Internal.StrictPair
407- import Utils.Containers.Internal.StrictMaybe
405+ import Utils.Containers.Internal.Strict
406+ ( StrictPair ( .. ), StrictTriple ( .. ), toPair )
408407import Utils.Containers.Internal.BitQueue
409408import Utils.Containers.Internal.EqOrdUtil (EqM (.. ), OrdM (.. ))
410409#ifdef DEFINE_ALTERF_FALLBACK
@@ -3976,20 +3975,20 @@ split !k0 t0 = toPair $ go k0 t0
39763975-- > splitLookup 6 (fromList [(5,"a"), (3,"b")]) == (fromList [(3,"b"), (5,"a")], Nothing, empty)
39773976splitLookup :: Ord k => k -> Map k a -> (Map k a ,Maybe a ,Map k a )
39783977splitLookup k0 m = case go k0 m of
3979- StrictTriple l mv r -> (l, mv, r)
3978+ TripleS l mv r -> (l, mv, r)
39803979 where
39813980 go :: Ord k => k -> Map k a -> StrictTriple (Map k a ) (Maybe a ) (Map k a )
39823981 go ! k t =
39833982 case t of
3984- Tip -> StrictTriple Tip Nothing Tip
3983+ Tip -> TripleS Tip Nothing Tip
39853984 Bin _ kx x l r -> case compare k kx of
3986- LT -> let StrictTriple lt z gt = go k l
3985+ LT -> let TripleS lt z gt = go k l
39873986 ! gt' = linkR kx x gt r
3988- in StrictTriple lt z gt'
3989- GT -> let StrictTriple lt z gt = go k r
3987+ in TripleS lt z gt'
3988+ GT -> let TripleS lt z gt = go k r
39903989 ! lt' = linkL kx x l lt
3991- in StrictTriple lt' z gt
3992- EQ -> StrictTriple l (Just x) r
3990+ in TripleS lt' z gt
3991+ EQ -> TripleS l (Just x) r
39933992#if __GLASGOW_HASKELL__
39943993{-# INLINABLE splitLookup #-}
39953994#endif
@@ -4000,26 +3999,24 @@ splitLookup k0 m = case go k0 m of
40003999-- constructors.
40014000splitMember :: Ord k => k -> Map k a -> (Map k a ,Bool ,Map k a )
40024001splitMember k0 m = case go k0 m of
4003- StrictTriple l mv r -> (l, mv, r)
4002+ TripleS l mv r -> (l, mv, r)
40044003 where
40054004 go :: Ord k => k -> Map k a -> StrictTriple (Map k a ) Bool (Map k a )
40064005 go ! k t =
40074006 case t of
4008- Tip -> StrictTriple Tip False Tip
4007+ Tip -> TripleS Tip False Tip
40094008 Bin _ kx x l r -> case compare k kx of
4010- LT -> let StrictTriple lt z gt = go k l
4009+ LT -> let TripleS lt z gt = go k l
40114010 ! gt' = linkR kx x gt r
4012- in StrictTriple lt z gt'
4013- GT -> let StrictTriple lt z gt = go k r
4011+ in TripleS lt z gt'
4012+ GT -> let TripleS lt z gt = go k r
40144013 ! lt' = linkL kx x l lt
4015- in StrictTriple lt' z gt
4016- EQ -> StrictTriple l True r
4014+ in TripleS lt' z gt
4015+ EQ -> TripleS l True r
40174016#if __GLASGOW_HASKELL__
40184017{-# INLINABLE splitMember #-}
40194018#endif
40204019
4021- data StrictTriple a b c = StrictTriple ! a ! b ! c
4022-
40234020{- -------------------------------------------------------------------
40244021 MapBuilder
40254022--------------------------------------------------------------------}
0 commit comments