aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/data/collection/dictionary/ordered.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/data/collection/dictionary/ordered.lux')
-rw-r--r--stdlib/source/lux/data/collection/dictionary/ordered.lux23
1 files changed, 9 insertions, 14 deletions
diff --git a/stdlib/source/lux/data/collection/dictionary/ordered.lux b/stdlib/source/lux/data/collection/dictionary/ordered.lux
index c558a7669..49886a459 100644
--- a/stdlib/source/lux/data/collection/dictionary/ordered.lux
+++ b/stdlib/source/lux/data/collection/dictionary/ordered.lux
@@ -115,21 +115,16 @@
[max #right]
)
-(template [<name> <op>]
- [(def: #export (<name> dict)
- (All [k v] (-> (Dictionary k v) Nat))
- (loop [node (get@ #root dict)]
- (case node
- #.None
- 0
-
- (#.Some node)
- (inc (<op> (recur (get@ #left node))
- (recur (get@ #right node)))))))]
+(def: #export (size dict)
+ (All [k v] (-> (Dictionary k v) Nat))
+ (loop [node (get@ #root dict)]
+ (case node
+ #.None
+ 0
- [size n.+]
- [depth n.max]
- )
+ (#.Some node)
+ (inc (n.+ (recur (get@ #left node))
+ (recur (get@ #right node)))))))
(def: #export empty?
(All [k v] (-> (Dictionary k v) Bit))