aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/data/coll/ordered.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/data/coll/ordered.lux')
-rw-r--r--stdlib/source/lux/data/coll/ordered.lux39
1 files changed, 21 insertions, 18 deletions
diff --git a/stdlib/source/lux/data/coll/ordered.lux b/stdlib/source/lux/data/coll/ordered.lux
index 5ecf96781..c6fd5937f 100644
--- a/stdlib/source/lux/data/coll/ordered.lux
+++ b/stdlib/source/lux/data/coll/ordered.lux
@@ -105,9 +105,10 @@
(def: (balance-left-add parent self)
(All [a] (-> (Node a) (Node a) (Node a)))
- (let% [<default-behavior> (as-is (black (get@ #value parent)
- (#;Some self)
- (get@ #right parent)))]
+ (with-expansions
+ [<default-behavior> (as-is (black (get@ #value parent)
+ (#;Some self)
+ (get@ #right parent)))]
(case (get@ #color self)
#Red
(case (get@ #left self)
@@ -140,9 +141,10 @@
(def: (balance-right-add parent self)
(All [a] (-> (Node a) (Node a) (Node a)))
- (let% [<default-behavior> (as-is (black (get@ #value parent)
- (get@ #left parent)
- (#;Some self)))]
+ (with-expansions
+ [<default-behavior> (as-is (black (get@ #value parent)
+ (get@ #left parent)
+ (#;Some self)))]
(case (get@ #color self)
#Red
(case (get@ #right self)
@@ -203,18 +205,19 @@
(#;Some root)
(let [reference (get@ #value root)]
- (let% [<sides> (do-template [<comp> <tag> <add>]
- [(<comp> reference elem)
- (let [side-root (get@ <tag> root)
- outcome (recur side-root)]
- (if (is side-root outcome)
- ?root
- (#;Some (<add> (default (undefined) outcome)
- root))))]
-
- [T/< #left add-left]
- [T/> #right add-right]
- )]
+ (with-expansions
+ [<sides> (do-template [<comp> <tag> <add>]
+ [(<comp> reference elem)
+ (let [side-root (get@ <tag> root)
+ outcome (recur side-root)]
+ (if (is side-root outcome)
+ ?root
+ (#;Some (<add> (default (undefined) outcome)
+ root))))]
+
+ [T/< #left add-left]
+ [T/> #right add-right]
+ )]
(cond <sides>
## (T/= reference elem)