diff options
Diffstat (limited to 'stdlib/source/library/lux/data/collection/queue/priority.lux')
-rw-r--r-- | stdlib/source/library/lux/data/collection/queue/priority.lux | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/stdlib/source/library/lux/data/collection/queue/priority.lux b/stdlib/source/library/lux/data/collection/queue/priority.lux index 698bb57ac..763f1836d 100644 --- a/stdlib/source/library/lux/data/collection/queue/priority.lux +++ b/stdlib/source/library/lux/data/collection/queue/priority.lux @@ -15,14 +15,14 @@ [type (#+ :by_example) [abstract (#+ abstract: :abstraction :representation)]]]]) -(type: #export Priority +(type: .public Priority Nat) -(def: #export max +(def: .public max Priority n\top) -(def: #export min +(def: .public min Priority n\bottom) @@ -36,21 +36,23 @@ @)) -(abstract: #export (Queue a) +(abstract: .public (Queue a) + {} + (Maybe (Tree :@: Priority a)) - (def: #export empty + (def: .public empty Queue (:abstraction #.None)) - (def: #export (peek queue) + (def: .public (peek queue) (All [a] (-> (Queue a) (Maybe a))) (do maybe.monad [tree (:representation queue)] (tree.one (n.= (tree.tag tree)) tree))) - (def: #export (size queue) + (def: .public (size queue) (All [a] (-> (Queue a) Nat)) (case (:representation queue) #.None @@ -65,7 +67,7 @@ (0 #1 [left right]) (n.+ (recur left) (recur right)))))) - (def: #export (member? equivalence queue member) + (def: .public (member? equivalence queue member) (All [a] (-> (Equivalence a) (Queue a) a Bit)) (case (:representation queue) #.None @@ -81,7 +83,7 @@ (or (recur left) (recur right)))))) - (def: #export (pop queue) + (def: .public (pop queue) (All [a] (-> (Queue a) (Queue a))) (:abstraction (do maybe.monad @@ -109,7 +111,7 @@ (#.Some =right) (#.Some (\ ..builder branch left =right))))))))) - (def: #export (push priority value queue) + (def: .public (push priority value queue) (All [a] (-> Priority a (Queue a) (Queue a))) (let [addition (\ ..builder leaf priority value)] (:abstraction @@ -121,6 +123,6 @@ (#.Some (\ ..builder branch tree addition)))))) ) -(def: #export empty? +(def: .public empty? (All [a] (-> (Queue a) Bit)) (|>> ..size (n.= 0))) |