diff options
Diffstat (limited to 'stdlib/source/lux/abstract/order.lux')
-rw-r--r-- | stdlib/source/lux/abstract/order.lux | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/stdlib/source/lux/abstract/order.lux b/stdlib/source/lux/abstract/order.lux deleted file mode 100644 index 9d031bca2..000000000 --- a/stdlib/source/lux/abstract/order.lux +++ /dev/null @@ -1,57 +0,0 @@ -(.module: - [lux #* - [control - ["." function]]] - [// - ["." equivalence (#+ Equivalence)] - [functor - ["." contravariant]]]) - -(interface: #export (Order a) - {#.doc "A signature for types that possess some sense of ordering among their elements."} - - (: (Equivalence a) - &equivalence) - - (: (-> a a Bit) - <) - ) - -(type: #export (Comparison a) - (-> (Order a) a a Bit)) - -(def: #export (<= order parameter subject) - Comparison - (or (\ order < parameter subject) - (\ order = parameter subject))) - -(def: #export (> order parameter subject) - Comparison - (\ order < subject parameter)) - -(def: #export (>= order parameter subject) - Comparison - (or (\ order < subject parameter) - (\ order = subject parameter))) - -(type: #export (Choice a) - (-> (Order a) a a a)) - -(def: #export (min order x y) - Choice - (if (\ order < y x) x y)) - -(def: #export (max order x y) - Choice - (if (\ order < y x) y x)) - -(implementation: #export functor - (contravariant.Functor Order) - - (def: (map f order) - (implementation - (def: &equivalence - (\ equivalence.functor map f (\ order &equivalence))) - - (def: (< reference sample) - (\ order < (f reference) (f sample)))))) |