@@ -274,37 +274,37 @@ data KickUp k v = KickUp (Map k v) k v (Map k v)
274274
275275-- | Insert or replace a key/value pair in a map
276276insert :: forall k v . Ord k => k -> v -> Map k v -> Map k v
277- insert = down Nil
277+ insert k v = down Nil
278278 where
279279 comp :: k -> k -> Ordering
280280 comp = compare
281281
282- down :: List (TreeContext k v ) -> k -> v -> Map k v -> Map k v
283- down ctx k v Leaf = up ctx (KickUp Leaf k v Leaf )
284- down ctx k v (Two left k1 v1 right) =
282+ down :: List (TreeContext k v ) -> Map k v -> Map k v
283+ down ctx Leaf = up ctx (KickUp Leaf k v Leaf )
284+ down ctx (Two left k1 v1 right) =
285285 case comp k k1 of
286286 EQ -> fromZipper ctx (Two left k v right)
287- LT -> down (Cons (TwoLeft k1 v1 right) ctx) k v left
288- _ -> down (Cons (TwoRight left k1 v1) ctx) k v right
289- down ctx k v (Three left k1 v1 mid k2 v2 right) =
287+ LT -> down (Cons (TwoLeft k1 v1 right) ctx) left
288+ _ -> down (Cons (TwoRight left k1 v1) ctx) right
289+ down ctx (Three left k1 v1 mid k2 v2 right) =
290290 case comp k k1 of
291291 EQ -> fromZipper ctx (Three left k v mid k2 v2 right)
292292 c1 ->
293293 case c1, comp k k2 of
294294 _ , EQ -> fromZipper ctx (Three left k1 v1 mid k v right)
295- LT , _ -> down (Cons (ThreeLeft k1 v1 mid k2 v2 right) ctx) k v left
296- GT , LT -> down (Cons (ThreeMiddle left k1 v1 k2 v2 right) ctx) k v mid
297- _ , _ -> down (Cons (ThreeRight left k1 v1 mid k2 v2) ctx) k v right
295+ LT , _ -> down (Cons (ThreeLeft k1 v1 mid k2 v2 right) ctx) left
296+ GT , LT -> down (Cons (ThreeMiddle left k1 v1 k2 v2 right) ctx) mid
297+ _ , _ -> down (Cons (ThreeRight left k1 v1 mid k2 v2) ctx) right
298298
299299 up :: List (TreeContext k v ) -> KickUp k v -> Map k v
300- up Nil (KickUp left k v right) = Two left k v right
300+ up Nil (KickUp left k' v' right) = Two left k' v' right
301301 up (Cons x ctx) kup =
302302 case x, kup of
303- TwoLeft k1 v1 right, KickUp left k v mid -> fromZipper ctx (Three left k v mid k1 v1 right)
304- TwoRight left k1 v1, KickUp mid k v right -> fromZipper ctx (Three left k1 v1 mid k v right)
305- ThreeLeft k1 v1 c k2 v2 d, KickUp a k v b -> up ctx (KickUp (Two a k v b) k1 v1 (Two c k2 v2 d))
306- ThreeMiddle a k1 v1 k2 v2 d, KickUp b k v c -> up ctx (KickUp (Two a k1 v1 b) k v (Two c k2 v2 d))
307- ThreeRight a k1 v1 b k2 v2, KickUp c k v d -> up ctx (KickUp (Two a k1 v1 b) k2 v2 (Two c k v d))
303+ TwoLeft k1 v1 right, KickUp left k' v' mid -> fromZipper ctx (Three left k' v' mid k1 v1 right)
304+ TwoRight left k1 v1, KickUp mid k' v' right -> fromZipper ctx (Three left k1 v1 mid k' v' right)
305+ ThreeLeft k1 v1 c k2 v2 d, KickUp a k' v' b -> up ctx (KickUp (Two a k' v' b) k1 v1 (Two c k2 v2 d))
306+ ThreeMiddle a k1 v1 k2 v2 d, KickUp b k' v' c -> up ctx (KickUp (Two a k1 v1 b) k' v' (Two c k2 v2 d))
307+ ThreeRight a k1 v1 b k2 v2, KickUp c k' v' d -> up ctx (KickUp (Two a k1 v1 b) k2 v2 (Two c k' v' d))
308308
309309-- | Delete a key and its corresponding value from a map.
310310delete :: forall k v . Ord k => k -> Map k v -> Map k v
0 commit comments