@@ -63,7 +63,7 @@ import Data.Traversable (traverse, class Traversable)
6363import Data.TraversableWithIndex (class TraversableWithIndex , traverseWithIndex )
6464import Data.Tuple (Tuple (Tuple), snd , uncurry )
6565import Data.Unfoldable (class Unfoldable , unfoldr )
66- import Partial.Unsafe (unsafePartial )
66+ import Partial.Unsafe (unsafeCrashWith )
6767import Prim.TypeError (class Warn , Text )
6868
6969-- | `Map k v` represents maps from keys of type `k` to values of type `v`.
@@ -507,7 +507,7 @@ pop k = down Nil
507507 comp = compare
508508
509509 down :: List (TreeContext k v ) -> Map k v -> Maybe (Tuple v (Map k v ))
510- down = unsafePartial \ ctx m -> case m of
510+ down ctx m = case m of
511511 Leaf -> Nothing
512512 Two left k1 v1 right ->
513513 case right, comp k k1 of
@@ -533,7 +533,7 @@ pop k = down Nil
533533 _ , _ , _ -> down (Cons (ThreeRight left k1 v1 mid k2 v2) ctx) right
534534
535535 up :: List (TreeContext k v ) -> Map k v -> Map k v
536- up = unsafePartial \ ctxs tree ->
536+ up ctxs tree =
537537 case ctxs of
538538 Nil -> tree
539539 Cons x ctx ->
@@ -555,22 +555,25 @@ pop k = down Nil
555555 ThreeMiddle (Three a k1 v1 b k2 v2 c) k3 v3 k4 v4 e, d -> fromZipper ctx (Three (Two a k1 v1 b) k2 v2 (Two c k3 v3 d) k4 v4 e)
556556 ThreeMiddle a k1 v1 k2 v2 (Three c k3 v3 d k4 v4 e), b -> fromZipper ctx (Three a k1 v1 (Two b k2 v2 c) k3 v3 (Two d k4 v4 e))
557557 ThreeRight a k1 v1 (Three b k2 v2 c k3 v3 d) k4 v4, e -> fromZipper ctx (Three a k1 v1 (Two b k2 v2 c) k3 v3 (Two d k4 v4 e))
558+ _, _ -> unsafeCrashWith " The impossible happened in partial function `up`."
558559
559560 maxNode :: Map k v -> { key :: k , value :: v }
560- maxNode = unsafePartial \m -> case m of
561+ maxNode m = case m of
561562 Two _ k' v Leaf -> { key: k', value: v }
562563 Two _ _ _ right -> maxNode right
563564 Three _ _ _ _ k' v Leaf -> { key: k', value: v }
564565 Three _ _ _ _ _ _ right -> maxNode right
566+ _ -> unsafeCrashWith " The impossible happened in partial function `maxNode`."
565567
566568
567569 removeMaxNode :: List (TreeContext k v ) -> Map k v -> Map k v
568- removeMaxNode = unsafePartial \ ctx m ->
570+ removeMaxNode ctx m =
569571 case m of
570572 Two Leaf _ _ Leaf -> up ctx Leaf
571573 Two left k' v right -> removeMaxNode (Cons (TwoRight left k' v) ctx) right
572574 Three Leaf k1 v1 Leaf _ _ Leaf -> up (Cons (TwoRight Leaf k1 v1) ctx) Leaf
573575 Three left k1 v1 mid k2 v2 right -> removeMaxNode (Cons (ThreeRight left k1 v1 mid k2 v2) ctx) right
576+ _ -> unsafeCrashWith " The impossible happened in partial function `removeMaxNode`."
574577
575578
576579-- | Insert the value, delete a value, or update a value for a key in a map
0 commit comments