@@ -1135,10 +1135,9 @@ delete' h0 k0 m0 = go h0 k0 0 m0
11351135 else case st' of
11361136 Empty | A. length ary == 1 -> Empty
11371137 | A. length ary == 2 ->
1138- case (i, A. index ary 0 , A. index ary 1 ) of
1139- (0 , _, l) | isLeafOrCollision l -> l
1140- (1 , l, _) | isLeafOrCollision l -> l
1141- _ -> bIndexed
1138+ case A. index ary (1 - i) of
1139+ l | isLeafOrCollision l -> l
1140+ _ -> bIndexed
11421141 | otherwise -> bIndexed
11431142 where
11441143 bIndexed = BitmapIndexed (b .&. complement m) (A. delete ary i)
@@ -1161,11 +1160,8 @@ delete' h0 k0 m0 = go h0 k0 0 m0
11611160 go h k _ t@ (Collision hy v)
11621161 | h == hy = case indexOf k v of
11631162 Just i
1164- | A. length v == 2 ->
1165- if i == 0
1166- then Leaf h (A. index v 1 )
1167- else Leaf h (A. index v 0 )
1168- | otherwise -> Collision h (A. delete v i)
1163+ | A. length v == 2 -> Leaf h (A. index v (1 - i))
1164+ | otherwise -> Collision h (A. delete v i)
11691165 Nothing -> t
11701166 | otherwise = t
11711167{-# INLINABLE delete' #-}
@@ -1186,10 +1182,9 @@ deleteKeyExists !collPos0 !h0 !k0 !m0 = go collPos0 h0 k0 m0
11861182 in case st' of
11871183 Empty | A. length ary == 1 -> Empty
11881184 | A. length ary == 2 ->
1189- case (i, A. index ary 0 , A. index ary 1 ) of
1190- (0 , _, l) | isLeafOrCollision l -> l
1191- (1 , l, _) | isLeafOrCollision l -> l
1192- _ -> bIndexed
1185+ case A. index ary (1 - i) of
1186+ l | isLeafOrCollision l -> l
1187+ _ -> bIndexed
11931188 | otherwise -> bIndexed
11941189 where
11951190 bIndexed = BitmapIndexed (b .&. complement m) (A. delete ary i)
@@ -1208,11 +1203,8 @@ deleteKeyExists !collPos0 !h0 !k0 !m0 = go collPos0 h0 k0 m0
12081203 _ -> Full (A. update ary i st')
12091204 where i = index' shiftedHash
12101205 go collPos _shiftedHash _k (Collision h v)
1211- | A. length v == 2
1212- = if collPos == 0
1213- then Leaf h (A. index v 1 )
1214- else Leaf h (A. index v 0 )
1215- | otherwise = Collision h (A. delete v collPos)
1206+ | A. length v == 2 = Leaf h (A. index v (1 - collPos))
1207+ | otherwise = Collision h (A. delete v collPos)
12161208 go ! _ ! _ ! _ Empty = Empty -- error "Internal error: deleteKeyExists empty"
12171209
12181210 -- Customized version of 'index' that doesn't require a 'Shift'.
0 commit comments