aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/control/order.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/control/order.lux24
1 files changed, 13 insertions, 11 deletions
diff --git a/stdlib/source/lux/control/order.lux b/stdlib/source/lux/control/order.lux
index 4375f4e7c..a56f512cb 100644
--- a/stdlib/source/lux/control/order.lux
+++ b/stdlib/source/lux/control/order.lux
@@ -6,12 +6,11 @@
[//
["." equivalence (#+ Equivalence)]])
-## [Signatures]
(`` (signature: #export (Order a)
{#.doc "A signature for types that possess some sense of ordering among their elements."}
(: (Equivalence a)
- eq)
+ &equivalence)
(~~ (do-template [<name>]
[(: (-> a a Bit) <name>)]
@@ -20,20 +19,23 @@
))
))
-## [Values]
-(def: #export (order eq <)
+(def: #export (order equivalence <)
(All [a]
(-> (Equivalence a) (-> a a Bit) (Order a)))
(let [> (flip <)]
- (structure (def: eq eq)
+ (structure (def: &equivalence equivalence)
+
(def: < <)
+
(def: (<= test subject)
(or (< test subject)
- (:: eq = test subject)))
+ (:: equivalence = test subject)))
+
(def: > >)
+
(def: (>= test subject)
(or (> test subject)
- (:: eq = test subject))))))
+ (:: equivalence = test subject))))))
(do-template [<name> <op>]
[(def: #export (<name> order x y)
@@ -45,14 +47,14 @@
[max >]
)
-(`` (structure: #export _ (Contravariant Order)
- (def: (map-1 f Order<b>)
+(`` (structure: #export contravariant (Contravariant Order)
+ (def: (map-1 f order)
(structure
- (def: eq (:: equivalence.Contravariant<Equivalence> map-1 f (:: Order<b> eq)))
+ (def: &equivalence (:: equivalence.contravariant map-1 f (:: order &equivalence)))
(~~ (do-template [<name>]
[(def: (<name> reference sample)
- (:: Order<b> <name> (f reference) (f sample)))]
+ (:: order <name> (f reference) (f sample)))]
[<] [<=] [>] [>=]
))))))