aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux.lux22
-rw-r--r--stdlib/source/lux/cli.lux2
-rw-r--r--stdlib/source/lux/control/equivalence.lux (renamed from stdlib/source/lux/control/equality.lux)10
-rw-r--r--stdlib/source/lux/control/hash.lux4
-rw-r--r--stdlib/source/lux/control/interval.lux6
-rw-r--r--stdlib/source/lux/control/order.lux6
-rw-r--r--stdlib/source/lux/data/bool.lux6
-rw-r--r--stdlib/source/lux/data/coll/array.lux8
-rw-r--r--stdlib/source/lux/data/coll/bits.lux4
-rw-r--r--stdlib/source/lux/data/coll/dictionary/ordered.lux10
-rw-r--r--stdlib/source/lux/data/coll/dictionary/plist.lux2
-rw-r--r--stdlib/source/lux/data/coll/dictionary/unordered.lux6
-rw-r--r--stdlib/source/lux/data/coll/list.lux10
-rw-r--r--stdlib/source/lux/data/coll/queue.lux16
-rw-r--r--stdlib/source/lux/data/coll/queue/priority.lux8
-rw-r--r--stdlib/source/lux/data/coll/row.lux18
-rw-r--r--stdlib/source/lux/data/coll/set/ordered.lux6
-rw-r--r--stdlib/source/lux/data/coll/set/unordered.lux8
-rw-r--r--stdlib/source/lux/data/coll/tree/rose.lux8
-rw-r--r--stdlib/source/lux/data/color.lux4
-rw-r--r--stdlib/source/lux/data/format/json.lux18
-rw-r--r--stdlib/source/lux/data/format/xml.lux10
-rw-r--r--stdlib/source/lux/data/ident.lux8
-rw-r--r--stdlib/source/lux/data/maybe.lux6
-rw-r--r--stdlib/source/lux/data/number.lux20
-rw-r--r--stdlib/source/lux/data/number/complex.lux4
-rw-r--r--stdlib/source/lux/data/number/ratio.lux6
-rw-r--r--stdlib/source/lux/data/text.lux8
-rw-r--r--stdlib/source/lux/host.jvm.lux10
-rw-r--r--stdlib/source/lux/lang/compiler/analysis.lux2
-rw-r--r--stdlib/source/lux/lang/compiler/analysis/case/coverage.lux12
-rw-r--r--stdlib/source/lux/lang/compiler/analysis/reference.lux2
-rw-r--r--stdlib/source/lux/lang/compiler/extension/analysis/host.jvm.lux18
-rw-r--r--stdlib/source/lux/lang/compiler/synthesis/case.lux10
-rw-r--r--stdlib/source/lux/lang/module.lux2
-rw-r--r--stdlib/source/lux/lang/reference.lux6
-rw-r--r--stdlib/source/lux/lang/scope.lux2
-rw-r--r--stdlib/source/lux/lang/type.lux8
-rw-r--r--stdlib/source/lux/lang/type/check.lux6
-rw-r--r--stdlib/source/lux/macro.lux4
-rw-r--r--stdlib/source/lux/macro/code.lux28
-rw-r--r--stdlib/source/lux/macro/poly.lux6
-rw-r--r--stdlib/source/lux/macro/poly/equivalence.lux (renamed from stdlib/source/lux/macro/poly/equality.lux)86
-rw-r--r--stdlib/source/lux/macro/poly/json.lux2
-rw-r--r--stdlib/source/lux/macro/syntax.lux20
-rw-r--r--stdlib/source/lux/macro/syntax/common/reader.lux2
-rw-r--r--stdlib/source/lux/time/date.lux20
-rw-r--r--stdlib/source/lux/time/duration.lux8
-rw-r--r--stdlib/source/lux/time/instant.lux8
-rw-r--r--stdlib/source/lux/type/abstract.lux2
-rw-r--r--stdlib/source/lux/type/implicit.lux10
-rw-r--r--stdlib/source/lux/type/object/interface.lux2
-rw-r--r--stdlib/source/lux/type/refinement.lux2
-rw-r--r--stdlib/source/lux/type/unit.lux6
-rw-r--r--stdlib/source/lux/world/blob.jvm.lux4
-rw-r--r--stdlib/test/test/lux.lux2
-rw-r--r--stdlib/test/test/lux/cli.lux2
-rw-r--r--stdlib/test/test/lux/concurrency/frp.lux2
-rw-r--r--stdlib/test/test/lux/concurrency/semaphore.lux2
-rw-r--r--stdlib/test/test/lux/concurrency/stm.lux2
-rw-r--r--stdlib/test/test/lux/control/continuation.lux2
-rw-r--r--stdlib/test/test/lux/control/equality.lux19
-rw-r--r--stdlib/test/test/lux/control/equivalence.lux19
-rw-r--r--stdlib/test/test/lux/control/interval.lux10
-rw-r--r--stdlib/test/test/lux/control/parser.lux2
-rw-r--r--stdlib/test/test/lux/control/pipe.lux2
-rw-r--r--stdlib/test/test/lux/control/writer.lux2
-rw-r--r--stdlib/test/test/lux/data/bool.lux10
-rw-r--r--stdlib/test/test/lux/data/coll/array.lux12
-rw-r--r--stdlib/test/test/lux/data/coll/bits.lux8
-rw-r--r--stdlib/test/test/lux/data/coll/dictionary/ordered.lux12
-rw-r--r--stdlib/test/test/lux/data/coll/dictionary/unordered.lux12
-rw-r--r--stdlib/test/test/lux/data/coll/list.lux12
-rw-r--r--stdlib/test/test/lux/data/coll/queue.lux12
-rw-r--r--stdlib/test/test/lux/data/coll/queue/priority.lux10
-rw-r--r--stdlib/test/test/lux/data/coll/row.lux8
-rw-r--r--stdlib/test/test/lux/data/coll/sequence.lux4
-rw-r--r--stdlib/test/test/lux/data/coll/set/ordered.lux4
-rw-r--r--stdlib/test/test/lux/data/coll/set/unordered.lux2
-rw-r--r--stdlib/test/test/lux/data/coll/tree/rose.lux6
-rw-r--r--stdlib/test/test/lux/data/coll/tree/rose/zipper.lux4
-rw-r--r--stdlib/test/test/lux/data/color.lux6
-rw-r--r--stdlib/test/test/lux/data/format/json.lux40
-rw-r--r--stdlib/test/test/lux/data/format/xml.lux6
-rw-r--r--stdlib/test/test/lux/data/ident.lux8
-rw-r--r--stdlib/test/test/lux/data/identity.lux2
-rw-r--r--stdlib/test/test/lux/data/maybe.lux2
-rw-r--r--stdlib/test/test/lux/data/number.lux60
-rw-r--r--stdlib/test/test/lux/data/sum.lux2
-rw-r--r--stdlib/test/test/lux/data/text.lux4
-rw-r--r--stdlib/test/test/lux/data/text/format.lux2
-rw-r--r--stdlib/test/test/lux/data/text/lexer.lux4
-rw-r--r--stdlib/test/test/lux/data/text/regex.lux2
-rw-r--r--stdlib/test/test/lux/host.jvm.lux2
-rw-r--r--stdlib/test/test/lux/io.lux2
-rw-r--r--stdlib/test/test/lux/lang/compiler/analysis/case.lux6
-rw-r--r--stdlib/test/test/lux/lang/compiler/analysis/function.lux4
-rw-r--r--stdlib/test/test/lux/lang/compiler/analysis/primitive.lux2
-rw-r--r--stdlib/test/test/lux/lang/compiler/analysis/procedure/common.lux14
-rw-r--r--stdlib/test/test/lux/lang/compiler/analysis/procedure/host.jvm.lux8
-rw-r--r--stdlib/test/test/lux/lang/compiler/analysis/reference.lux6
-rw-r--r--stdlib/test/test/lux/lang/compiler/analysis/structure.lux4
-rw-r--r--stdlib/test/test/lux/lang/compiler/synthesis/function.lux2
-rw-r--r--stdlib/test/test/lux/lang/compiler/synthesis/structure.lux2
-rw-r--r--stdlib/test/test/lux/lang/syntax.lux10
-rw-r--r--stdlib/test/test/lux/lang/type.lux20
-rw-r--r--stdlib/test/test/lux/lang/type/check.lux12
-rw-r--r--stdlib/test/test/lux/macro/code.lux4
-rw-r--r--stdlib/test/test/lux/macro/poly/equivalence.lux (renamed from stdlib/test/test/lux/macro/poly/equality.lux)10
-rw-r--r--stdlib/test/test/lux/macro/poly/functor.lux17
-rw-r--r--stdlib/test/test/lux/macro/syntax.lux28
-rw-r--r--stdlib/test/test/lux/math.lux2
-rw-r--r--stdlib/test/test/lux/math/logic/fuzzy.lux2
-rw-r--r--stdlib/test/test/lux/math/modular.lux4
-rw-r--r--stdlib/test/test/lux/math/random.lux2
-rw-r--r--stdlib/test/test/lux/time/date.lux14
-rw-r--r--stdlib/test/test/lux/time/duration.lux8
-rw-r--r--stdlib/test/test/lux/time/instant.lux10
-rw-r--r--stdlib/test/test/lux/type/implicit.lux10
-rw-r--r--stdlib/test/test/lux/world/blob.lux6
-rw-r--r--stdlib/test/test/lux/world/file.lux8
-rw-r--r--stdlib/test/test/lux/world/net/tcp.lux4
-rw-r--r--stdlib/test/test/lux/world/net/udp.lux4
123 files changed, 534 insertions, 545 deletions
diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux
index d2d39783a..5a484598e 100644
--- a/stdlib/source/lux.lux
+++ b/stdlib/source/lux.lux
@@ -2206,7 +2206,7 @@
(def:''' #export (n/= test subject)
(list [(tag$ ["lux" "doc"])
- (text$ "Nat(ural) equality.")])
+ (text$ "Nat(ural) equivalence.")])
(-> Nat Nat Bool)
("lux i64 =" test subject))
@@ -2296,7 +2296,7 @@
(def:''' #export (r/= test subject)
(list [(tag$ ["lux" "doc"])
- (text$ "Rev(olution) equality.")])
+ (text$ "Rev(olution) equivalence.")])
(-> Rev Rev Bool)
("lux i64 =" test subject))
@@ -2368,10 +2368,10 @@
(<eq-proc> subject test)))]
[ Int "lux i64 =" "lux int <" i/= i/< i/<= i/> i/>=
- "Int(eger) equality." "Int(eger) less-than." "Int(eger) less-than-equal." "Int(eger) greater-than." "Int(eger) greater-than-equal."]
+ "Int(eger) equivalence." "Int(eger) less-than." "Int(eger) less-than-equal." "Int(eger) greater-than." "Int(eger) greater-than-equal."]
[Frac "lux frac =" "lux frac <" f/= f/< f/<= f/> f/>=
- "Frac(tion) equality." "Frac(tion) less-than." "Frac(tion) less-than-equal." "Frac(tion) greater-than." "Frac(tion) greater-than-equal."]
+ "Frac(tion) equivalence." "Frac(tion) less-than." "Frac(tion) less-than-equal." "Frac(tion) greater-than." "Frac(tion) greater-than-equal."]
)
(def:''' #export (n// param subject)
@@ -3492,7 +3492,7 @@
(macro: #export (sig: tokens)
{#.doc "## Definition of signatures ala ML.
(sig: #export (Ord a)
- (: (Eq a)
+ (: (Equivalence a)
eq)
(: (-> a a Bool)
<)
@@ -3901,7 +3901,7 @@
(macro: #export (struct: tokens)
{#.doc "## Definition of structures ala ML.
(struct: #export Ord<Int> (Ord Int)
- (def: eq Eq<Int>)
+ (def: eq Equivalence<Int>)
(def: (< test subject)
(lux.< test subject))
(def: (<= test subject)
@@ -4971,7 +4971,7 @@
(ident #open (\"ident/\" Codec<Text,Ident>)))
meta
(macro code))
- (// (type #open (\"\" Eq<Type>))))
+ (// (type #open (\"\" Equivalence<Type>))))
(.module: {#.doc \"Some documentation...\"}
lux
@@ -4982,7 +4982,7 @@
[ident \"ident/\" Codec<Text,Ident>])
meta
(macro code))
- (// [type \"\" Eq<Type>]))"}
+ (// [type \"\" Equivalence<Type>]))"}
(do Monad<Meta>
[#let [[_meta _imports] (: [(List [Code Code]) (List Code)]
(case tokens
@@ -5633,7 +5633,7 @@
[<tests> (do-template [<expr> <text> <pattern>]
[(compare <pattern> <expr>)
(compare <text> (:: Code/encode show <expr>))
- (compare true (:: Eq<Code> = <expr> <expr>))]
+ (compare true (:: Equivalence<Code> = <expr> <expr>))]
[(bool true) "true" [_ (#.Bool true)]]
[(bool false) "false" [_ (#.Bool false)]]
@@ -5883,9 +5883,9 @@
{#.doc (doc "Allows you to refer to the type-variables in a polymorphic function's type, by their index."
"In the example below, +0 corresponds to the 'a' variable."
(def: #export (from-list list)
- (All [a] (-> (List a) (Sequence a)))
+ (All [a] (-> (List a) (Row a)))
(list/fold add
- (: (Sequence ($ +0))
+ (: (Row ($ +0))
empty)
list)))}
(case tokens
diff --git a/stdlib/source/lux/cli.lux b/stdlib/source/lux/cli.lux
index 281dfd9d5..c2e8e2c0f 100644
--- a/stdlib/source/lux/cli.lux
+++ b/stdlib/source/lux/cli.lux
@@ -3,7 +3,7 @@
(lux (control monad
["p" parser])
(data (coll [list "list/" Monoid<List> Monad<List>])
- [text "text/" Eq<Text>]
+ [text "text/" Equivalence<Text>]
text/format
["E" error])
[io]
diff --git a/stdlib/source/lux/control/equality.lux b/stdlib/source/lux/control/equivalence.lux
index f75a78fdd..eabe1165e 100644
--- a/stdlib/source/lux/control/equality.lux
+++ b/stdlib/source/lux/control/equivalence.lux
@@ -1,18 +1,18 @@
(.module: lux)
-(sig: #export (Eq a)
- {#.doc "Equality for a type's instances."}
+(sig: #export (Equivalence a)
+ {#.doc "Equivalence for a type's instances."}
(: (-> a a Bool)
=))
(def: #export (product left right)
- (All [l r] (-> (Eq l) (Eq r) (Eq [l r])))
+ (All [l r] (-> (Equivalence l) (Equivalence r) (Equivalence [l r])))
(struct (def: (= [a b] [x y])
(and (:: left = a x)
(:: right = b y)))))
(def: #export (sum left right)
- (All [l r] (-> (Eq l) (Eq r) (Eq (| l r))))
+ (All [l r] (-> (Equivalence l) (Equivalence r) (Equivalence (| l r))))
(struct (def: (= a|b x|y)
(case [a|b x|y]
[(+0 a) (+0 x)]
@@ -25,6 +25,6 @@
false))))
(def: #export (rec sub)
- (All [a] (-> (-> (Eq a) (Eq a)) (Eq a)))
+ (All [a] (-> (-> (Equivalence a) (Equivalence a)) (Equivalence a)))
(struct (def: (= left right)
(sub (rec sub) left right))))
diff --git a/stdlib/source/lux/control/hash.lux b/stdlib/source/lux/control/hash.lux
index 6399307bf..76fcd2730 100644
--- a/stdlib/source/lux/control/hash.lux
+++ b/stdlib/source/lux/control/hash.lux
@@ -1,13 +1,13 @@
(.module:
lux
- (// [equality #+ Eq]))
+ (// [equivalence #+ Equivalence]))
## [Signatures]
(sig: #export (Hash a)
{#.doc "A way to produce hash-codes for a type's instances.
A necessity when working with some data-structures, such as dictionaries or sets."}
- (: (Eq a)
+ (: (Equivalence a)
eq)
(: (-> a Nat)
hash))
diff --git a/stdlib/source/lux/control/interval.lux b/stdlib/source/lux/control/interval.lux
index 70540622f..92cb9599f 100644
--- a/stdlib/source/lux/control/interval.lux
+++ b/stdlib/source/lux/control/interval.lux
@@ -1,6 +1,6 @@
(.module:
lux
- (lux (control [equality #+ Eq]
+ (lux (control [equivalence #+ Equivalence]
[order]
[enum #+ Enum])))
@@ -133,7 +133,7 @@
[after? >]
)
-(struct: #export Eq<Interval> (All [a] (Eq (Interval a)))
+(struct: #export Equivalence<Interval> (All [a] (Equivalence (Interval a)))
(def: (= reference sample)
(let [(^open) reference]
(and (= bottom (:: sample bottom))
@@ -163,7 +163,7 @@
(def: #export (overlaps? reference sample)
(All [a] (-> (Interval a) (Interval a) Bool))
(let [(^open) reference]
- (and (not (:: Eq<Interval> = reference sample))
+ (and (not (:: Equivalence<Interval> = reference sample))
(cond (singleton? sample)
false
diff --git a/stdlib/source/lux/control/order.lux b/stdlib/source/lux/control/order.lux
index fd595b1f3..04d0e6a82 100644
--- a/stdlib/source/lux/control/order.lux
+++ b/stdlib/source/lux/control/order.lux
@@ -1,13 +1,13 @@
(.module:
lux
(lux function)
- (// [equality #+ Eq]))
+ (// [equivalence #+ Equivalence]))
## [Signatures]
(sig: #export (Order a)
{#.doc "A signature for types that possess some sense of ordering among their elements."}
- (: (Eq a)
+ (: (Equivalence a)
eq)
(do-template [<name>]
@@ -20,7 +20,7 @@
## [Values]
(def: #export (order eq <)
(All [a]
- (-> (Eq a) (-> a a Bool) (Order a)))
+ (-> (Equivalence a) (-> a a Bool) (Order a)))
(let [> (flip <)]
(struct
(def: eq eq)
diff --git a/stdlib/source/lux/data/bool.lux b/stdlib/source/lux/data/bool.lux
index 21ae0526f..88c1011e5 100644
--- a/stdlib/source/lux/data/bool.lux
+++ b/stdlib/source/lux/data/bool.lux
@@ -1,20 +1,20 @@
(.module:
lux
(lux (control [monoid #+ Monoid]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
hash
[codec #+ Codec])
function))
## [Structures]
-(struct: #export _ (Eq Bool)
+(struct: #export _ (Equivalence Bool)
(def: (= x y)
(if x
y
(not y))))
(struct: #export _ (Hash Bool)
- (def: eq Eq<Bool>)
+ (def: eq Equivalence<Bool>)
(def: (hash value)
(case value
true +1
diff --git a/stdlib/source/lux/data/coll/array.lux b/stdlib/source/lux/data/coll/array.lux
index 3e649fc7d..8f3bee0c3 100644
--- a/stdlib/source/lux/data/coll/array.lux
+++ b/stdlib/source/lux/data/coll/array.lux
@@ -2,7 +2,7 @@
lux
(lux (control [monoid #+ Monoid]
[functor #+ Functor]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
fold)
(data (coll [list "list/" Fold<List>])
[product])
@@ -149,8 +149,8 @@
#.None
output)))))
-(struct: #export (Eq<Array> Eq<a>)
- (All [a] (-> (Eq a) (Eq (Array a))))
+(struct: #export (Equivalence<Array> Equivalence<a>)
+ (All [a] (-> (Equivalence a) (Equivalence (Array a))))
(def: (= xs ys)
(let [sxs (size xs)
sxy (size ys)]
@@ -162,7 +162,7 @@
true
[(#.Some x) (#.Some y)]
- (:: Eq<a> = x y)
+ (:: Equivalence<a> = x y)
_
false)))
diff --git a/stdlib/source/lux/data/coll/bits.lux b/stdlib/source/lux/data/coll/bits.lux
index 950aadd0f..94d3398a0 100644
--- a/stdlib/source/lux/data/coll/bits.lux
+++ b/stdlib/source/lux/data/coll/bits.lux
@@ -1,6 +1,6 @@
(.module:
[lux #- not and or]
- (lux (control [equality #+ Eq]
+ (lux (control [equivalence #+ Equivalence]
pipe)
(data [maybe]
[bit]
@@ -151,7 +151,7 @@
[xor bit.xor]
)
-(struct: #export _ (Eq Bits)
+(struct: #export _ (Equivalence Bits)
(def: (= reference sample)
(let [size (n/max (array.size reference)
(array.size sample))]
diff --git a/stdlib/source/lux/data/coll/dictionary/ordered.lux b/stdlib/source/lux/data/coll/dictionary/ordered.lux
index aec44d943..6fbcb5a42 100644
--- a/stdlib/source/lux/data/coll/dictionary/ordered.lux
+++ b/stdlib/source/lux/data/coll/dictionary/ordered.lux
@@ -1,7 +1,7 @@
(.module:
lux
(lux (control [monad #+ do Monad]
- equality
+ equivalence
[order #+ Order])
(data (coll [list "L/" Monad<List> Monoid<List> Fold<List>])
["p" product]
@@ -551,9 +551,9 @@
[values v (get@ #value node')]
)
-(struct: #export (Eq<Dict> Eq<v>) (All [k v] (-> (Eq v) (Eq (Dict k v))))
+(struct: #export (Equivalence<Dict> Equivalence<v>) (All [k v] (-> (Equivalence v) (Equivalence (Dict k v))))
(def: (= reference sample)
- (let [Eq<k> (:: sample eq)]
+ (let [Equivalence<k> (:: sample eq)]
(loop [entriesR (entries reference)
entriesS (entries sample)]
(case [entriesR entriesS]
@@ -561,8 +561,8 @@
true
[(#.Cons [keyR valueR] entriesR') (#.Cons [keyS valueS] entriesS')]
- (and (:: Eq<k> = keyR keyS)
- (:: Eq<v> = valueR valueS)
+ (and (:: Equivalence<k> = keyR keyS)
+ (:: Equivalence<v> = valueR valueS)
(recur entriesR' entriesS'))
_
diff --git a/stdlib/source/lux/data/coll/dictionary/plist.lux b/stdlib/source/lux/data/coll/dictionary/plist.lux
index e9e08107a..c483a3287 100644
--- a/stdlib/source/lux/data/coll/dictionary/plist.lux
+++ b/stdlib/source/lux/data/coll/dictionary/plist.lux
@@ -1,6 +1,6 @@
(.module:
lux
- (lux (data [text "text/" Eq<Text>])))
+ (lux (data [text "text/" Equivalence<Text>])))
(type: #export (PList a)
(List [Text a]))
diff --git a/stdlib/source/lux/data/coll/dictionary/unordered.lux b/stdlib/source/lux/data/coll/dictionary/unordered.lux
index 12c58a2fd..bb6d12b24 100644
--- a/stdlib/source/lux/data/coll/dictionary/unordered.lux
+++ b/stdlib/source/lux/data/coll/dictionary/unordered.lux
@@ -1,7 +1,7 @@
(.module:
lux
(lux (control hash
- [equality #+ Eq])
+ [equivalence #+ Equivalence])
(data [maybe]
(coll [list "list/" Fold<List> Functor<List> Monoid<List>]
[array "array/" Functor<Array> Fold<Array>])
@@ -671,14 +671,14 @@
keys)))
## [Structures]
-(struct: #export (Eq<Dict> Eq<v>) (All [k v] (-> (Eq v) (Eq (Dict k v))))
+(struct: #export (Equivalence<Dict> Equivalence<v>) (All [k v] (-> (Equivalence v) (Equivalence (Dict k v))))
(def: (= test subject)
(and (n/= (size test)
(size subject))
(list.every? (function (_ k)
(case [(get k test) (get k subject)]
[(#.Some tk) (#.Some sk)]
- (:: Eq<v> = tk sk)
+ (:: Equivalence<v> = tk sk)
_
false))
diff --git a/stdlib/source/lux/data/coll/list.lux b/stdlib/source/lux/data/coll/list.lux
index 7f5a71994..4049fce8e 100644
--- a/stdlib/source/lux/data/coll/list.lux
+++ b/stdlib/source/lux/data/coll/list.lux
@@ -4,7 +4,7 @@
[functor #+ Functor]
[apply #+ Apply]
[monad #+ do Monad]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
[fold])
(data [number "nat/" Codec<Text,Nat>]
bool
@@ -265,15 +265,15 @@
(nth (dec i) xs'))))
## [Structures]
-(struct: #export (Eq<List> Eq<a>)
- (All [a] (-> (Eq a) (Eq (List a))))
+(struct: #export (Equivalence<List> Equivalence<a>)
+ (All [a] (-> (Equivalence a) (Equivalence (List a))))
(def: (= xs ys)
(case [xs ys]
[#.Nil #.Nil]
true
[(#.Cons x xs') (#.Cons y ys')]
- (and (:: Eq<a> = x y)
+ (and (:: Equivalence<a> = x y)
(= xs' ys'))
[_ _]
@@ -357,7 +357,7 @@
_ false))
(def: #export (member? eq xs x)
- (All [a] (-> (Eq a) (List a) a Bool))
+ (All [a] (-> (Equivalence a) (List a) a Bool))
(case xs
#.Nil false
(#.Cons x' xs') (or (:: eq = x x')
diff --git a/stdlib/source/lux/data/coll/queue.lux b/stdlib/source/lux/data/coll/queue.lux
index 3a39a3e41..490351d29 100644
--- a/stdlib/source/lux/data/coll/queue.lux
+++ b/stdlib/source/lux/data/coll/queue.lux
@@ -1,6 +1,6 @@
(.module:
lux
- (lux (control [equality #+ Eq]
+ (lux (control [equivalence #+ Equivalence]
["F" functor])
(data (coll [list "L/" Monoid<List> Functor<List>]))))
@@ -37,11 +37,11 @@
(All [a] (-> (Queue a) Bool))
(|>> (get@ #front) list.empty?))
-(def: #export (member? Eq<a> queue member)
- (All [a] (-> (Eq a) (Queue a) a Bool))
+(def: #export (member? Equivalence<a> queue member)
+ (All [a] (-> (Equivalence a) (Queue a) a Bool))
(let [(^slots [#front #rear]) queue]
- (or (list.member? Eq<a> front member)
- (list.member? Eq<a> rear member))))
+ (or (list.member? Equivalence<a> front member)
+ (list.member? Equivalence<a> rear member))))
(def: #export (pop queue)
(All [a] (-> (Queue a) (Queue a)))
@@ -67,10 +67,10 @@
_
(update@ #rear (|>> (#.Cons val)) queue)))
-(struct: #export (Eq<Queue> Eq<a>)
- (All [a] (-> (Eq a) (Eq (Queue a))))
+(struct: #export (Equivalence<Queue> Equivalence<a>)
+ (All [a] (-> (Equivalence a) (Equivalence (Queue a))))
(def: (= qx qy)
- (:: (list.Eq<List> Eq<a>) = (to-list qx) (to-list qy))))
+ (:: (list.Equivalence<List> Equivalence<a>) = (to-list qx) (to-list qy))))
(struct: #export _ (F.Functor Queue)
(def: (map f fa)
diff --git a/stdlib/source/lux/data/coll/queue/priority.lux b/stdlib/source/lux/data/coll/queue/priority.lux
index a1e765fc3..443a54908 100644
--- a/stdlib/source/lux/data/coll/queue/priority.lux
+++ b/stdlib/source/lux/data/coll/queue/priority.lux
@@ -1,6 +1,6 @@
(.module:
lux
- (lux (control [equality #+ Eq]
+ (lux (control [equivalence #+ Equivalence]
[monad #+ do Monad])
(data (coll (tree [finger #+ Tree]))
[number "nat/" Interval<Nat>]
@@ -39,8 +39,8 @@
(#finger.Branch _ left right)
(n/+ (recur left) (recur right))))))
-(def: #export (member? Eq<a> queue member)
- (All [a] (-> (Eq a) (Queue a) a Bool))
+(def: #export (member? Equivalence<a> queue member)
+ (All [a] (-> (Equivalence a) (Queue a) a Bool))
(case queue
#.None
false
@@ -49,7 +49,7 @@
(loop [node (get@ #finger.node fingers)]
(case node
(#finger.Leaf _ reference)
- (:: Eq<a> = reference member)
+ (:: Equivalence<a> = reference member)
(#finger.Branch _ left right)
(or (recur left)
diff --git a/stdlib/source/lux/data/coll/row.lux b/stdlib/source/lux/data/coll/row.lux
index 0b258a2ec..2c50120ec 100644
--- a/stdlib/source/lux/data/coll/row.lux
+++ b/stdlib/source/lux/data/coll/row.lux
@@ -3,7 +3,7 @@
(lux (control [functor #+ Functor]
[apply #+ Apply]
[monad #+ do Monad]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
monoid
fold
["p" parser])
@@ -328,9 +328,9 @@
empty
list))
-(def: #export (member? a/Eq vec val)
- (All [a] (-> (Eq a) (Row a) a Bool))
- (list.member? a/Eq (to-list vec) val))
+(def: #export (member? a/Equivalence vec val)
+ (All [a] (-> (Equivalence a) (Row a) a Bool))
+ (list.member? a/Equivalence (to-list vec) val))
(def: #export empty?
(All [a] (-> (Row a) Bool))
@@ -343,22 +343,22 @@
(wrap (list (` (from-list (list (~+ elems)))))))
## [Structures]
-(struct: #export (Eq<Node> Eq<a>) (All [a] (-> (Eq a) (Eq (Node a))))
+(struct: #export (Equivalence<Node> Equivalence<a>) (All [a] (-> (Equivalence a) (Equivalence (Node a))))
(def: (= v1 v2)
(case [v1 v2]
[(#Base b1) (#Base b2)]
- (:: (array.Eq<Array> Eq<a>) = b1 b2)
+ (:: (array.Equivalence<Array> Equivalence<a>) = b1 b2)
[(#Hierarchy h1) (#Hierarchy h2)]
- (:: (array.Eq<Array> (Eq<Node> Eq<a>)) = h1 h2)
+ (:: (array.Equivalence<Array> (Equivalence<Node> Equivalence<a>)) = h1 h2)
_
false)))
-(struct: #export (Eq<Row> Eq<a>) (All [a] (-> (Eq a) (Eq (Row a))))
+(struct: #export (Equivalence<Row> Equivalence<a>) (All [a] (-> (Equivalence a) (Equivalence (Row a))))
(def: (= v1 v2)
(and (n/= (get@ #size v1) (get@ #size v2))
- (let [(^open "Node/") (Eq<Node> Eq<a>)]
+ (let [(^open "Node/") (Equivalence<Node> Equivalence<a>)]
(and (Node/= (#Base (get@ #tail v1))
(#Base (get@ #tail v2)))
(Node/= (#Hierarchy (get@ #root v1))
diff --git a/stdlib/source/lux/data/coll/set/ordered.lux b/stdlib/source/lux/data/coll/set/ordered.lux
index 5b7524a8a..0862d62c2 100644
--- a/stdlib/source/lux/data/coll/set/ordered.lux
+++ b/stdlib/source/lux/data/coll/set/ordered.lux
@@ -1,7 +1,7 @@
(.module:
lux
(lux (control [monad #+ do Monad]
- equality
+ equivalence
[order #+ Order])
(data (coll [list "L/" Monad<List> Monoid<List> Fold<List>]
(dictionary ["d" ordered]))
@@ -80,7 +80,7 @@
(All [a] (-> (Set a) (Set a) Bool))
(sub? super sub))
-(struct: #export Eq<Set> (All [a] (Eq (Set a)))
+(struct: #export Equivalence<Set> (All [a] (Equivalence (Set a)))
(def: (= reference sample)
- (:: (list.Eq<List> (:: sample eq))
+ (:: (list.Equivalence<List> (:: sample eq))
= (to-list reference) (to-list sample))))
diff --git a/stdlib/source/lux/data/coll/set/unordered.lux b/stdlib/source/lux/data/coll/set/unordered.lux
index e977f35e5..4fcc0c1cc 100644
--- a/stdlib/source/lux/data/coll/set/unordered.lux
+++ b/stdlib/source/lux/data/coll/set/unordered.lux
@@ -1,6 +1,6 @@
(.module:
lux
- (lux (control [equality #+ Eq]
+ (lux (control [equivalence #+ Equivalence]
[hash #*])
(data (coll (dictionary ["dict" unordered #+ Dict])
[list "list/" Fold<List> Functor<List>]))))
@@ -63,12 +63,12 @@
(sub? super sub))
## [Structures]
-(struct: #export Eq<Set> (All [a] (Eq (Set a)))
+(struct: #export Equivalence<Set> (All [a] (Equivalence (Set a)))
(def: (= (^@ test [Hash<a> _]) subject)
- (:: (list.Eq<List> (get@ #hash.eq Hash<a>)) = (to-list test) (to-list subject))))
+ (:: (list.Equivalence<List> (get@ #hash.eq Hash<a>)) = (to-list test) (to-list subject))))
(struct: #export Hash<Set> (All [a] (Hash (Set a)))
- (def: eq Eq<Set>)
+ (def: eq Equivalence<Set>)
(def: (hash (^@ set [Hash<a> _]))
(list/fold (function (_ elem acc) (n/+ (:: Hash<a> hash elem) acc))
diff --git a/stdlib/source/lux/data/coll/tree/rose.lux b/stdlib/source/lux/data/coll/tree/rose.lux
index 28ca96d41..8171dcdaa 100644
--- a/stdlib/source/lux/data/coll/tree/rose.lux
+++ b/stdlib/source/lux/data/coll/tree/rose.lux
@@ -2,7 +2,7 @@
lux
(lux (control functor
[monad #+ do Monad]
- equality
+ equivalence
["p" parser]
fold)
(data (coll [list "L/" Monad<List> Fold<List>]))
@@ -54,10 +54,10 @@
#children (list (~+ (L/map recur children)))})))))))
## [Structs]
-(struct: #export (Eq<Tree> Eq<a>) (All [a] (-> (Eq a) (Eq (Tree a))))
+(struct: #export (Equivalence<Tree> Equivalence<a>) (All [a] (-> (Equivalence a) (Equivalence (Tree a))))
(def: (= tx ty)
- (and (:: Eq<a> = (get@ #value tx) (get@ #value ty))
- (:: (list.Eq<List> (Eq<Tree> Eq<a>)) = (get@ #children tx) (get@ #children ty)))))
+ (and (:: Equivalence<a> = (get@ #value tx) (get@ #value ty))
+ (:: (list.Equivalence<List> (Equivalence<Tree> Equivalence<a>)) = (get@ #children tx) (get@ #children ty)))))
(struct: #export _ (Functor Tree)
(def: (map f fa)
diff --git a/stdlib/source/lux/data/color.lux b/stdlib/source/lux/data/color.lux
index 241347859..67c9c3388 100644
--- a/stdlib/source/lux/data/color.lux
+++ b/stdlib/source/lux/data/color.lux
@@ -1,6 +1,6 @@
(.module:
lux
- (lux (control ["eq" equality])
+ (lux (control ["eq" equivalence])
(data (coll [list "L/" Functor<List>]))
[math]
(type abstract)))
@@ -33,7 +33,7 @@
(-> Color [Nat Nat Nat])
(|>> :representation))
- (struct: #export _ (eq.Eq Color)
+ (struct: #export _ (eq.Equivalence Color)
(def: (= reference sample)
(let [[rr rg rb] (:representation reference)
[sr sg sb] (:representation sample)]
diff --git a/stdlib/source/lux/data/format/json.lux b/stdlib/source/lux/data/format/json.lux
index a5c81ad6b..984fbb1aa 100644
--- a/stdlib/source/lux/data/format/json.lux
+++ b/stdlib/source/lux/data/format/json.lux
@@ -3,11 +3,11 @@
For more information, please see: http://www.json.org/"}
[lux #- Array]
(lux (control [monad #+ do Monad]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
codec
["p" parser "parser/" Monad<Parser>])
(data [bool]
- [text "text/" Eq<Text> Monoid<Text>]
+ [text "text/" Equivalence<Text> Monoid<Text>]
(text ["l" lexer])
[number "frac/" Codec<Text,Frac> "nat/" Codec<Text,Nat>]
[maybe]
@@ -147,7 +147,7 @@
[get-object #Object Object "objects"]
)
-(struct: #export _ (Eq JSON)
+(struct: #export _ (Equivalence JSON)
(def: (= x y)
(case [x y]
[#Null #Null]
@@ -156,9 +156,9 @@
(^template [<tag> <struct>]
[(<tag> x') (<tag> y')]
(:: <struct> = x' y'))
- ([#Boolean bool.Eq<Bool>]
- [#Number number.Eq<Frac>]
- [#String text.Eq<Text>])
+ ([#Boolean bool.Equivalence<Bool>]
+ [#Number number.Equivalence<Frac>]
+ [#String text.Equivalence<Text>])
[(#Array xs) (#Array ys)]
(and (n/= (row.size xs) (row.size ys))
@@ -268,9 +268,9 @@
_
(fail ($_ text/compose "JSON value is not a " <desc> ".")))))]
- [boolean? boolean! Bool bool.Eq<Bool> (:: bool.Codec<Text,Bool> encode) #Boolean "boolean" id]
- [number? number! Frac number.Eq<Frac> (:: number.Codec<Text,Frac> encode) #Number "number" id]
- [string? string! Text text.Eq<Text> text.encode #String "string" id]
+ [boolean? boolean! Bool bool.Equivalence<Bool> (:: bool.Codec<Text,Bool> encode) #Boolean "boolean" id]
+ [number? number! Frac number.Equivalence<Frac> (:: number.Codec<Text,Frac> encode) #Number "number" id]
+ [string? string! Text text.Equivalence<Text> text.encode #String "string" id]
)
(def: #export (nullable parser)
diff --git a/stdlib/source/lux/data/format/xml.lux b/stdlib/source/lux/data/format/xml.lux
index a725263af..7d1614fca 100644
--- a/stdlib/source/lux/data/format/xml.lux
+++ b/stdlib/source/lux/data/format/xml.lux
@@ -1,17 +1,17 @@
(.module: {#.doc "Functionality for reading, generating and processing values in the XML format."}
lux
(lux (control monad
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
codec
["p" parser "p/" Monad<Parser>]
["ex" exception #+ exception:])
- (data [text "text/" Eq<Text> Monoid<Text>]
+ (data [text "text/" Equivalence<Text> Monoid<Text>]
(text ["l" lexer])
[number]
["E" error]
[product]
[maybe "m/" Monad<Maybe>]
- [ident "ident/" Eq<Ident> Codec<Text,Ident>]
+ [ident "ident/" Equivalence<Ident> Codec<Text,Ident>]
(coll [list "list/" Monad<List>]
(dictionary ["d" unordered])))))
@@ -224,7 +224,7 @@
(def: encode write)
(def: decode read))
-(struct: #export _ (Eq XML)
+(struct: #export _ (Equivalence XML)
(def: (= reference sample)
(case [reference sample]
[(#Text reference/value) (#Text sample/value)]
@@ -233,7 +233,7 @@
[(#Node reference/tag reference/attrs reference/children)
(#Node sample/tag sample/attrs sample/children)]
(and (ident/= reference/tag sample/tag)
- (:: (d.Eq<Dict> text.Eq<Text>) = reference/attrs sample/attrs)
+ (:: (d.Equivalence<Dict> text.Equivalence<Text>) = reference/attrs sample/attrs)
(n/= (list.size reference/children)
(list.size sample/children))
(|> (list.zip2 reference/children sample/children)
diff --git a/stdlib/source/lux/data/ident.lux b/stdlib/source/lux/data/ident.lux
index 867f96d8b..cb0b35b1f 100644
--- a/stdlib/source/lux/data/ident.lux
+++ b/stdlib/source/lux/data/ident.lux
@@ -1,9 +1,9 @@
(.module:
lux
- (lux (control [equality #+ Eq]
+ (lux (control [equivalence #+ Equivalence]
[codec #+ Codec]
hash)
- (data [text "text/" Monoid<Text> Eq<Text>])))
+ (data [text "text/" Monoid<Text> Equivalence<Text>])))
## [Types]
## (type: Ident
@@ -20,7 +20,7 @@
)
## [Structures]
-(struct: #export _ (Eq Ident)
+(struct: #export _ (Equivalence Ident)
(def: (= [xmodule xname] [ymodule yname])
(and (text/= xmodule ymodule)
(text/= xname yname))))
@@ -45,7 +45,7 @@
(#.Left (text/compose "Invalid format for Ident: " input))))))
(struct: #export _ (Hash Ident)
- (def: eq Eq<Ident>)
+ (def: eq Equivalence<Ident>)
(def: (hash [module name])
(let [(^open) text.Hash<Text>]
diff --git a/stdlib/source/lux/data/maybe.lux b/stdlib/source/lux/data/maybe.lux
index 6c5a7d02e..bfdb0fbe5 100644
--- a/stdlib/source/lux/data/maybe.lux
+++ b/stdlib/source/lux/data/maybe.lux
@@ -4,7 +4,7 @@
["F" functor]
["A" apply]
[monad #+ do Monad]
- [equality #+ Eq])))
+ [equivalence #+ Equivalence])))
## [Types]
## (type: (Maybe a)
@@ -47,14 +47,14 @@
#.None #.None
(#.Some xs) xs)))
-(struct: #export (Eq<Maybe> Eq<a>) (All [a] (-> (Eq a) (Eq (Maybe a))))
+(struct: #export (Equivalence<Maybe> Equivalence<a>) (All [a] (-> (Equivalence a) (Equivalence (Maybe a))))
(def: (= mx my)
(case [mx my]
[#.None #.None]
true
[(#.Some x) (#.Some y)]
- (:: Eq<a> = x y)
+ (:: Equivalence<a> = x y)
_
false)))
diff --git a/stdlib/source/lux/data/number.lux b/stdlib/source/lux/data/number.lux
index 8c9e663cb..637d0d0ba 100644
--- a/stdlib/source/lux/data/number.lux
+++ b/stdlib/source/lux/data/number.lux
@@ -2,7 +2,7 @@
lux
(lux (control number
[monoid #+ Monoid]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
hash
[order]
enum
@@ -14,7 +14,7 @@
## [Structures]
(do-template [<type> <test>]
- [(struct: #export _ (Eq <type>)
+ [(struct: #export _ (Equivalence <type>)
(def: = <test>))]
[ Nat n/=]
@@ -31,10 +31,10 @@
(def: > <gt>)
(def: >= <gte>))]
- [ Nat Eq<Nat> n/< n/<= n/> n/>=]
- [ Int Eq<Int> i/< i/<= i/> i/>=]
- [Rev Eq<Rev> r/< r/<= r/> r/>=]
- [Frac Eq<Frac> f/< f/<= f/> f/>=]
+ [ Nat Equivalence<Nat> n/< n/<= n/> n/>=]
+ [ Int Equivalence<Int> i/< i/<= i/> i/>=]
+ [Rev Equivalence<Rev> r/< r/<= r/> r/>=]
+ [Frac Equivalence<Frac> f/< f/<= f/> f/>=]
)
(struct: #export _ (Number Nat)
@@ -995,18 +995,18 @@
## [Hash]
(struct: #export _ (Hash Nat)
- (def: eq Eq<Nat>)
+ (def: eq Equivalence<Nat>)
(def: hash id))
(struct: #export _ (Hash Int)
- (def: eq Eq<Int>)
+ (def: eq Equivalence<Int>)
(def: hash .nat))
(struct: #export _ (Hash Frac)
- (def: eq Eq<Frac>)
+ (def: eq Equivalence<Frac>)
(def: hash frac-to-bits))
(struct: #export _ (Hash Rev)
- (def: eq Eq<Rev>)
+ (def: eq Equivalence<Rev>)
(def: hash (|>> (:coerce Nat))))
diff --git a/stdlib/source/lux/data/number/complex.lux b/stdlib/source/lux/data/number/complex.lux
index 792d2ce53..a7e535f08 100644
--- a/stdlib/source/lux/data/number/complex.lux
+++ b/stdlib/source/lux/data/number/complex.lux
@@ -1,7 +1,7 @@
(.module: {#.doc "Complex arithmetic."}
lux
(lux [math]
- (control [equality #+ Eq]
+ (control [equivalence #+ Equivalence]
number
codec
["M" monad #+ do Monad]
@@ -56,7 +56,7 @@
[- f/-]
)
-(struct: #export _ (Eq Complex)
+(struct: #export _ (Equivalence Complex)
(def: = ..=))
(def: #export negate
diff --git a/stdlib/source/lux/data/number/ratio.lux b/stdlib/source/lux/data/number/ratio.lux
index 6d241064a..c96c66882 100644
--- a/stdlib/source/lux/data/number/ratio.lux
+++ b/stdlib/source/lux/data/number/ratio.lux
@@ -1,7 +1,7 @@
(.module: {#.doc "Rational arithmetic."}
lux
(lux [math]
- (control [equality #+ Eq]
+ (control [equivalence #+ Equivalence]
[order]
number
codec
@@ -100,11 +100,11 @@
[max >]
)
-(struct: #export _ (Eq Ratio)
+(struct: #export _ (Equivalence Ratio)
(def: = ..=))
(struct: #export _ (order.Order Ratio)
- (def: eq Eq<Ratio>)
+ (def: eq Equivalence<Ratio>)
(def: < ..<)
(def: <= ..<=)
(def: > ..>)
diff --git a/stdlib/source/lux/data/text.lux b/stdlib/source/lux/data/text.lux
index 58826e2c9..04af675c4 100644
--- a/stdlib/source/lux/data/text.lux
+++ b/stdlib/source/lux/data/text.lux
@@ -1,7 +1,7 @@
(.module:
lux
(lux (control [monoid #+ Monoid]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
[order]
[monad #+ do Monad]
[codec #+ Codec]
@@ -123,12 +123,12 @@
(split-all-with "\n"))
## [Structures]
-(struct: #export _ (Eq Text)
+(struct: #export _ (Equivalence Text)
(def: (= test subject)
("lux text =" subject test)))
(struct: #export _ (order.Order Text)
- (def: eq Eq<Text>)
+ (def: eq Equivalence<Text>)
(def: (< test subject)
("lux text <" subject test))
@@ -167,7 +167,7 @@
($_ text/compose "\"" escaped "\"")))
(struct: #export _ (Hash Text)
- (def: eq Eq<Text>)
+ (def: eq Equivalence<Text>)
(def: (hash input)
("lux text hash" input)))
diff --git a/stdlib/source/lux/host.jvm.lux b/stdlib/source/lux/host.jvm.lux
index 78a190505..6628cb81d 100644
--- a/stdlib/source/lux/host.jvm.lux
+++ b/stdlib/source/lux/host.jvm.lux
@@ -9,13 +9,13 @@
number
[maybe]
[product]
- [text "text/" Eq<Text> Monoid<Text>]
+ [text "text/" Equivalence<Text> Monoid<Text>]
text/format
[bool "bool/" Codec<Text,Bool>])
[macro #+ with-gensyms Functor<Meta> Monad<Meta>]
(macro [code]
["s" syntax #+ syntax: Syntax])
- (lang [type "type/" Eq<Type>])
+ (lang [type "type/" Equivalence<Type>])
))
(do-template [<name> <op> <from> <to>]
@@ -462,7 +462,7 @@
(def: (qualify imports name)
(-> Class-Imports Text Text)
- (if (list.member? text.Eq<Text> java/lang/* name)
+ (if (list.member? text.Equivalence<Text> java/lang/* name)
(format "java/lang/" name)
(maybe.default name (get-import name imports))))
@@ -675,7 +675,7 @@
(do p.Monad<Parser>
[name (full-class-name^ imports)
_ (assert-no-periods name)]
- (if (list.member? text.Eq<Text> (list/map product.left type-vars) name)
+ (if (list.member? text.Equivalence<Text> (list/map product.left type-vars) name)
(wrap (#GenericTypeVar name))
(wrap (#GenericClass name (list)))))
(s.form (do p.Monad<Parser>
@@ -701,7 +701,7 @@
_ (assert-no-periods name)
params (p.some (generic-type^ imports type-vars))
_ (p.assert (format name " cannot be a type-parameter!")
- (not (list.member? text.Eq<Text> (list/map product.left type-vars) name)))]
+ (not (list.member? text.Equivalence<Text> (list/map product.left type-vars) name)))]
(wrap (#GenericClass name params))))
))
diff --git a/stdlib/source/lux/lang/compiler/analysis.lux b/stdlib/source/lux/lang/compiler/analysis.lux
index 9d35ff92c..c9e9b8be1 100644
--- a/stdlib/source/lux/lang/compiler/analysis.lux
+++ b/stdlib/source/lux/lang/compiler/analysis.lux
@@ -2,7 +2,7 @@
[lux #- nat int rev]
(lux (data [product]
[error]
- [text "text/" Eq<Text>]
+ [text "text/" Equivalence<Text>]
(coll [list "list/" Fold<List>]))
[function])
[///reference #+ Register Variable Reference]
diff --git a/stdlib/source/lux/lang/compiler/analysis/case/coverage.lux b/stdlib/source/lux/lang/compiler/analysis/case/coverage.lux
index 3a63a76fc..c6a36e022 100644
--- a/stdlib/source/lux/lang/compiler/analysis/case/coverage.lux
+++ b/stdlib/source/lux/lang/compiler/analysis/case/coverage.lux
@@ -2,8 +2,8 @@
lux
(lux (control [monad #+ do]
["ex" exception #+ exception:]
- equality)
- (data [bool "bool/" Eq<Bool>]
+ equivalence)
+ (data [bool "bool/" Equivalence<Bool>]
[number]
["e" error "error/" Monad<Error>]
[maybe]
@@ -142,7 +142,7 @@
_
(list coverage)))
-(struct: _ (Eq Coverage)
+(struct: _ (Equivalence Coverage)
(def: (= reference sample)
(case [reference sample]
[#Exhaustive #Exhaustive]
@@ -154,7 +154,7 @@
[(#Variant allR casesR) (#Variant allS casesS)]
(and (n/= (cases allR)
(cases allS))
- (:: (dict.Eq<Dict> =) = casesR casesS))
+ (:: (dict.Equivalence<Dict> =) = casesR casesS))
[(#Seq leftR rightR) (#Seq leftS rightS)]
(and (= leftR leftS)
@@ -171,7 +171,7 @@
_
false)))
-(open: "C/" Eq<Coverage>)
+(open: "C/" Equivalence<Coverage>)
## After determining the coverage of each individual pattern, it is
## necessary to merge them all to figure out if the entire
@@ -200,7 +200,7 @@
(cond (not (n/= (cases allSF) (cases allA)))
(e.fail "Variants do not match.")
- (:: (dict.Eq<Dict> Eq<Coverage>) = casesSF casesA)
+ (:: (dict.Equivalence<Dict> Equivalence<Coverage>) = casesSF casesA)
redundant-pattern
## else
diff --git a/stdlib/source/lux/lang/compiler/analysis/reference.lux b/stdlib/source/lux/lang/compiler/analysis/reference.lux
index 5652e21fc..a3436d15b 100644
--- a/stdlib/source/lux/lang/compiler/analysis/reference.lux
+++ b/stdlib/source/lux/lang/compiler/analysis/reference.lux
@@ -5,7 +5,7 @@
[macro]
(macro [code])
(lang (type ["tc" check]))
- (data [text "text/" Eq<Text>]
+ (data [text "text/" Equivalence<Text>]
text/format))
[///]
[// #+ Analysis Operation]
diff --git a/stdlib/source/lux/lang/compiler/extension/analysis/host.jvm.lux b/stdlib/source/lux/lang/compiler/extension/analysis/host.jvm.lux
index 9b742b415..826650ccc 100644
--- a/stdlib/source/lux/lang/compiler/extension/analysis/host.jvm.lux
+++ b/stdlib/source/lux/lang/compiler/extension/analysis/host.jvm.lux
@@ -6,8 +6,8 @@
(data ["e" error]
[maybe]
[product]
- [bool "bool/" Eq<Bool>]
- [text "text/" Eq<Text>]
+ [bool "bool/" Equivalence<Bool>]
+ [text "text/" Equivalence<Text>]
(text format
["l" lexer])
(coll [list "list/" Fold<List> Functor<List> Monoid<List>]
@@ -200,13 +200,13 @@
(def: #export boxes
(Dict Text Text)
(|> (list ["boolean" "java.lang.Boolean"]
- ["byte" "java.lang.Byte"]
- ["short" "java.lang.Short"]
- ["int" "java.lang.Integer"]
- ["long" "java.lang.Long"]
- ["float" "java.lang.Float"]
- ["double" "java.lang.Double"]
- ["char" "java.lang.Character"])
+ ["byte" "java.lang.Byte"]
+ ["short" "java.lang.Short"]
+ ["int" "java.lang.Integer"]
+ ["long" "java.lang.Long"]
+ ["float" "java.lang.Float"]
+ ["double" "java.lang.Double"]
+ ["char" "java.lang.Character"])
(dict.from-list text.Hash<Text>)))
(def: (array//length proc)
diff --git a/stdlib/source/lux/lang/compiler/synthesis/case.lux b/stdlib/source/lux/lang/compiler/synthesis/case.lux
index 88bfd36e9..bdf06f05f 100644
--- a/stdlib/source/lux/lang/compiler/synthesis/case.lux
+++ b/stdlib/source/lux/lang/compiler/synthesis/case.lux
@@ -1,13 +1,13 @@
(.module:
lux
- (lux (control [equality #+ Eq]
+ (lux (control [equivalence #+ Equivalence]
pipe
[monad #+ do])
(data [product]
- [bool "bool/" Eq<Bool>]
- [text "text/" Eq<Text>]
+ [bool "bool/" Equivalence<Bool>]
+ [text "text/" Equivalence<Text>]
text/format
- [number "frac/" Eq<Frac>]
+ [number "frac/" Equivalence<Frac>]
(coll [list "list/" Fold<List> Monoid<List>])))
[///reference]
[///compiler #+ Operation "operation/" Monad<Operation>]
@@ -99,7 +99,7 @@
rightP
<default>))
([#//.Bool bool/=]
- [#//.I64 (:coerce (Eq I64) i/=)]
+ [#//.I64 (:coerce (Equivalence I64) i/=)]
[#//.F64 frac/=]
[#//.Text text/=])
diff --git a/stdlib/source/lux/lang/module.lux b/stdlib/source/lux/lang/module.lux
index d6b66da74..b93b5e27b 100644
--- a/stdlib/source/lux/lang/module.lux
+++ b/stdlib/source/lux/lang/module.lux
@@ -3,7 +3,7 @@
(lux (control [monad #+ do]
["ex" exception #+ exception:]
pipe)
- (data [text "text/" Eq<Text>]
+ (data [text "text/" Equivalence<Text>]
text/format
["e" error]
(coll [list "list/" Fold<List> Functor<List>]
diff --git a/stdlib/source/lux/lang/reference.lux b/stdlib/source/lux/lang/reference.lux
index 0f7438345..c76f78d87 100644
--- a/stdlib/source/lux/lang/reference.lux
+++ b/stdlib/source/lux/lang/reference.lux
@@ -1,6 +1,6 @@
(.module:
lux
- (lux (control [equality #+ Eq]
+ (lux (control [equivalence #+ Equivalence]
[hash #+ Hash]
pipe)))
@@ -14,7 +14,7 @@
(#Variable Variable)
(#Constant Ident))
-(struct: #export _ (Eq Variable)
+(struct: #export _ (Equivalence Variable)
(def: (= reference sample)
(case [reference sample]
(^template [<tag>]
@@ -26,7 +26,7 @@
false)))
(struct: #export _ (Hash Variable)
- (def: eq Eq<Variable>)
+ (def: eq Equivalence<Variable>)
(def: (hash var)
(case var
(#Local register)
diff --git a/stdlib/source/lux/lang/scope.lux b/stdlib/source/lux/lang/scope.lux
index 217b7fcb3..191eb5e5d 100644
--- a/stdlib/source/lux/lang/scope.lux
+++ b/stdlib/source/lux/lang/scope.lux
@@ -1,7 +1,7 @@
(.module:
lux
(lux (control monad)
- (data [text "text/" Eq<Text>]
+ (data [text "text/" Equivalence<Text>]
text/format
[maybe "maybe/" Monad<Maybe>]
[product]
diff --git a/stdlib/source/lux/lang/type.lux b/stdlib/source/lux/lang/type.lux
index cd18e103d..96ea1a9b0 100644
--- a/stdlib/source/lux/lang/type.lux
+++ b/stdlib/source/lux/lang/type.lux
@@ -1,10 +1,10 @@
(.module: {#.doc "Basic functionality for working with types."}
[lux #- function]
- (lux (control [equality #+ Eq]
+ (lux (control [equivalence #+ Equivalence]
[monad #+ do Monad]
["p" parser])
- (data [text "text/" Monoid<Text> Eq<Text>]
- [ident "ident/" Eq<Ident> Codec<Text,Ident>]
+ (data [text "text/" Monoid<Text> Equivalence<Text>]
+ [ident "ident/" Equivalence<Ident> Codec<Text,Ident>]
[number "nat/" Codec<Text,Nat>]
[maybe]
(coll [list #+ "list/" Functor<List> Monoid<List> Fold<List>]))
@@ -46,7 +46,7 @@
))
## [Structures]
-(struct: #export _ (Eq Type)
+(struct: #export _ (Equivalence Type)
(def: (= x y)
(case [x y]
[(#.Primitive xname xparams) (#.Primitive yname yparams)]
diff --git a/stdlib/source/lux/lang/type/check.lux b/stdlib/source/lux/lang/type/check.lux
index 482ea66bf..5e6ab2714 100644
--- a/stdlib/source/lux/lang/type/check.lux
+++ b/stdlib/source/lux/lang/type/check.lux
@@ -4,14 +4,14 @@
[apply #+ Apply]
[monad #+ do Monad]
["ex" exception #+ exception:])
- (data [text "text/" Monoid<Text> Eq<Text>]
+ (data [text "text/" Monoid<Text> Equivalence<Text>]
[number "nat/" Codec<Text,Nat>]
[maybe]
[product]
(coll [list]
(set ["set" unordered #+ Set]))
["e" error])
- (lang [type "type/" Eq<Type>])
+ (lang [type "type/" Equivalence<Type>])
))
(exception: #export (unknown-type-var {id Nat})
@@ -419,7 +419,7 @@
(do @
[ringE (ring idE)
ringA (ring idA)]
- (if (:: set.Eq<Set> = ringE ringA)
+ (if (:: set.Equivalence<Set> = ringE ringA)
(wrap assumptions)
## Fuse 2 rings
(do @
diff --git a/stdlib/source/lux/macro.lux b/stdlib/source/lux/macro.lux
index 470406482..a8494f047 100644
--- a/stdlib/source/lux/macro.lux
+++ b/stdlib/source/lux/macro.lux
@@ -5,10 +5,10 @@
[monad #+ do Monad])
(data [number "nat/" Codec<Text,Nat>]
[product]
- [ident "ident/" Codec<Text,Ident> Eq<Ident>]
+ [ident "ident/" Codec<Text,Ident> Equivalence<Ident>]
[maybe]
["e" error]
- [text "text/" Monoid<Text> Eq<Text>]
+ [text "text/" Monoid<Text> Equivalence<Text>]
(coll [list "list/" Monoid<List> Monad<List>])))
(/ [code]))
diff --git a/stdlib/source/lux/macro/code.lux b/stdlib/source/lux/macro/code.lux
index 67da53982..1094d7e0e 100644
--- a/stdlib/source/lux/macro/code.lux
+++ b/stdlib/source/lux/macro/code.lux
@@ -1,9 +1,9 @@
(.module:
[lux #- nat int rev]
- (lux (control [equality #+ Eq])
+ (lux (control [equivalence #+ Equivalence])
(data bool
number
- [text #+ Eq<Text> "text/" Monoid<Text>]
+ [text #+ Equivalence<Text> "text/" Monoid<Text>]
ident
(coll [list #* "" Functor<List> Fold<List>])
)))
@@ -56,24 +56,24 @@
[local-tag #.Tag "Produces a local tag (a tag with no module prefix)."])
## [Structures]
-(struct: #export _ (Eq Code)
+(struct: #export _ (Equivalence Code)
(def: (= x y)
(case [x y]
(^template [<tag> <eq>]
[[_ (<tag> x')] [_ (<tag> y')]]
(:: <eq> = x' y'))
- ([#.Bool Eq<Bool>]
- [#.Nat Eq<Nat>]
- [#.Int Eq<Int>]
- [#.Rev Eq<Rev>]
- [#.Frac Eq<Frac>]
- [#.Text Eq<Text>]
- [#.Symbol Eq<Ident>]
- [#.Tag Eq<Ident>])
+ ([#.Bool Equivalence<Bool>]
+ [#.Nat Equivalence<Nat>]
+ [#.Int Equivalence<Int>]
+ [#.Rev Equivalence<Rev>]
+ [#.Frac Equivalence<Frac>]
+ [#.Text Equivalence<Text>]
+ [#.Symbol Equivalence<Ident>]
+ [#.Tag Equivalence<Ident>])
(^template [<tag>]
[[_ (<tag> xs')] [_ (<tag> ys')]]
- (and (:: Eq<Nat> = (size xs') (size ys'))
+ (and (:: Equivalence<Nat> = (size xs') (size ys'))
(fold (function (_ [x' y'] old)
(and old (= x' y')))
true
@@ -82,7 +82,7 @@
[#.Tuple])
[[_ (#.Record xs')] [_ (#.Record ys')]]
- (and (:: Eq<Nat> = (size xs') (size ys'))
+ (and (:: Equivalence<Nat> = (size xs') (size ys'))
(fold (function (_ [[xl' xr'] [yl' yr']] old)
(and old (= xl' yl') (= xr' yr')))
true
@@ -124,7 +124,7 @@
(def: #export (replace original substitute ast)
{#.doc "Replaces all code that looks like the 'original' with the 'substitute'."}
(-> Code Code Code Code)
- (if (:: Eq<Code> = original ast)
+ (if (:: Equivalence<Code> = original ast)
substitute
(case ast
(^template [<tag>]
diff --git a/stdlib/source/lux/macro/poly.lux b/stdlib/source/lux/macro/poly.lux
index 2eb2e9ebc..4cf25eff7 100644
--- a/stdlib/source/lux/macro/poly.lux
+++ b/stdlib/source/lux/macro/poly.lux
@@ -1,7 +1,7 @@
(.module:
[lux #- function]
(lux (control [monad #+ do Monad]
- [equality]
+ [equivalence]
["p" parser]
["ex" exception #+ exception:])
[function]
@@ -12,7 +12,7 @@
[product]
[bool]
[maybe]
- [ident "ident/" Eq<Ident> Codec<Text,Ident>]
+ [ident "ident/" Equivalence<Ident> Codec<Text,Ident>]
["e" error])
[macro #+ with-gensyms]
(macro [code]
@@ -20,7 +20,7 @@
(syntax ["cs" common]
(common ["csr" reader]
["csw" writer])))
- (lang [type "type/" Eq<Type>]
+ (lang [type "type/" Equivalence<Type>]
(type [check]))
))
diff --git a/stdlib/source/lux/macro/poly/equality.lux b/stdlib/source/lux/macro/poly/equivalence.lux
index 6eb6ce4ce..89e403104 100644
--- a/stdlib/source/lux/macro/poly/equality.lux
+++ b/stdlib/source/lux/macro/poly/equivalence.lux
@@ -1,7 +1,7 @@
(.module:
lux
(lux (control [monad #+ do Monad]
- ["eq" equality]
+ ["eq" equivalence]
["p" parser])
(data [text "text/" Monoid<Text>]
text/format
@@ -29,76 +29,76 @@
))
## [Derivers]
-(poly: #export Eq<?>
+(poly: #export Equivalence<?>
(`` (do @
[#let [g!_ (code.local-symbol "_____________")]
*env* poly.env
inputT poly.peek
- #let [@Eq (: (-> Type Code)
- (function (_ type)
- (` (eq.Eq (~ (poly.to-code *env* type))))))]]
+ #let [@Equivalence (: (-> Type Code)
+ (function (_ type)
+ (` (eq.Equivalence (~ (poly.to-code *env* type))))))]]
($_ p.either
## Basic types
(~~ (do-template [<matcher> <eq>]
[(do @
[_ <matcher>]
- (wrap (` (: (~ (@Eq inputT))
+ (wrap (` (: (~ (@Equivalence inputT))
<eq>))))]
[(poly.this Any) (function ((~ g!_) (~ g!_) (~ g!_)) true)]
- [(poly.like Bool) bool.Eq<Bool>]
- [(poly.like Nat) number.Eq<Nat>]
- [(poly.like Int) number.Eq<Int>]
- [(poly.like Rev) number.Eq<Rev>]
- [(poly.like Frac) number.Eq<Frac>]
- [(poly.like Text) text.Eq<Text>]))
+ [(poly.like Bool) bool.Equivalence<Bool>]
+ [(poly.like Nat) number.Equivalence<Nat>]
+ [(poly.like Int) number.Equivalence<Int>]
+ [(poly.like Rev) number.Equivalence<Rev>]
+ [(poly.like Frac) number.Equivalence<Frac>]
+ [(poly.like Text) text.Equivalence<Text>]))
## Composite types
(~~ (do-template [<name> <eq>]
[(do @
[[_ argC] (poly.apply (p.seq (poly.this <name>)
- Eq<?>))]
- (wrap (` (: (~ (@Eq inputT))
+ Equivalence<?>))]
+ (wrap (` (: (~ (@Equivalence inputT))
(<eq> (~ argC))))))]
- [.Maybe maybe.Eq<Maybe>]
- [.List list.Eq<List>]
- [row.Row row.Eq<Row>]
- [.Array array.Eq<Array>]
- [queue.Queue queue.Eq<Queue>]
- [set.Set set.Eq<Set>]
- [rose.Tree rose.Eq<Tree>]
+ [.Maybe maybe.Equivalence<Maybe>]
+ [.List list.Equivalence<List>]
+ [row.Row row.Equivalence<Row>]
+ [.Array array.Equivalence<Array>]
+ [queue.Queue queue.Equivalence<Queue>]
+ [set.Set set.Equivalence<Set>]
+ [rose.Tree rose.Equivalence<Tree>]
))
(do @
[[_ _ valC] (poly.apply ($_ p.seq
(poly.this dict.Dict)
poly.any
- Eq<?>))]
- (wrap (` (: (~ (@Eq inputT))
- (dict.Eq<Dict> (~ valC))))))
+ Equivalence<?>))]
+ (wrap (` (: (~ (@Equivalence inputT))
+ (dict.Equivalence<Dict> (~ valC))))))
## Models
(~~ (do-template [<type> <eq>]
[(do @
[_ (poly.this <type>)]
- (wrap (` (: (~ (@Eq inputT))
+ (wrap (` (: (~ (@Equivalence inputT))
<eq>))))]
- [du.Duration du.Eq<Duration>]
- [i.Instant i.Eq<Instant>]
- [da.Date da.Eq<Date>]
- [da.Day da.Eq<Day>]
- [da.Month da.Eq<Month>]))
+ [du.Duration du.Equivalence<Duration>]
+ [i.Instant i.Equivalence<Instant>]
+ [da.Date da.Equivalence<Date>]
+ [da.Day da.Equivalence<Day>]
+ [da.Month da.Equivalence<Month>]))
(do @
[_ (poly.apply (p.seq (poly.this unit.Qty)
poly.any))]
- (wrap (` (: (~ (@Eq inputT))
- unit.Eq<Qty>))))
+ (wrap (` (: (~ (@Equivalence inputT))
+ unit.Equivalence<Qty>))))
## Variants
(do @
- [members (poly.variant (p.many Eq<?>))
+ [members (poly.variant (p.many Equivalence<?>))
#let [g!_ (code.local-symbol "_____________")
g!left (code.local-symbol "_____________left")
g!right (code.local-symbol "_____________right")]]
- (wrap (` (: (~ (@Eq inputT))
+ (wrap (` (: (~ (@Equivalence inputT))
(function ((~ g!_) (~ g!left) (~ g!right))
(case [(~ g!left) (~ g!right)]
(~+ (list/join (list/map (function (_ [tag g!eq])
@@ -110,41 +110,41 @@
false))))))
## Tuples
(do @
- [g!eqs (poly.tuple (p.many Eq<?>))
+ [g!eqs (poly.tuple (p.many Equivalence<?>))
#let [g!_ (code.local-symbol "_____________")
indices (|> (list.size g!eqs) dec (list.n/range +0))
g!lefts (list/map (|>> nat/encode (text/compose "left") code.local-symbol) indices)
g!rights (list/map (|>> nat/encode (text/compose "right") code.local-symbol) indices)]]
- (wrap (` (: (~ (@Eq inputT))
+ (wrap (` (: (~ (@Equivalence inputT))
(function ((~ g!_) [(~+ g!lefts)] [(~+ g!rights)])
(and (~+ (|> (list.zip3 g!eqs g!lefts g!rights)
(list/map (function (_ [g!eq g!left g!right])
(` ((~ g!eq) (~ g!left) (~ g!right)))))))))))))
## Type recursion
(do @
- [[g!self bodyC] (poly.recursive Eq<?>)
+ [[g!self bodyC] (poly.recursive Equivalence<?>)
#let [g!_ (code.local-symbol "_____________")]]
- (wrap (` (: (~ (@Eq inputT))
+ (wrap (` (: (~ (@Equivalence inputT))
(eq.rec (.function ((~ g!_) (~ g!self))
(~ bodyC)))))))
poly.recursive-self
## Type applications
(do @
- [[funcC argsC] (poly.apply (p.seq Eq<?> (p.many Eq<?>)))]
+ [[funcC argsC] (poly.apply (p.seq Equivalence<?> (p.many Equivalence<?>)))]
(wrap (` ((~ funcC) (~+ argsC)))))
## Parameters
poly.parameter
## Polymorphism
(do @
- [[funcC varsC bodyC] (poly.polymorphic Eq<?>)]
+ [[funcC varsC bodyC] (poly.polymorphic Equivalence<?>)]
(wrap (` (: (All [(~+ varsC)]
- (-> (~+ (list/map (|>> (~) eq.Eq (`)) varsC))
- (eq.Eq ((~ (poly.to-code *env* inputT)) (~+ varsC)))))
+ (-> (~+ (list/map (|>> (~) eq.Equivalence (`)) varsC))
+ (eq.Equivalence ((~ (poly.to-code *env* inputT)) (~+ varsC)))))
(function ((~ funcC) (~+ varsC))
(~ bodyC))))))
poly.recursive-call
## If all else fails...
(|> poly.any
- (:: @ map (|>> %type (format "Cannot create Eq for: ") p.fail))
+ (:: @ map (|>> %type (format "Cannot create Equivalence for: ") p.fail))
(:: @ join))
))))
diff --git a/stdlib/source/lux/macro/poly/json.lux b/stdlib/source/lux/macro/poly/json.lux
index dac1874e9..775b86b69 100644
--- a/stdlib/source/lux/macro/poly/json.lux
+++ b/stdlib/source/lux/macro/poly/json.lux
@@ -1,7 +1,7 @@
(.module: {#.doc "Codecs for values in the JSON format."}
lux
(lux (control [monad #+ do Monad]
- [equality #+ Eq]
+ [equivalence #+ Eq]
codec
["p" parser "p/" Monad<Parser>])
(data [bool]
diff --git a/stdlib/source/lux/macro/syntax.lux b/stdlib/source/lux/macro/syntax.lux
index 7e787ec95..3b0efaa8a 100644
--- a/stdlib/source/lux/macro/syntax.lux
+++ b/stdlib/source/lux/macro/syntax.lux
@@ -2,7 +2,7 @@
[lux #- nat int rev]
(lux [macro #+ with-gensyms]
(control [monad #+ do Monad]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
["p" parser])
(data [bool]
[number]
@@ -11,7 +11,7 @@
(coll [list "list/" Functor<List>])
[maybe]
[error #+ Error]))
- (// [code "code/" Eq<Code>]))
+ (// [code "code/" Equivalence<Code>]))
## [Utils]
(def: (join-pairs pairs)
@@ -52,14 +52,14 @@
_
(#error.Error ($_ text/compose "Cannot parse " <desc> (remaining-inputs tokens))))))]
- [ bool Bool #.Bool bool.Eq<Bool> "bool"]
- [ nat Nat #.Nat number.Eq<Nat> "nat"]
- [ int Int #.Int number.Eq<Int> "int"]
- [ rev Rev #.Rev number.Eq<Rev> "rev"]
- [ frac Frac #.Frac number.Eq<Frac> "frac"]
- [ text Text #.Text text.Eq<Text> "text"]
- [symbol Ident #.Symbol ident.Eq<Ident> "symbol"]
- [ tag Ident #.Tag ident.Eq<Ident> "tag"]
+ [ bool Bool #.Bool bool.Equivalence<Bool> "bool"]
+ [ nat Nat #.Nat number.Equivalence<Nat> "nat"]
+ [ int Int #.Int number.Equivalence<Int> "int"]
+ [ rev Rev #.Rev number.Equivalence<Rev> "rev"]
+ [ frac Frac #.Frac number.Equivalence<Frac> "frac"]
+ [ text Text #.Text text.Equivalence<Text> "text"]
+ [symbol Ident #.Symbol ident.Equivalence<Ident> "symbol"]
+ [ tag Ident #.Tag ident.Equivalence<Ident> "tag"]
)
(def: #export (this? ast)
diff --git a/stdlib/source/lux/macro/syntax/common/reader.lux b/stdlib/source/lux/macro/syntax/common/reader.lux
index c84cc5624..0237d579a 100644
--- a/stdlib/source/lux/macro/syntax/common/reader.lux
+++ b/stdlib/source/lux/macro/syntax/common/reader.lux
@@ -3,7 +3,7 @@
(lux (control monad
["p" parser "p/" Monad<Parser>])
(data (coll [list])
- [ident "ident/" Eq<Ident>]
+ [ident "ident/" Equivalence<Ident>]
[product]
[maybe])
[macro]
diff --git a/stdlib/source/lux/time/date.lux b/stdlib/source/lux/time/date.lux
index 2a937c84d..f4680a6ca 100644
--- a/stdlib/source/lux/time/date.lux
+++ b/stdlib/source/lux/time/date.lux
@@ -1,6 +1,6 @@
(.module:
lux
- (lux (control equality
+ (lux (control equivalence
order
enum
codec
@@ -29,7 +29,7 @@
#November
#December)
-(struct: #export _ (Eq Month)
+(struct: #export _ (Equivalence Month)
(def: (= reference sample)
(case [reference sample]
(^template [<tag>]
@@ -68,7 +68,7 @@
#December +11))
(struct: #export _ (Order Month)
- (def: eq Eq<Month>)
+ (def: eq Equivalence<Month>)
(do-template [<name> <comp>]
[(def: (<name> reference sample)
(<comp> (month-to-nat reference) (month-to-nat sample)))]
@@ -119,7 +119,7 @@
#Friday
#Saturday)
-(struct: #export _ (Eq Day)
+(struct: #export _ (Equivalence Day)
(def: (= reference sample)
(case [reference sample]
(^template [<tag>]
@@ -148,7 +148,7 @@
#Saturday +6))
(struct: #export _ (Order Day)
- (def: eq Eq<Day>)
+ (def: eq Equivalence<Day>)
(do-template [<name> <comp>]
[(def: (<name> reference sample)
(<comp> (day-to-nat reference) (day-to-nat sample)))]
@@ -185,11 +185,11 @@
#month Month
#day Nat})
-(struct: #export _ (Eq Date)
+(struct: #export _ (Equivalence Date)
(def: (= reference sample)
(and (i/= (get@ #year reference)
(get@ #year sample))
- (:: Eq<Month> =
+ (:: Equivalence<Month> =
(get@ #month reference)
(get@ #month sample))
(n/= (get@ #day reference)
@@ -206,16 +206,16 @@
(get@ #day sample))))
(struct: #export _ (Order Date)
- (def: eq Eq<Date>)
+ (def: eq Equivalence<Date>)
(def: < date/<)
(def: (> reference sample)
(date/< sample reference))
(def: (<= reference sample)
(or (date/< reference sample)
- (:: Eq<Date> = reference sample)))
+ (:: Equivalence<Date> = reference sample)))
(def: (>= reference sample)
(or (date/< sample reference)
- (:: Eq<Date> = sample reference))))
+ (:: Equivalence<Date> = sample reference))))
## Based on this: https://stackoverflow.com/a/42936293/6823464
(def: (pad value)
diff --git a/stdlib/source/lux/time/duration.lux b/stdlib/source/lux/time/duration.lux
index a29eda6da..5df655018 100644
--- a/stdlib/source/lux/time/duration.lux
+++ b/stdlib/source/lux/time/duration.lux
@@ -1,6 +1,6 @@
(.module:
lux
- (lux (control equality
+ (lux (control equivalence
order
codec
[monoid #+ Monoid]
@@ -41,12 +41,12 @@
(-> Duration Duration Int)
(i// (:representation param) (:representation subject)))
- (struct: #export _ (Eq Duration)
+ (struct: #export _ (Equivalence Duration)
(def: (= param subject)
(i/= (:representation param) (:representation subject))))
(struct: #export _ (Order Duration)
- (def: eq Eq<Duration>)
+ (def: eq Equivalence<Duration>)
(do-template [<name> <op>]
[(def: (<name> param subject)
(<op> (:representation param) (:representation subject)))]
@@ -83,7 +83,7 @@
(def: (encode duration)
(-> Duration Text)
- (if (:: Eq<Duration> = empty duration)
+ (if (:: Equivalence<Duration> = empty duration)
"0ms"
(let [signed? (negative? duration)
[days time-left] [(query day duration) (frame day duration)]
diff --git a/stdlib/source/lux/time/instant.lux b/stdlib/source/lux/time/instant.lux
index 68a86bf9d..4f14555f9 100644
--- a/stdlib/source/lux/time/instant.lux
+++ b/stdlib/source/lux/time/instant.lux
@@ -1,7 +1,7 @@
(.module:
lux
(lux [io #- run]
- (control equality
+ (control equivalence
order
enum
codec
@@ -46,12 +46,12 @@
(-> duration.Duration Instant)
(|> offset duration.to-millis :abstraction))
- (struct: #export _ (Eq Instant)
+ (struct: #export _ (Equivalence Instant)
(def: (= param subject)
- (:: number.Eq<Int> = (:representation param) (:representation subject))))
+ (:: number.Equivalence<Int> = (:representation param) (:representation subject))))
(struct: #export _ (Order Instant)
- (def: eq Eq<Instant>)
+ (def: eq Equivalence<Instant>)
(do-template [<name>]
[(def: (<name> param subject)
(:: number.Order<Int> <name> (:representation param) (:representation subject)))]
diff --git a/stdlib/source/lux/type/abstract.lux b/stdlib/source/lux/type/abstract.lux
index f7594852d..d9aa8a8bb 100644
--- a/stdlib/source/lux/type/abstract.lux
+++ b/stdlib/source/lux/type/abstract.lux
@@ -2,7 +2,7 @@
lux
(lux (control [monad #+ do Monad]
["p" parser])
- (data [text "text/" Eq<Text> Monoid<Text>]
+ (data [text "text/" Equivalence<Text> Monoid<Text>]
[error]
(coll [list "list/" Functor<List> Monoid<List>]))
[macro #+ "meta/" Monad<Meta>]
diff --git a/stdlib/source/lux/type/implicit.lux b/stdlib/source/lux/type/implicit.lux
index 84bff5ec9..b7e970685 100644
--- a/stdlib/source/lux/type/implicit.lux
+++ b/stdlib/source/lux/type/implicit.lux
@@ -1,9 +1,9 @@
(.module:
lux
(lux (control [monad #+ do Monad]
- ["eq" equality]
+ ["eq" equivalence]
["p" parser])
- (data [text "text/" Eq<Text>]
+ (data [text "text/" Equivalence<Text>]
text/format
[number]
(coll [list "list/" Monad<List> Fold<List>]
@@ -318,12 +318,12 @@
"If no alternative is found, or if more than one alternative is found (ambiguity)"
"a compile-time error will be raised, to alert the user."
"Examples:"
- "Nat equality"
- (:: number.Eq<Nat> = x y)
+ "Nat equivalence"
+ (:: number.Equivalence<Nat> = x y)
(::: = x y)
"Can optionally add the prefix of the module where the signature was defined."
(::: eq.= x y)
- "(List Nat) equality"
+ "(List Nat) equivalence"
(::: =
(list.n/range +1 +10)
(list.n/range +1 +10))
diff --git a/stdlib/source/lux/type/object/interface.lux b/stdlib/source/lux/type/object/interface.lux
index e4b08c9ac..80bf6cd3f 100644
--- a/stdlib/source/lux/type/object/interface.lux
+++ b/stdlib/source/lux/type/object/interface.lux
@@ -6,7 +6,7 @@
text/format
[product]
[maybe]
- [ident #+ "ident/" Eq<Ident>]
+ [ident #+ "ident/" Equivalence<Ident>]
(coll [list "list/" Functor<List> Fold<List> Monoid<List>]
(set ["set" unordered #+ Set])))
[macro #+ Monad<Meta> "meta/" Monad<Meta>]
diff --git a/stdlib/source/lux/type/refinement.lux b/stdlib/source/lux/type/refinement.lux
index afc190c4f..39b6393ce 100644
--- a/stdlib/source/lux/type/refinement.lux
+++ b/stdlib/source/lux/type/refinement.lux
@@ -4,7 +4,7 @@
[monad #+ do]
["p" parser])
(data ["e" error #+ Error])
- (lang [type "type/" Eq<Type>])
+ (lang [type "type/" Equivalence<Type>])
(type abstract)
[macro]
(macro ["s" syntax #+ syntax:]
diff --git a/stdlib/source/lux/type/unit.lux b/stdlib/source/lux/type/unit.lux
index 0b5e2dcec..5072a677f 100644
--- a/stdlib/source/lux/type/unit.lux
+++ b/stdlib/source/lux/type/unit.lux
@@ -2,7 +2,7 @@
lux
(lux (control [monad #+ do Monad]
["p" parser "p/" Monad<Parser>]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
[order #+ Order]
[enum #+ Enum])
(data text/format
@@ -156,12 +156,12 @@
(unit: #export Litre)
(unit: #export Second)
-(struct: #export Eq<Unit> (All [unit] (Eq (Qty unit)))
+(struct: #export Equivalence<Unit> (All [unit] (Equivalence (Qty unit)))
(def: (= reference sample)
(i/= (out reference) (out sample))))
(struct: #export Order<Unit> (All [unit] (Order (Qty unit)))
- (def: eq Eq<Unit>)
+ (def: eq Equivalence<Unit>)
(do-template [<name> <func>]
[(def: (<name> reference sample)
diff --git a/stdlib/source/lux/world/blob.jvm.lux b/stdlib/source/lux/world/blob.jvm.lux
index 3d30d2b93..162574ba9 100644
--- a/stdlib/source/lux/world/blob.jvm.lux
+++ b/stdlib/source/lux/world/blob.jvm.lux
@@ -2,7 +2,7 @@
[lux #- i64]
(lux (control [monad #+ do]
["ex" exception #+ exception:]
- ["eq" equality])
+ ["eq" equivalence])
(data [bit]
[maybe]
["e" error]
@@ -140,6 +140,6 @@
(-> Nat Blob (e.Error Blob))
(slice from (dec (host.array-length blob)) blob))
-(struct: #export _ (eq.Eq Blob)
+(struct: #export _ (eq.Equivalence Blob)
(def: (= reference sample)
(Arrays::equals [reference sample])))
diff --git a/stdlib/test/test/lux.lux b/stdlib/test/test/lux.lux
index fc649eec3..211cf6d6b 100644
--- a/stdlib/test/test/lux.lux
+++ b/stdlib/test/test/lux.lux
@@ -6,7 +6,7 @@
["r" math/random]
(data [maybe]
[bit]
- [text "text/" Eq<Text>]
+ [text "text/" Equivalence<Text>]
text/format)
[macro]
(macro ["s" syntax #+ syntax:])))
diff --git a/stdlib/test/test/lux/cli.lux b/stdlib/test/test/lux/cli.lux
index 4aed244b2..b8bc50e9e 100644
--- a/stdlib/test/test/lux/cli.lux
+++ b/stdlib/test/test/lux/cli.lux
@@ -8,7 +8,7 @@
[sum]
["E" error]
[number]
- [text "text/" Eq<Text>]
+ [text "text/" Equivalence<Text>]
text/format
(coll [list]))
["r" math/random]
diff --git a/stdlib/test/test/lux/concurrency/frp.lux b/stdlib/test/test/lux/concurrency/frp.lux
index 6de1634ec..8a1e04849 100644
--- a/stdlib/test/test/lux/concurrency/frp.lux
+++ b/stdlib/test/test/lux/concurrency/frp.lux
@@ -29,7 +29,7 @@
(wrap output)))
(context: "FRP"
- (let [(^open "list/") (list.Eq<List> number.Eq<Int>)]
+ (let [(^open "list/") (list.Equivalence<List> number.Equivalence<Int>)]
($_ seq
(wrap (do promise.Monad<Promise>
[#let [values (list 0 1 2 3 4 5)]
diff --git a/stdlib/test/test/lux/concurrency/semaphore.lux b/stdlib/test/test/lux/concurrency/semaphore.lux
index b360426c5..0100ee2ac 100644
--- a/stdlib/test/test/lux/concurrency/semaphore.lux
+++ b/stdlib/test/test/lux/concurrency/semaphore.lux
@@ -2,7 +2,7 @@
lux
(lux (control [monad #+ do])
(data [maybe]
- [text "text/" Eq<Text> Monoid<Text>]
+ [text "text/" Equivalence<Text> Monoid<Text>]
text/format
(coll [list "list/" Functor<List>]))
(concurrency ["/" semaphore]
diff --git a/stdlib/test/test/lux/concurrency/stm.lux b/stdlib/test/test/lux/concurrency/stm.lux
index 9f3c5bd7e..4bebfa3e7 100644
--- a/stdlib/test/test/lux/concurrency/stm.lux
+++ b/stdlib/test/test/lux/concurrency/stm.lux
@@ -54,7 +54,7 @@
_ (&.commit (&.update (n/* +3) _var))
changes (promise.future (atom.read changes))]
(assert "Can follow all the changes to STM vars."
- (:: (list.Eq<List> number.Eq<Nat>) =
+ (:: (list.Equivalence<List> number.Equivalence<Nat>) =
(list +5 +15)
(list.reverse changes)))))
(wrap (let [_concurrency-var (&.var +0)]
diff --git a/stdlib/test/test/lux/control/continuation.lux b/stdlib/test/test/lux/control/continuation.lux
index ea43b511d..bda63e3e1 100644
--- a/stdlib/test/test/lux/control/continuation.lux
+++ b/stdlib/test/test/lux/control/continuation.lux
@@ -57,7 +57,7 @@
(test "Can use delimited continuations with shifting."
(let [(^open "&/") &.Monad<Cont>
- (^open "L/") (list.Eq<List> number.Eq<Nat>)
+ (^open "L/") (list.Equivalence<List> number.Equivalence<Nat>)
visit (: (-> (List Nat)
(&.Cont (List Nat) (List Nat)))
(function (visit xs)
diff --git a/stdlib/test/test/lux/control/equality.lux b/stdlib/test/test/lux/control/equality.lux
deleted file mode 100644
index 5139b41ea..000000000
--- a/stdlib/test/test/lux/control/equality.lux
+++ /dev/null
@@ -1,19 +0,0 @@
-(.module:
- lux
- (lux (control ["/" equality]
- [monad #+ do])
- (math ["r" random])
- test))
-
-(def: #export (spec Eq<a> generator)
- (All [a] (-> (/.Eq a) (r.Random a) Test))
- (do r.Monad<Random>
- [sample generator
- another generator]
- ($_ seq
- (test "Equality is reflexive."
- (:: Eq<a> = sample sample))
- (test "Equality is symmetric."
- (if (:: Eq<a> = sample another)
- (:: Eq<a> = another sample)
- true)))))
diff --git a/stdlib/test/test/lux/control/equivalence.lux b/stdlib/test/test/lux/control/equivalence.lux
new file mode 100644
index 000000000..18265af6c
--- /dev/null
+++ b/stdlib/test/test/lux/control/equivalence.lux
@@ -0,0 +1,19 @@
+(.module:
+ lux
+ (lux (control ["/" equivalence]
+ [monad #+ do])
+ (math ["r" random])
+ test))
+
+(def: #export (spec Equivalence<a> generator)
+ (All [a] (-> (/.Equivalence a) (r.Random a) Test))
+ (do r.Monad<Random>
+ [sample generator
+ another generator]
+ ($_ seq
+ (test "Equivalence is reflexive."
+ (:: Equivalence<a> = sample sample))
+ (test "Equivalence is symmetric."
+ (if (:: Equivalence<a> = sample another)
+ (:: Equivalence<a> = another sample)
+ true)))))
diff --git a/stdlib/test/test/lux/control/interval.lux b/stdlib/test/test/lux/control/interval.lux
index 3187c0b7b..06fe5cbde 100644
--- a/stdlib/test/test/lux/control/interval.lux
+++ b/stdlib/test/test/lux/control/interval.lux
@@ -11,12 +11,12 @@
(coll ["S" set/unordered]
["L" list]))))
-(context: "Equality."
+(context: "Equivalence."
(<| (times +100)
(do @
[bottom r.int
top r.int
- #let [(^open "&/") &.Eq<Interval>]]
+ #let [(^open "&/") &.Equivalence<Interval>]]
($_ seq
(test "Every interval is equal to itself."
(and (let [self (&.between number.Enum<Int> bottom top)]
@@ -92,7 +92,7 @@
right-singleton gen-singleton
left-outer gen-outer
right-outer gen-outer
- #let [(^open "&/") &.Eq<Interval>]]
+ #let [(^open "&/") &.Equivalence<Interval>]]
($_ seq
(test "The union of an interval to itself yields the same interval."
(&/= some-interval (&.union some-interval some-interval)))
@@ -114,7 +114,7 @@
right-singleton gen-singleton
left-outer gen-outer
right-outer gen-outer
- #let [(^open "&/") &.Eq<Interval>]]
+ #let [(^open "&/") &.Equivalence<Interval>]]
($_ seq
(test "The intersection of an interval to itself yields the same interval."
(&/= some-interval (&.intersection some-interval some-interval)))
@@ -130,7 +130,7 @@
(<| (times +100)
(do @
[some-interval gen-interval
- #let [(^open "&/") &.Eq<Interval>]]
+ #let [(^open "&/") &.Equivalence<Interval>]]
($_ seq
(test "The complement of a complement is the same as the original."
(&/= some-interval (|> some-interval &.complement &.complement)))
diff --git a/stdlib/test/test/lux/control/parser.lux b/stdlib/test/test/lux/control/parser.lux
index fd1f67724..c7293c2ee 100644
--- a/stdlib/test/test/lux/control/parser.lux
+++ b/stdlib/test/test/lux/control/parser.lux
@@ -2,7 +2,7 @@
lux
(lux [io]
(control ["M" monad #+ do Monad]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
["&" parser]
pipe)
(data [text "Text/" Monoid<Text>]
diff --git a/stdlib/test/test/lux/control/pipe.lux b/stdlib/test/test/lux/control/pipe.lux
index d159cfeb9..1288b5302 100644
--- a/stdlib/test/test/lux/control/pipe.lux
+++ b/stdlib/test/test/lux/control/pipe.lux
@@ -7,7 +7,7 @@
[number]
[product]
identity
- [text "text/" Eq<Text>])
+ [text "text/" Equivalence<Text>])
["r" math/random])
lux/test)
diff --git a/stdlib/test/test/lux/control/writer.lux b/stdlib/test/test/lux/control/writer.lux
index 49335de0d..35df0ae06 100644
--- a/stdlib/test/test/lux/control/writer.lux
+++ b/stdlib/test/test/lux/control/writer.lux
@@ -4,7 +4,7 @@
(control ["M" monad #+ do Monad]
pipe
["&" writer])
- (data [text "Text/" Monoid<Text> Eq<Text>]
+ (data [text "Text/" Monoid<Text> Equivalence<Text>]
[number]
[product]))
lux/test)
diff --git a/stdlib/test/test/lux/data/bool.lux b/stdlib/test/test/lux/data/bool.lux
index d7bc88e87..ead88f0db 100644
--- a/stdlib/test/test/lux/data/bool.lux
+++ b/stdlib/test/test/lux/data/bool.lux
@@ -18,17 +18,17 @@
(:: And@Monoid<Bool> identity)
(not (:: And@Monoid<Bool> compose value (not value)))
- (:: Eq<Bool> = value (not (not value)))
- (not (:: Eq<Bool> = value (not value)))
+ (:: Equivalence<Bool> = value (not (not value)))
+ (not (:: Equivalence<Bool> = value (not value)))
- (not (:: Eq<Bool> = value ((complement id) value)))
- (:: Eq<Bool> = value ((complement not) value))
+ (not (:: Equivalence<Bool> = value ((complement id) value)))
+ (:: Equivalence<Bool> = value ((complement not) value))
(case (|> value
(:: Codec<Text,Bool> encode)
(:: Codec<Text,Bool> decode))
(#.Right dec-value)
- (:: Eq<Bool> = value dec-value)
+ (:: Equivalence<Bool> = value dec-value)
(#.Left _)
false)
diff --git a/stdlib/test/test/lux/data/coll/array.lux b/stdlib/test/test/lux/data/coll/array.lux
index 125694cc7..c29baefc3 100644
--- a/stdlib/test/test/lux/data/coll/array.lux
+++ b/stdlib/test/test/lux/data/coll/array.lux
@@ -29,11 +29,11 @@
(test "Size function must correctly return size of array."
(n/= size (@.size original)))
(test "Cloning an array should yield and identical array, but not the same one."
- (and (:: (@.Eq<Array> number.Eq<Nat>) = original clone)
+ (and (:: (@.Equivalence<Array> number.Equivalence<Nat>) = original clone)
(not (is? original clone))))
(test "Full-range manual copies should give the same result as cloning."
(exec (@.copy size +0 original +0 copy)
- (and (:: (@.Eq<Array> number.Eq<Nat>) = original copy)
+ (and (:: (@.Equivalence<Array> number.Equivalence<Nat>) = original copy)
(not (is? original copy)))))
(test "Array folding should go over all values."
(exec (:: @.Fold<Array> fold
@@ -42,11 +42,11 @@
(inc idx)))
+0
original)
- (:: (@.Eq<Array> number.Eq<Nat>) = original manual-copy)))
+ (:: (@.Equivalence<Array> number.Equivalence<Nat>) = original manual-copy)))
(test "Transformations between (full) arrays and lists shouldn't cause lose or change any values."
(|> original
@.to-list @.from-list
- (:: (@.Eq<Array> number.Eq<Nat>) = original)))
+ (:: (@.Equivalence<Array> number.Equivalence<Nat>) = original)))
))))
(context: "Array mutation"
@@ -102,7 +102,7 @@
[size bounded-size
array (r.array size r.nat)]
(let [(^open) @.Functor<Array>
- (^open) (@.Eq<Array> number.Eq<Nat>)]
+ (^open) (@.Equivalence<Array> number.Equivalence<Nat>)]
($_ seq
(test "Functor shouldn't alter original array."
(let [copy (map id array)]
@@ -122,7 +122,7 @@
left (r.array sizeL r.nat)
right (r.array sizeR r.nat)
#let [(^open) @.Monoid<Array>
- (^open) (@.Eq<Array> number.Eq<Nat>)
+ (^open) (@.Equivalence<Array> number.Equivalence<Nat>)
fusion (compose left right)]]
($_ seq
(test "Appending two arrays should produce a new one twice as large."
diff --git a/stdlib/test/test/lux/data/coll/bits.lux b/stdlib/test/test/lux/data/coll/bits.lux
index a5141034c..0fbe2edb2 100644
--- a/stdlib/test/test/lux/data/coll/bits.lux
+++ b/stdlib/test/test/lux/data/coll/bits.lux
@@ -5,7 +5,7 @@
(data (coll ["/" bits]))
["r" math/random])
lux/test
- (test (lux (control ["_eq" equality]))))
+ (test (lux (control ["_eq" equivalence]))))
(def: (size min max)
(-> Nat Nat (r.Random Nat))
@@ -57,7 +57,7 @@
(not (/.intersects? sample (/.not sample))))
(test "'and' with oneself changes nothing"
- (:: /.Eq<Bits> = sample (/.and sample sample)))
+ (:: /.Equivalence<Bits> = sample (/.and sample sample)))
(test "'and' with one's opposite yields the empty bit-set."
(is? /.empty (/.and sample (/.not sample))))
@@ -72,9 +72,9 @@
(/.capacity sample)))
(test "Double negation results in original bit-set."
- (:: /.Eq<Bits> = sample (/.not (/.not sample))))
+ (:: /.Equivalence<Bits> = sample (/.not (/.not sample))))
(test "Negation does not affect the empty bit-set."
(is? /.empty (/.not /.empty)))
- (_eq.spec /.Eq<Bits> ..bits)
+ (_eq.spec /.Equivalence<Bits> ..bits)
))))
diff --git a/stdlib/test/test/lux/data/coll/dictionary/ordered.lux b/stdlib/test/test/lux/data/coll/dictionary/ordered.lux
index a373f6107..bb13ac532 100644
--- a/stdlib/test/test/lux/data/coll/dictionary/ordered.lux
+++ b/stdlib/test/test/lux/data/coll/dictionary/ordered.lux
@@ -2,7 +2,7 @@
lux
(lux [io]
(control [monad #+ do Monad]
- [equality #+ Eq])
+ [equivalence #+ Equivalence])
(data [product]
[number]
(coll (set ["s" unordered])
@@ -27,7 +27,7 @@
(n/< left right))
pairs)
sorted-values (L/map product.right sorted-pairs)
- (^open "&/") (&.Eq<Dict> number.Eq<Nat>)]]
+ (^open "&/") (&.Equivalence<Dict> number.Equivalence<Nat>)]]
($_ seq
(test "Can query the size of a dictionary."
(n/= size (&.size sample)))
@@ -60,10 +60,10 @@
(&/= sample)))
(test "Order is preserved."
- (let [(^open "L/") (list.Eq<List> (: (Eq [Nat Nat])
- (function (_ [kr vr] [ks vs])
- (and (n/= kr ks)
- (n/= vr vs)))))]
+ (let [(^open "L/") (list.Equivalence<List> (: (Equivalence [Nat Nat])
+ (function (_ [kr vr] [ks vs])
+ (and (n/= kr ks)
+ (n/= vr vs)))))]
(L/= (&.entries sample)
sorted-pairs)))
diff --git a/stdlib/test/test/lux/data/coll/dictionary/unordered.lux b/stdlib/test/test/lux/data/coll/dictionary/unordered.lux
index 93b83dc7b..bde4810a5 100644
--- a/stdlib/test/test/lux/data/coll/dictionary/unordered.lux
+++ b/stdlib/test/test/lux/data/coll/dictionary/unordered.lux
@@ -2,7 +2,7 @@
lux
(lux [io]
(control [monad #+ do Monad]
- ["eq" equality])
+ ["eq" equivalence])
(data [text]
text/format
[number]
@@ -19,7 +19,7 @@
size capped-nat
dict (r.dict number.Hash<Nat> size r.nat capped-nat)
non-key (|> r.nat (r.filter (function (_ key) (not (&.contains? key dict)))))
- test-val (|> r.nat (r.filter (function (_ val) (not (list.member? number.Eq<Nat> (&.values dict) val)))))]
+ test-val (|> r.nat (r.filter (function (_ val) (not (list.member? number.Equivalence<Nat> (&.values dict) val)))))]
($_ seq
(test "Size function should correctly represent Dict size."
(n/= size (&.size dict)))
@@ -30,7 +30,7 @@
(not (&.empty? dict))))
(test "The functions 'entries', 'keys' and 'values' should be synchronized."
- (:: (list.Eq<List> (eq.product number.Eq<Nat> number.Eq<Nat>)) =
+ (:: (list.Equivalence<List> (eq.product number.Equivalence<Nat> number.Equivalence<Nat>)) =
(&.entries dict)
(list.zip2 (&.keys dict)
(&.values dict))))
@@ -89,19 +89,19 @@
(n/= (dec (&.size plus)) (&.size base)))))
(test "A Dict should equal itself & going to<->from lists shouldn't change that."
- (let [(^open) (&.Eq<Dict> number.Eq<Nat>)]
+ (let [(^open) (&.Equivalence<Dict> number.Equivalence<Nat>)]
(and (= dict dict)
(|> dict &.entries (&.from-list number.Hash<Nat>) (= dict)))))
(test "Merging a Dict to itself changes nothing."
- (let [(^open) (&.Eq<Dict> number.Eq<Nat>)]
+ (let [(^open) (&.Equivalence<Dict> number.Equivalence<Nat>)]
(= dict (&.merge dict dict))))
(test "If you merge, and the second dict has overlapping keys, it should overwrite yours."
(let [dict' (|> dict &.entries
(list/map (function (_ [k v]) [k (inc v)]))
(&.from-list number.Hash<Nat>))
- (^open) (&.Eq<Dict> number.Eq<Nat>)]
+ (^open) (&.Equivalence<Dict> number.Equivalence<Nat>)]
(= dict' (&.merge dict' dict))))
(test "Can merge values in such a way that they become combined."
diff --git a/stdlib/test/test/lux/data/coll/list.lux b/stdlib/test/test/lux/data/coll/list.lux
index 73eb25d85..d57b19b9c 100644
--- a/stdlib/test/test/lux/data/coll/list.lux
+++ b/stdlib/test/test/lux/data/coll/list.lux
@@ -25,7 +25,7 @@
other-size bounded-size
other-sample (r.list other-size r.nat)
separator r.nat
- #let [(^open) (&.Eq<List> number.Eq<Nat>)
+ #let [(^open) (&.Equivalence<List> number.Equivalence<Nat>)
(^open "&/") &.Functor<List>]]
($_ seq
(test "The size function should correctly portray the size of the list."
@@ -59,7 +59,7 @@
(test "Any element of the list can be considered its member."
(let [elem (maybe.assume (&.nth idx sample))]
- (&.member? number.Eq<Nat> sample elem)))
+ (&.member? number.Equivalence<Nat> sample elem)))
))))
(context: "Lists: Part 2"
@@ -71,7 +71,7 @@
other-size bounded-size
other-sample (r.list other-size r.nat)
separator r.nat
- #let [(^open) (&.Eq<List> number.Eq<Nat>)
+ #let [(^open) (&.Equivalence<List> number.Equivalence<Nat>)
(^open "&/") &.Functor<List>]]
($_ seq
(test "Appending the head and the tail should yield the original list."
@@ -134,7 +134,7 @@
separator r.nat
from (|> r.nat (:: @ map (n/% +10)))
to (|> r.nat (:: @ map (n/% +10)))
- #let [(^open) (&.Eq<List> number.Eq<Nat>)
+ #let [(^open) (&.Equivalence<List> number.Equivalence<Nat>)
(^open "&/") &.Functor<List>]]
($_ seq
(test "If you zip 2 lists, the result's size will be that of the smaller list."
@@ -212,10 +212,10 @@
(&/map product.right enum-sample)))))
(test "Ranges can be constructed forward and backwards."
- (and (let [(^open "list/") (&.Eq<List> number.Eq<Nat>)]
+ (and (let [(^open "list/") (&.Equivalence<List> number.Equivalence<Nat>)]
(list/= (&.n/range from to)
(&.reverse (&.n/range to from))))
- (let [(^open "list/") (&.Eq<List> number.Eq<Int>)
+ (let [(^open "list/") (&.Equivalence<List> number.Equivalence<Int>)
from (.int from)
to (.int to)]
(list/= (&.i/range from to)
diff --git a/stdlib/test/test/lux/data/coll/queue.lux b/stdlib/test/test/lux/data/coll/queue.lux
index 7edcbf9b4..12d924963 100644
--- a/stdlib/test/test/lux/data/coll/queue.lux
+++ b/stdlib/test/test/lux/data/coll/queue.lux
@@ -13,7 +13,7 @@
[size (:: @ map (n/% +100) r.nat)
sample (r.queue size r.nat)
non-member (|> r.nat
- (r.filter (|>> (&.member? number.Eq<Nat> sample) not)))]
+ (r.filter (|>> (&.member? number.Equivalence<Nat> sample) not)))]
($_ seq
(test "I can query the size of a queue (and empty queues have size 0)."
(if (n/= +0 size)
@@ -27,7 +27,7 @@
(n/= size (&.size (&.pop (&.push non-member sample))))))
(test "Transforming to/from list can't change the queue."
- (let [(^open "&/") (&.Eq<Queue> number.Eq<Nat>)]
+ (let [(^open "&/") (&.Equivalence<Queue> number.Equivalence<Nat>)]
(|> sample
&.to-list &.from-list
(&/= sample))))
@@ -38,14 +38,14 @@
(#.Some _) true))
(test "I can query whether an element belongs to a queue."
- (and (not (&.member? number.Eq<Nat> sample non-member))
- (&.member? number.Eq<Nat> (&.push non-member sample)
+ (and (not (&.member? number.Equivalence<Nat> sample non-member))
+ (&.member? number.Equivalence<Nat> (&.push non-member sample)
non-member)
(case (&.peek sample)
#.None
(&.empty? sample)
(#.Some first)
- (and (&.member? number.Eq<Nat> sample first)
- (not (&.member? number.Eq<Nat> (&.pop sample) first))))))
+ (and (&.member? number.Equivalence<Nat> sample first)
+ (not (&.member? number.Equivalence<Nat> (&.pop sample) first))))))
))))
diff --git a/stdlib/test/test/lux/data/coll/queue/priority.lux b/stdlib/test/test/lux/data/coll/queue/priority.lux
index 38527523a..17664056c 100644
--- a/stdlib/test/test/lux/data/coll/queue/priority.lux
+++ b/stdlib/test/test/lux/data/coll/queue/priority.lux
@@ -25,7 +25,7 @@
[size (|> r.nat (:: @ map (n/% +100)))
sample (gen-queue size)
non-member-priority r.nat
- non-member (|> r.nat (r.filter (|>> (&.member? number.Eq<Nat> sample) not)))]
+ non-member (|> r.nat (r.filter (|>> (&.member? number.Equivalence<Nat> sample) not)))]
($_ seq
(test "I can query the size of a queue (and empty queues have size 0)."
(n/= size (&.size sample)))
@@ -38,15 +38,15 @@
(&.size (&.pop sample))))))
(test "I can query whether an element belongs to a queue."
- (and (and (not (&.member? number.Eq<Nat> sample non-member))
- (&.member? number.Eq<Nat>
+ (and (and (not (&.member? number.Equivalence<Nat> sample non-member))
+ (&.member? number.Equivalence<Nat>
(&.push non-member-priority non-member sample)
non-member))
(or (n/= +0 (&.size sample))
- (and (&.member? number.Eq<Nat>
+ (and (&.member? number.Equivalence<Nat>
sample
(maybe.assume (&.peek sample)))
- (not (&.member? number.Eq<Nat>
+ (not (&.member? number.Equivalence<Nat>
(&.pop sample)
(maybe.assume (&.peek sample))))))))
))))
diff --git a/stdlib/test/test/lux/data/coll/row.lux b/stdlib/test/test/lux/data/coll/row.lux
index 3a4da0f42..643dcbe24 100644
--- a/stdlib/test/test/lux/data/coll/row.lux
+++ b/stdlib/test/test/lux/data/coll/row.lux
@@ -16,8 +16,8 @@
idx (|> r.nat (:: @ map (n/% size)))
sample (r.row size r.nat)
other-sample (r.row size r.nat)
- non-member (|> r.nat (r.filter (|>> (&.member? number.Eq<Nat> sample) not)))
- #let [(^open "&/") (&.Eq<Row> number.Eq<Nat>)
+ non-member (|> r.nat (r.filter (|>> (&.member? number.Equivalence<Nat> sample) not)))
+ #let [(^open "&/") (&.Equivalence<Row> number.Equivalence<Nat>)
(^open "&/") &.Apply<Row>
(^open "&/") &.Monad<Row>
(^open "&/") &.Fold<Row>
@@ -50,8 +50,8 @@
(|> sample &.to-list &.from-list (&/= sample)))
(test "Can identify members of a row."
- (and (not (&.member? number.Eq<Nat> sample non-member))
- (&.member? number.Eq<Nat> (&.add non-member sample) non-member)))
+ (and (not (&.member? number.Equivalence<Nat> sample non-member))
+ (&.member? number.Equivalence<Nat> (&.add non-member sample) non-member)))
(test "Can fold over elements of row."
(n/= (list/fold n/+ +0 (&.to-list sample))
diff --git a/stdlib/test/test/lux/data/coll/sequence.lux b/stdlib/test/test/lux/data/coll/sequence.lux
index 44eea350b..d1e91bcd1 100644
--- a/stdlib/test/test/lux/data/coll/sequence.lux
+++ b/stdlib/test/test/lux/data/coll/sequence.lux
@@ -21,7 +21,7 @@
elem r.nat
cycle-seed (r.list size r.nat)
cycle-sample-idx (|> r.nat (:: @ map (n/% +1000)))
- #let [(^open "List/") (list.Eq<List> number.Eq<Nat>)
+ #let [(^open "List/") (list.Equivalence<List> number.Equivalence<Nat>)
sample0 (&.iterate inc +0)
sample1 (&.iterate inc offset)]]
($_ seq
@@ -84,7 +84,7 @@
(test "'unfold' generalizes 'iterate'."
(let [(^open "&/") &.Functor<Sequence>
- (^open "List/") (list.Eq<List> text.Eq<Text>)]
+ (^open "List/") (list.Equivalence<List> text.Equivalence<Text>)]
(List/= (&.take size
(&/map Nat/encode (&.iterate inc offset)))
(&.take size
diff --git a/stdlib/test/test/lux/data/coll/set/ordered.lux b/stdlib/test/test/lux/data/coll/set/ordered.lux
index cb78ad963..fd4fb5579 100644
--- a/stdlib/test/test/lux/data/coll/set/ordered.lux
+++ b/stdlib/test/test/lux/data/coll/set/ordered.lux
@@ -22,7 +22,7 @@
sizeR gen-nat
listL (|> (r.set number.Hash<Nat> sizeL gen-nat) (:: @ map s.to-list))
listR (|> (r.set number.Hash<Nat> sizeR gen-nat) (:: @ map s.to-list))
- #let [(^open "&/") &.Eq<Set>
+ #let [(^open "&/") &.Equivalence<Set>
setL (&.from-list number.Order<Nat> listL)
setR (&.from-list number.Order<Nat> listR)
sortedL (list.sort n/< listL)
@@ -61,7 +61,7 @@
(test "Order is preserved."
(let [listL (&.to-list setL)
- (^open "L/") (list.Eq<List> number.Eq<Nat>)]
+ (^open "L/") (list.Equivalence<List> number.Equivalence<Nat>)]
(L/= listL
(list.sort n/< listL))))
diff --git a/stdlib/test/test/lux/data/coll/set/unordered.lux b/stdlib/test/test/lux/data/coll/set/unordered.lux
index bdb896e8b..f17867665 100644
--- a/stdlib/test/test/lux/data/coll/set/unordered.lux
+++ b/stdlib/test/test/lux/data/coll/set/unordered.lux
@@ -22,7 +22,7 @@
setR (r.set number.Hash<Nat> sizeR gen-nat)
non-member (|> gen-nat
(r.filter (|>> (&.member? setL) not)))
- #let [(^open "&/") &.Eq<Set>]]
+ #let [(^open "&/") &.Equivalence<Set>]]
($_ seq
(test "I can query the size of a set."
(and (n/= sizeL (&.size setL))
diff --git a/stdlib/test/test/lux/data/coll/tree/rose.lux b/stdlib/test/test/lux/data/coll/tree/rose.lux
index fdc385515..133f2ef20 100644
--- a/stdlib/test/test/lux/data/coll/tree/rose.lux
+++ b/stdlib/test/test/lux/data/coll/tree/rose.lux
@@ -4,7 +4,7 @@
(control [monad #+ do Monad])
(data [product]
[number]
- [text "T/" Eq<Text>]
+ [text "T/" Equivalence<Text>]
text/format
(coll (tree ["&" rose])
[list "L/" Monad<List> Fold<List>]))
@@ -30,11 +30,11 @@
(<| (times +100)
(do @
[[size sample] gen-tree
- #let [(^open "&/") (&.Eq<Tree> number.Eq<Nat>)
+ #let [(^open "&/") (&.Equivalence<Tree> number.Equivalence<Nat>)
(^open "&/") &.Fold<Tree>
concat (function (_ addition partial) (format partial (%n addition)))]]
($_ seq
- (test "Can compare trees for equality."
+ (test "Can compare trees for equivalence."
(&/= sample sample))
(test "Can flatten a tree to get all the nodes as a flat tree."
diff --git a/stdlib/test/test/lux/data/coll/tree/rose/zipper.lux b/stdlib/test/test/lux/data/coll/tree/rose/zipper.lux
index ff52e706d..0f5eff838 100644
--- a/stdlib/test/test/lux/data/coll/tree/rose/zipper.lux
+++ b/stdlib/test/test/lux/data/coll/tree/rose/zipper.lux
@@ -36,8 +36,8 @@
new-val r.nat
pre-val r.nat
post-val r.nat
- #let [(^open "tree/") (rose.Eq<Tree> number.Eq<Nat>)
- (^open "list/") (list.Eq<List> number.Eq<Nat>)]]
+ #let [(^open "tree/") (rose.Equivalence<Tree> number.Equivalence<Nat>)
+ (^open "list/") (list.Equivalence<List> number.Equivalence<Nat>)]]
($_ seq
(test "Trees can be converted to/from zippers."
(|> sample
diff --git a/stdlib/test/test/lux/data/color.lux b/stdlib/test/test/lux/data/color.lux
index 58bba6749..776862749 100644
--- a/stdlib/test/test/lux/data/color.lux
+++ b/stdlib/test/test/lux/data/color.lux
@@ -57,8 +57,8 @@
(f/<= 0.75 saturation)))))))
ratio (|> r.frac (r.filter (f/>= 0.5)))]
($_ seq
- (test "Has equality."
- (:: @.Eq<Color> = any any))
+ (test "Has equivalence."
+ (:: @.Equivalence<Color> = any any))
(test "Can convert to/from HSL."
(|> any @.to-hsl @.from-hsl
(distance any)
@@ -78,7 +78,7 @@
(distance (@.brighter ratio colorful) white))))
(test "Can calculate complement."
(let [~any (@.complement any)
- (^open "@/") @.Eq<Color>]
+ (^open "@/") @.Equivalence<Color>]
(and (not (@/= any ~any))
(@/= any (@.complement ~any)))))
(test "Can saturate color."
diff --git a/stdlib/test/test/lux/data/format/json.lux b/stdlib/test/test/lux/data/format/json.lux
index b3196e1e6..e630b7a49 100644
--- a/stdlib/test/test/lux/data/format/json.lux
+++ b/stdlib/test/test/lux/data/format/json.lux
@@ -3,7 +3,7 @@
(lux [io]
(control [monad #+ do Monad]
codec
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
pipe
["p" parser])
(data [text]
@@ -20,7 +20,7 @@
(macro [code]
[syntax #+ syntax:]
[poly #+ derived:]
- [poly/equality]
+ [poly/equivalence]
[poly/json])
(type [unit])
["r" math/random]
@@ -51,7 +51,7 @@
(<| (times +100)
(do @
[sample gen-json
- #let [(^open "@/") @.Eq<JSON>
+ #let [(^open "@/") @.Equivalence<JSON>
(^open "@/") @.Codec<Text,JSON>]]
($_ seq
(test "Every JSON is equal to itself."
@@ -97,7 +97,7 @@
(r.alt r.frac
(r.seq r.frac gen-recursive)))))
-(derived: (poly/equality.Eq<?> Recursive))
+(derived: (poly/equivalence.Equivalence<?> Recursive))
(def: qty
(All [unit] (r.Random (unit.Qty unit)))
@@ -125,38 +125,38 @@
(derived: (poly/json.Codec<JSON,?> Record))
-(struct: _ (Eq Record)
+(struct: _ (Equivalence Record)
(def: (= recL recR)
(let [variant/= (function (_ left right)
(case [left right]
[(#Case0 left') (#Case0 right')]
- (:: bool.Eq<Bool> = left' right')
+ (:: bool.Equivalence<Bool> = left' right')
[(#Case1 left') (#Case1 right')]
- (:: text.Eq<Text> = left' right')
+ (:: text.Equivalence<Text> = left' right')
[(#Case2 left') (#Case2 right')]
(f/= left' right')
_
false))]
- (and (:: bool.Eq<Bool> = (get@ #bool recL) (get@ #bool recR))
+ (and (:: bool.Equivalence<Bool> = (get@ #bool recL) (get@ #bool recR))
(f/= (get@ #frac recL) (get@ #frac recR))
- (:: text.Eq<Text> = (get@ #text recL) (get@ #text recR))
- (:: (maybe.Eq<Maybe> number.Eq<Frac>) = (get@ #maybe recL) (get@ #maybe recR))
- (:: (list.Eq<List> number.Eq<Frac>) = (get@ #list recL) (get@ #list recR))
- (:: (d.Eq<Dict> number.Eq<Frac>) = (get@ #dict recL) (get@ #dict recR))
+ (:: text.Equivalence<Text> = (get@ #text recL) (get@ #text recR))
+ (:: (maybe.Equivalence<Maybe> number.Equivalence<Frac>) = (get@ #maybe recL) (get@ #maybe recR))
+ (:: (list.Equivalence<List> number.Equivalence<Frac>) = (get@ #list recL) (get@ #list recR))
+ (:: (d.Equivalence<Dict> number.Equivalence<Frac>) = (get@ #dict recL) (get@ #dict recR))
## (variant/= (get@ #variant recL) (get@ #variant recR))
## (let [[tL0 tL1 tL2] (get@ #tuple recL)
## [tR0 tR1 tR2] (get@ #tuple recR)]
- ## (and (:: bool.Eq<Bool> = tL0 tR0)
+ ## (and (:: bool.Equivalence<Bool> = tL0 tR0)
## (f/= tL1 tR1)
- ## (:: text.Eq<Text> = tL2 tR2)))
- (:: Eq<Recursive> = (get@ #recursive recL) (get@ #recursive recR))
- ## (:: ti.Eq<Instant> = (get@ #instant recL) (get@ #instant recR))
- (:: tdu.Eq<Duration> = (get@ #duration recL) (get@ #duration recR))
- (:: tda.Eq<Date> = (get@ #date recL) (get@ #date recR))
- (:: unit.Eq<Unit> = (get@ #grams recL) (get@ #grams recR))
+ ## (:: text.Equivalence<Text> = tL2 tR2)))
+ (:: Equivalence<Recursive> = (get@ #recursive recL) (get@ #recursive recR))
+ ## (:: ti.Equivalence<Instant> = (get@ #instant recL) (get@ #instant recR))
+ (:: tdu.Equivalence<Duration> = (get@ #duration recL) (get@ #duration recR))
+ (:: tda.Equivalence<Date> = (get@ #date recL) (get@ #date recR))
+ (:: unit.Equivalence<Unit> = (get@ #grams recL) (get@ #grams recR))
))))
(context: "Polytypism"
@@ -164,7 +164,7 @@
## (times +100)
(do @
[sample gen-record
- #let [(^open "@/") Eq<Record>
+ #let [(^open "@/") Equivalence<Record>
(^open "@/") Codec<JSON,Record>]]
(test "Can encode/decode arbitrary types."
(|> sample @/encode @/decode
diff --git a/stdlib/test/test/lux/data/format/xml.lux b/stdlib/test/test/lux/data/format/xml.lux
index b7377ab64..27d904a98 100644
--- a/stdlib/test/test/lux/data/format/xml.lux
+++ b/stdlib/test/test/lux/data/format/xml.lux
@@ -4,7 +4,7 @@
(control [monad #+ do Monad]
["p" parser]
pipe)
- (data [text "text/" Eq<Text>]
+ (data [text "text/" Equivalence<Text>]
text/format
[ident]
["E" error]
@@ -59,7 +59,7 @@
(<| (times +100)
(do @
[sample gen-xml
- #let [(^open "&/") &.Eq<XML>
+ #let [(^open "&/") &.Equivalence<XML>
(^open "&/") &.Codec<Text,XML>]]
($_ seq
(test "Every XML is equal to itself."
@@ -112,7 +112,7 @@
(do E.Monad<Error>
[outputs (|> (&.children (p.some &.text))
(&.run node))]
- (wrap (:: (list.Eq<List> text.Eq<Text>) =
+ (wrap (:: (list.Equivalence<List> text.Equivalence<Text>) =
children
outputs)))))
))))
diff --git a/stdlib/test/test/lux/data/ident.lux b/stdlib/test/test/lux/data/ident.lux
index 5e39bad7f..b1e4c8490 100644
--- a/stdlib/test/test/lux/data/ident.lux
+++ b/stdlib/test/test/lux/data/ident.lux
@@ -4,7 +4,7 @@
(control [monad #+ do Monad]
pipe)
(data ["&" ident]
- [text "text/" Eq<Text>]
+ [text "text/" Equivalence<Text>]
text/format)
["r" math/random])
lux/test)
@@ -28,14 +28,14 @@
module2 (gen-part sizeM2)
name2 (gen-part sizeN2)
#let [ident2 [module2 name2]]
- #let [(^open "&/") &.Eq<Ident>
+ #let [(^open "&/") &.Equivalence<Ident>
(^open "&/") &.Codec<Text,Ident>]]
($_ seq
(test "Can get the module & name parts of an ident."
(and (is? module1 (&.module ident1))
(is? name1 (&.name ident1))))
- (test "Can compare idents for equality."
+ (test "Can compare idents for equivalence."
(and (&/= ident1 ident1)
(if (&/= ident1 ident2)
(and (text/= module1 module2)
@@ -56,7 +56,7 @@
))))
(context: "Ident-related macros."
- (let [(^open "&/") &.Eq<Ident>]
+ (let [(^open "&/") &.Equivalence<Ident>]
($_ seq
(test "Can obtain Ident from symbol."
(and (&/= ["lux" "yolo"] (ident-for .yolo))
diff --git a/stdlib/test/test/lux/data/identity.lux b/stdlib/test/test/lux/data/identity.lux
index f5ac9c6ba..479ec5670 100644
--- a/stdlib/test/test/lux/data/identity.lux
+++ b/stdlib/test/test/lux/data/identity.lux
@@ -4,7 +4,7 @@
(control ["M" monad #+ do Monad]
comonad)
(data ["&" identity]
- [text "Text/" Monoid<Text> Eq<Text>]))
+ [text "Text/" Monoid<Text> Equivalence<Text>]))
lux/test)
(context: "Identity"
diff --git a/stdlib/test/test/lux/data/maybe.lux b/stdlib/test/test/lux/data/maybe.lux
index 9723500f5..8353461b7 100644
--- a/stdlib/test/test/lux/data/maybe.lux
+++ b/stdlib/test/test/lux/data/maybe.lux
@@ -12,7 +12,7 @@
(let [(^open "&/") &.Monoid<Maybe>
(^open "&/") &.Apply<Maybe>
(^open "&/") &.Monad<Maybe>
- (^open "Maybe/") (&.Eq<Maybe> text.Eq<Text>)]
+ (^open "Maybe/") (&.Equivalence<Maybe> text.Equivalence<Text>)]
($_ seq
(test "Can compare Maybe values."
(and (Maybe/= #.None #.None)
diff --git a/stdlib/test/test/lux/data/number.lux b/stdlib/test/test/lux/data/number.lux
index 9f3d94a2e..4afba422a 100644
--- a/stdlib/test/test/lux/data/number.lux
+++ b/stdlib/test/test/lux/data/number.lux
@@ -4,26 +4,26 @@
(control ["M" monad #+ do Monad]
pipe)
(data number
- [text "Text/" Monoid<Text> Eq<Text>]
+ [text "Text/" Monoid<Text> Equivalence<Text>]
text/format)
["r" math/random])
lux/test)
-(do-template [category rand-gen <Eq> <Order>]
- [(context: (format "[" category "] " "Eq & Order")
+(do-template [category rand-gen <Equivalence> <Order>]
+ [(context: (format "[" category "] " "Equivalence & Order")
(<| (times +100)
(do @
[x rand-gen
y rand-gen]
- (test "" (and (:: <Eq> = x x)
- (or (:: <Eq> = x y)
+ (test "" (and (:: <Equivalence> = x x)
+ (or (:: <Equivalence> = x y)
(:: <Order> < y x)
(:: <Order> > y x)))))))]
- ["Nat" r.nat Eq<Nat> Order<Nat>]
- ["Int" r.int Eq<Int> Order<Int>]
- ["Rev" r.rev Eq<Rev> Order<Rev>]
- ["Frac" r.frac Eq<Frac> Order<Frac>]
+ ["Nat" r.nat Equivalence<Nat> Order<Nat>]
+ ["Int" r.int Equivalence<Int> Order<Int>]
+ ["Rev" r.rev Equivalence<Rev> Order<Rev>]
+ ["Frac" r.frac Equivalence<Frac> Order<Frac>]
)
(do-template [category rand-gen <Number> <Order>]
@@ -119,7 +119,7 @@
["Frac/Max" r.frac Number<Frac> Order<Frac> Max@Monoid<Frac> (f/% 1000.0) (f/> 0.0)]
)
-(do-template [<category> <rand-gen> <Eq> <Codec>]
+(do-template [<category> <rand-gen> <Equivalence> <Codec>]
[(context: (format "[" <category> "] " "Alternative formats")
(<| (times +100)
(do @
@@ -129,30 +129,30 @@
(:: <Codec> encode)
(:: <Codec> decode)
(case> (#.Right x')
- (:: <Eq> = x x')
+ (:: <Equivalence> = x x')
(#.Left _)
false))))))]
- ["Nat/Binary" r.nat Eq<Nat> Binary@Codec<Text,Nat>]
- ["Nat/Octal" r.nat Eq<Nat> Octal@Codec<Text,Nat>]
- ["Nat/Decimal" r.nat Eq<Nat> Codec<Text,Nat>]
- ["Nat/Hex" r.nat Eq<Nat> Hex@Codec<Text,Nat>]
-
- ["Int/Binary" r.int Eq<Int> Binary@Codec<Text,Int>]
- ["Int/Octal" r.int Eq<Int> Octal@Codec<Text,Int>]
- ["Int/Decimal" r.int Eq<Int> Codec<Text,Int>]
- ["Int/Hex" r.int Eq<Int> Hex@Codec<Text,Int>]
-
- ["Rev/Binary" r.rev Eq<Rev> Binary@Codec<Text,Rev>]
- ["Rev/Octal" r.rev Eq<Rev> Octal@Codec<Text,Rev>]
- ["Rev/Decimal" r.rev Eq<Rev> Codec<Text,Rev>]
- ["Rev/Hex" r.rev Eq<Rev> Hex@Codec<Text,Rev>]
-
- ["Frac/Binary" r.frac Eq<Frac> Binary@Codec<Text,Frac>]
- ["Frac/Octal" r.frac Eq<Frac> Octal@Codec<Text,Frac>]
- ["Frac/Decimal" r.frac Eq<Frac> Codec<Text,Frac>]
- ["Frac/Hex" r.frac Eq<Frac> Hex@Codec<Text,Frac>]
+ ["Nat/Binary" r.nat Equivalence<Nat> Binary@Codec<Text,Nat>]
+ ["Nat/Octal" r.nat Equivalence<Nat> Octal@Codec<Text,Nat>]
+ ["Nat/Decimal" r.nat Equivalence<Nat> Codec<Text,Nat>]
+ ["Nat/Hex" r.nat Equivalence<Nat> Hex@Codec<Text,Nat>]
+
+ ["Int/Binary" r.int Equivalence<Int> Binary@Codec<Text,Int>]
+ ["Int/Octal" r.int Equivalence<Int> Octal@Codec<Text,Int>]
+ ["Int/Decimal" r.int Equivalence<Int> Codec<Text,Int>]
+ ["Int/Hex" r.int Equivalence<Int> Hex@Codec<Text,Int>]
+
+ ["Rev/Binary" r.rev Equivalence<Rev> Binary@Codec<Text,Rev>]
+ ["Rev/Octal" r.rev Equivalence<Rev> Octal@Codec<Text,Rev>]
+ ["Rev/Decimal" r.rev Equivalence<Rev> Codec<Text,Rev>]
+ ["Rev/Hex" r.rev Equivalence<Rev> Hex@Codec<Text,Rev>]
+
+ ["Frac/Binary" r.frac Equivalence<Frac> Binary@Codec<Text,Frac>]
+ ["Frac/Octal" r.frac Equivalence<Frac> Octal@Codec<Text,Frac>]
+ ["Frac/Decimal" r.frac Equivalence<Frac> Codec<Text,Frac>]
+ ["Frac/Hex" r.frac Equivalence<Frac> Hex@Codec<Text,Frac>]
)
(context: "Can convert frac values to/from their bit patterns."
diff --git a/stdlib/test/test/lux/data/sum.lux b/stdlib/test/test/lux/data/sum.lux
index de33a9f64..47e68e220 100644
--- a/stdlib/test/test/lux/data/sum.lux
+++ b/stdlib/test/test/lux/data/sum.lux
@@ -10,7 +10,7 @@
lux/test)
(context: "Sum operations"
- (let [(^open "List/") (list.Eq<List> text.Eq<Text>)]
+ (let [(^open "List/") (list.Equivalence<List> text.Equivalence<Text>)]
($_ seq
(test "Can inject values into Either."
(and (|> (left "Hello") (case> (+0 "Hello") true _ false))
diff --git a/stdlib/test/test/lux/data/text.lux b/stdlib/test/test/lux/data/text.lux
index 99c750f74..23d6f8d9b 100644
--- a/stdlib/test/test/lux/data/text.lux
+++ b/stdlib/test/test/lux/data/text.lux
@@ -64,7 +64,7 @@
fake-sample (&.join-with " " (list sampleL sampleR))
dup-sample (&.join-with "" (list sampleL sampleR))
enclosed-sample (&.enclose [sampleR sampleR] sampleL)
- (^open) &.Eq<Text>]]
+ (^open) &.Equivalence<Text>]]
(test "" (and (not (= sample fake-sample))
(= sample dup-sample)
(&.starts-with? sampleL sample)
@@ -112,7 +112,7 @@
parts (r.list sizeL part-gen)
#let [sample1 (&.concat (list.interpose sep1 parts))
sample2 (&.concat (list.interpose sep2 parts))
- (^open "&/") &.Eq<Text>]]
+ (^open "&/") &.Equivalence<Text>]]
($_ seq
(test "Can split text through a separator."
(n/= (list.size parts)
diff --git a/stdlib/test/test/lux/data/text/format.lux b/stdlib/test/test/lux/data/text/format.lux
index ccffe2fcf..2ce811b33 100644
--- a/stdlib/test/test/lux/data/text/format.lux
+++ b/stdlib/test/test/lux/data/text/format.lux
@@ -8,7 +8,7 @@
lux/test)
(context: "Formatters"
- (let [(^open "&/") text.Eq<Text>]
+ (let [(^open "&/") text.Equivalence<Text>]
($_ seq
(test "Can format common values simply."
(and (&/= "true" (%b true))
diff --git a/stdlib/test/test/lux/data/text/lexer.lux b/stdlib/test/test/lux/data/text/lexer.lux
index 58e142a98..d1d05074f 100644
--- a/stdlib/test/test/lux/data/text/lexer.lux
+++ b/stdlib/test/test/lux/data/text/lexer.lux
@@ -5,7 +5,7 @@
["p" parser])
[io]
(data ["E" error]
- [text "text/" Eq<Text>]
+ [text "text/" Equivalence<Text>]
text/format
["&" text/lexer]
(coll [list]))
@@ -30,7 +30,7 @@
(def: (should-passL test input)
(-> (List Text) (E.Error (List Text)) Bool)
- (let [(^open "list/") (list.Eq<List> text.Eq<Text>)]
+ (let [(^open "list/") (list.Equivalence<List> text.Equivalence<Text>)]
(case input
(#.Right output)
(list/= test output)
diff --git a/stdlib/test/test/lux/data/text/regex.lux b/stdlib/test/test/lux/data/text/regex.lux
index 7bc3082a1..cab2b168b 100644
--- a/stdlib/test/test/lux/data/text/regex.lux
+++ b/stdlib/test/test/lux/data/text/regex.lux
@@ -5,7 +5,7 @@
pipe
["p" parser])
(data [product]
- [text "T/" Eq<Text>]
+ [text "T/" Equivalence<Text>]
text/format
(text [lexer]
["&" regex]))
diff --git a/stdlib/test/test/lux/host.jvm.lux b/stdlib/test/test/lux/host.jvm.lux
index cfd6bad5e..c9c59e8d2 100644
--- a/stdlib/test/test/lux/host.jvm.lux
+++ b/stdlib/test/test/lux/host.jvm.lux
@@ -6,7 +6,7 @@
(data text/format
[number]
[product]
- [text "text/" Eq<Text>])
+ [text "text/" Equivalence<Text>])
["&" host #+ class: interface: object]
["r" math/random])
lux/test)
diff --git a/stdlib/test/test/lux/io.lux b/stdlib/test/test/lux/io.lux
index faddcf42d..768bc3166 100644
--- a/stdlib/test/test/lux/io.lux
+++ b/stdlib/test/test/lux/io.lux
@@ -2,7 +2,7 @@
lux
(lux ["&" io]
(control ["M" monad #+ do Monad])
- (data [text "Text/" Monoid<Text> Eq<Text>]
+ (data [text "Text/" Monoid<Text> Equivalence<Text>]
text/format
[number]))
lux/test)
diff --git a/stdlib/test/test/lux/lang/compiler/analysis/case.lux b/stdlib/test/test/lux/lang/compiler/analysis/case.lux
index cbf11b164..21fa2b9f9 100644
--- a/stdlib/test/test/lux/lang/compiler/analysis/case.lux
+++ b/stdlib/test/test/lux/lang/compiler/analysis/case.lux
@@ -3,18 +3,18 @@
(lux [io]
(control [monad #+ do]
pipe)
- (data [bool "B/" Eq<Bool>]
+ (data [bool "B/" Equivalence<Bool>]
["R" error]
[product]
[maybe]
- [text "T/" Eq<Text>]
+ [text "T/" Equivalence<Text>]
text/format
(coll [list "list/" Monad<List>]
(set ["set" unordered])))
["r" math/random "r/" Monad<Random>]
[macro #+ Monad<Meta>]
(macro [code])
- (lang [type "type/" Eq<Type>]
+ (lang [type "type/" Equivalence<Type>]
(type ["tc" check])
[".L" module]
(compiler [analysis]
diff --git a/stdlib/test/test/lux/lang/compiler/analysis/function.lux b/stdlib/test/test/lux/lang/compiler/analysis/function.lux
index 3fab96a92..b8c5d23b6 100644
--- a/stdlib/test/test/lux/lang/compiler/analysis/function.lux
+++ b/stdlib/test/test/lux/lang/compiler/analysis/function.lux
@@ -6,14 +6,14 @@
(data ["e" error]
[maybe]
[product]
- [text "text/" Eq<Text>]
+ [text "text/" Equivalence<Text>]
text/format
(coll [list "list/" Functor<List>]))
["r" math/random "r/" Monad<Random>]
[macro]
(macro [code])
[lang]
- (lang [type "type/" Eq<Type>]
+ (lang [type "type/" Equivalence<Type>]
[".L" reference]
(compiler [".L" init]
[".L" analysis #+ Analysis]
diff --git a/stdlib/test/test/lux/lang/compiler/analysis/primitive.lux b/stdlib/test/test/lux/lang/compiler/analysis/primitive.lux
index 6f4cd1afc..cf98a71ff 100644
--- a/stdlib/test/test/lux/lang/compiler/analysis/primitive.lux
+++ b/stdlib/test/test/lux/lang/compiler/analysis/primitive.lux
@@ -10,7 +10,7 @@
[macro]
(macro [code])
[lang]
- (lang [".L" type "type/" Eq<Type>]
+ (lang [".L" type "type/" Equivalence<Type>]
(compiler [".L" init]
[analysis #+ Analysis]
(analysis [".A" type]
diff --git a/stdlib/test/test/lux/lang/compiler/analysis/procedure/common.lux b/stdlib/test/test/lux/lang/compiler/analysis/procedure/common.lux
index 581ce90b8..fc1a209d9 100644
--- a/stdlib/test/test/lux/lang/compiler/analysis/procedure/common.lux
+++ b/stdlib/test/test/lux/lang/compiler/analysis/procedure/common.lux
@@ -12,17 +12,17 @@
[macro #+ Monad<Meta>]
(macro [code])
[lang]
- (lang [type "type/" Eq<Type>]
+ (lang [type "type/" Equivalence<Type>]
[".L" scope]
- [".L" init]
- (analysis [".A" type]))
+ (compiler [".L" init]
+ (analysis [".A" type])))
test)
(/// ["_." primitive]))
(do-template [<name> <success> <failure>]
[(def: (<name> procedure params output-type)
(-> Text (List Code) Type Bool)
- (|> (lang.with-scope
+ (|> (scopeL.with-scope ""
(typeA.with-type output-type
(_primitive.analyse (` ((~ (code.text procedure)) (~+ params))))))
(macro.run (initL.compiler []))
@@ -90,7 +90,7 @@
(check-success+ "lux int /" (list subjectC paramC) Int))
(test "Can calculate remainder of integers."
(check-success+ "lux int %" (list subjectC paramC) Int))
- (test "Can test equality of integers."
+ (test "Can test equivalence of integers."
(check-success+ "lux int =" (list subjectC paramC) Bool))
(test "Can compare integers."
(check-success+ "lux int <" (list subjectC paramC) Bool))
@@ -123,7 +123,7 @@
(check-success+ "lux frac /" (list subjectC paramC) Frac))
(test "Can calculate remainder of frac numbers."
(check-success+ "lux frac %" (list subjectC paramC) Frac))
- (test "Can test equality of frac numbers."
+ (test "Can test equivalence of frac numbers."
(check-success+ "lux frac =" (list subjectC paramC) Bool))
(test "Can compare frac numbers."
(check-success+ "lux frac <" (list subjectC paramC) Bool))
@@ -150,7 +150,7 @@
fromC (|> r.nat (:: @ map code.nat))
toC (|> r.nat (:: @ map code.nat))]
($_ seq
- (test "Can test text equality."
+ (test "Can test text equivalence."
(check-success+ "lux text =" (list subjectC paramC) Bool))
(test "Compare texts in lexicographical order."
(check-success+ "lux text <" (list subjectC paramC) Bool))
diff --git a/stdlib/test/test/lux/lang/compiler/analysis/procedure/host.jvm.lux b/stdlib/test/test/lux/lang/compiler/analysis/procedure/host.jvm.lux
index 0a60149d5..af4741918 100644
--- a/stdlib/test/test/lux/lang/compiler/analysis/procedure/host.jvm.lux
+++ b/stdlib/test/test/lux/lang/compiler/analysis/procedure/host.jvm.lux
@@ -7,7 +7,7 @@
(data ["e" error]
[product]
[maybe]
- [text "text/" Eq<Text>]
+ [text "text/" Equivalence<Text>]
text/format
(coll [array]
[list "list/" Fold<List>]
@@ -17,9 +17,9 @@
(macro [code])
[lang]
(lang [type]
- [".L" init]
- (analysis [".A" type])
- (extension (analysis [".AE" host])))
+ (compiler [".L" init]
+ (analysis [".A" type])
+ (extension (analysis [".AE" host]))))
test)
(/// ["_." primitive]))
diff --git a/stdlib/test/test/lux/lang/compiler/analysis/reference.lux b/stdlib/test/test/lux/lang/compiler/analysis/reference.lux
index c6fbf5da0..d1874bfee 100644
--- a/stdlib/test/test/lux/lang/compiler/analysis/reference.lux
+++ b/stdlib/test/test/lux/lang/compiler/analysis/reference.lux
@@ -4,13 +4,13 @@
(control [monad #+ do]
pipe)
(data ["e" error]
- [ident "ident/" Eq<Ident>]
- [text "text/" Eq<Text>])
+ [ident "ident/" Equivalence<Ident>]
+ [text "text/" Equivalence<Text>])
["r" math/random]
[macro #+ Monad<Meta>]
(macro [code])
[lang]
- (lang [type "type/" Eq<Type>]
+ (lang [type "type/" Equivalence<Type>]
[".L" scope]
[".L" module]
[".L" reference]
diff --git a/stdlib/test/test/lux/lang/compiler/analysis/structure.lux b/stdlib/test/test/lux/lang/compiler/analysis/structure.lux
index 2342e0e5a..d9d029d31 100644
--- a/stdlib/test/test/lux/lang/compiler/analysis/structure.lux
+++ b/stdlib/test/test/lux/lang/compiler/analysis/structure.lux
@@ -3,7 +3,7 @@
(lux [io]
(control [monad #+ do]
pipe)
- (data [bool "bool/" Eq<Bool>]
+ (data [bool "bool/" Equivalence<Bool>]
["e" error]
[product]
[maybe]
@@ -15,7 +15,7 @@
[macro]
(macro [code])
[lang]
- (lang [type "type/" Eq<Type>]
+ (lang [type "type/" Equivalence<Type>]
(type ["tc" check])
[".L" module]
(compiler [".L" init]
diff --git a/stdlib/test/test/lux/lang/compiler/synthesis/function.lux b/stdlib/test/test/lux/lang/compiler/synthesis/function.lux
index c7b16de27..92e5dcc72 100644
--- a/stdlib/test/test/lux/lang/compiler/synthesis/function.lux
+++ b/stdlib/test/test/lux/lang/compiler/synthesis/function.lux
@@ -11,7 +11,7 @@
(coll [list "list/" Functor<List> Fold<List>]
(dictionary ["dict" unordered #+ Dict])
(set ["set" unordered])))
- (lang ["///." reference #+ Variable "variable/" Equality<Variable>]
+ (lang ["///." reference #+ Variable "variable/" Equivalence<Variable>]
["///." compiler]
[".L" analysis #+ Arity Analysis]
["//" synthesis #+ Synthesis]
diff --git a/stdlib/test/test/lux/lang/compiler/synthesis/structure.lux b/stdlib/test/test/lux/lang/compiler/synthesis/structure.lux
index e61386044..eb970d3a3 100644
--- a/stdlib/test/test/lux/lang/compiler/synthesis/structure.lux
+++ b/stdlib/test/test/lux/lang/compiler/synthesis/structure.lux
@@ -3,7 +3,7 @@
(lux [io]
(control [monad #+ do]
pipe)
- (data [bool "bool/" Eq<Bool>]
+ (data [bool "bool/" Equivalence<Bool>]
[product]
[error]
(coll [list]))
diff --git a/stdlib/test/test/lux/lang/syntax.lux b/stdlib/test/test/lux/lang/syntax.lux
index 0ea9c5b9c..929ecaca0 100644
--- a/stdlib/test/test/lux/lang/syntax.lux
+++ b/stdlib/test/test/lux/lang/syntax.lux
@@ -88,7 +88,7 @@
false
(#e.Success [_ parsed])
- (:: code.Eq<Code> = parsed sample)))
+ (:: code.Equivalence<Code> = parsed sample)))
(test "Can parse Lux multiple code nodes."
(case (&.read "" (dict.new text.Hash<Text>)
[default-cursor +0 (format (code.to-text sample) " "
@@ -103,8 +103,8 @@
false
(#e.Success [_ =other])
- (and (:: code.Eq<Code> = sample =sample)
- (:: code.Eq<Code> = other =other)))))
+ (and (:: code.Equivalence<Code> = sample =sample)
+ (:: code.Equivalence<Code> = other =other)))))
))))
(context: "Frac special syntax."
@@ -208,7 +208,7 @@
false
(#e.Success [_ parsed])
- (:: code.Eq<Code> =
+ (:: code.Equivalence<Code> =
parsed
(code.text good-output)))))
(test "Can handle comments."
@@ -219,7 +219,7 @@
false
(#e.Success [_ parsed])
- (:: code.Eq<Code> = parsed sample)))
+ (:: code.Equivalence<Code> = parsed sample)))
(test "Will reject unbalanced multi-line comments."
(and (case (&.read "" (dict.new text.Hash<Text>)
[default-cursor +0
diff --git a/stdlib/test/test/lux/lang/type.lux b/stdlib/test/test/lux/lang/type.lux
index 22cd568ee..26f59f7b1 100644
--- a/stdlib/test/test/lux/lang/type.lux
+++ b/stdlib/test/test/lux/lang/type.lux
@@ -47,7 +47,7 @@
(do @
[sample gen-type]
(test "Every type is equal to itself."
- (:: &.Eq<Type> = sample sample)))))
+ (:: &.Equivalence<Type> = sample sample)))))
(context: "Type application"
(test "Can apply quantified types (universal and existential quantification)."
@@ -55,7 +55,7 @@
(do maybe.Monad<Maybe>
[partial (&.apply (list Bool) Ann)
full (&.apply (list Int) partial)]
- (wrap (:: &.Eq<Type> = full (#.Product Bool Int)))))
+ (wrap (:: &.Equivalence<Type> = full (#.Product Bool Int)))))
(|> (&.apply (list Bool) Text)
(case> #.None true _ false)))))
@@ -66,15 +66,15 @@
base))]
($_ seq
(test "Can remove aliases from an already-named type."
- (:: &.Eq<Type> =
+ (:: &.Equivalence<Type> =
base
(&.un-alias aliased)))
(test "Can remove all names from a type."
- (and (not (:: &.Eq<Type> =
+ (and (not (:: &.Equivalence<Type> =
base
(&.un-name aliased)))
- (:: &.Eq<Type> =
+ (:: &.Equivalence<Type> =
(&.un-name base)
(&.un-name aliased)))))))
@@ -92,8 +92,8 @@
true)))
(list.repeat size)
(M.seq @))
- #let [(^open "&/") &.Eq<Type>
- (^open "L/") (list.Eq<List> &.Eq<Type>)]]
+ #let [(^open "&/") &.Equivalence<Type>
+ (^open "L/") (list.Equivalence<List> &.Equivalence<Type>)]]
(with-expansions
[<struct-tests> (do-template [<desc> <ctor> <dtor> <unit>]
[(test (format "Can build and tear-down " <desc> " types.")
@@ -122,8 +122,8 @@
_
true))))
- #let [(^open "&/") &.Eq<Type>
- (^open "L/") (list.Eq<List> &.Eq<Type>)]]
+ #let [(^open "&/") &.Equivalence<Type>
+ (^open "L/") (list.Equivalence<List> &.Equivalence<Type>)]]
($_ seq
(test "Can build and tear-down function types."
(let [[inputs output] (|> (&.function members extra) &.flatten-function)]
@@ -147,7 +147,7 @@
_
true))))
- #let [(^open "&/") &.Eq<Type>]]
+ #let [(^open "&/") &.Equivalence<Type>]]
(with-expansions
[<quant-tests> (do-template [<desc> <ctor> <dtor>]
[(test (format "Can build and tear-down " <desc> " types.")
diff --git a/stdlib/test/test/lux/lang/type/check.lux b/stdlib/test/test/lux/lang/type/check.lux
index 57285c91c..2ffee1318 100644
--- a/stdlib/test/test/lux/lang/type/check.lux
+++ b/stdlib/test/test/lux/lang/type/check.lux
@@ -6,12 +6,12 @@
(data [product]
[maybe]
[number]
- [text "text/" Monoid<Text> Eq<Text>]
+ [text "text/" Monoid<Text> Equivalence<Text>]
text/format
(coll [list "list/" Functor<List>]
(set ["set" unordered])))
["r" math/random]
- (lang [type "type/" Eq<Type>]
+ (lang [type "type/" Equivalence<Type>]
["@" type/check]))
lux/test)
@@ -215,11 +215,11 @@
headR (@.ring head-id)
tailR (@.ring tail-id)]
(@.assert ""
- (let [same-rings? (:: set.Eq<Set> = headR tailR)
+ (let [same-rings? (:: set.Equivalence<Set> = headR tailR)
expected-size? (n/= (inc num-connections) (set.size headR))
same-vars? (|> (set.to-list headR)
(list.sort n/<)
- (:: (list.Eq<List> number.Eq<Nat>) = (list.sort n/< (#.Cons head-id ids))))]
+ (:: (list.Equivalence<List> number.Equivalence<Nat>) = (list.sort n/< (#.Cons head-id ids))))]
(and same-rings?
expected-size?
same-vars?))))))
@@ -251,10 +251,10 @@
headRL-post (@.ring head-idL)
headRR-post (@.ring head-idR)]
(@.assert ""
- (let [same-rings? (:: set.Eq<Set> = headRL-post headRR-post)
+ (let [same-rings? (:: set.Equivalence<Set> = headRL-post headRR-post)
expected-size? (n/= (n/* +2 (inc num-connections))
(set.size headRL-post))
- union? (:: set.Eq<Set> = headRL-post (set.union headRL-pre headRR-pre))]
+ union? (:: set.Equivalence<Set> = headRL-post (set.union headRL-pre headRR-pre))]
(and same-rings?
expected-size?
union?))))))
diff --git a/stdlib/test/test/lux/macro/code.lux b/stdlib/test/test/lux/macro/code.lux
index 08160c7e2..300adc53c 100644
--- a/stdlib/test/test/lux/macro/code.lux
+++ b/stdlib/test/test/lux/macro/code.lux
@@ -2,7 +2,7 @@
lux
(lux [io]
(control [monad #+ do Monad])
- (data [text "T/" Eq<Text>]
+ (data [text "T/" Equivalence<Text>]
text/format
[number])
["r" math/random]
@@ -14,7 +14,7 @@
[<tests> (do-template [<expr> <text>]
[(test (format "Can produce Code node: " <text>)
(and (T/= <text> (&.to-text <expr>))
- (:: &.Eq<Code> = <expr> <expr>)))]
+ (:: &.Equivalence<Code> = <expr> <expr>)))]
[(&.bool true) "true"]
[(&.bool false) "false"]
diff --git a/stdlib/test/test/lux/macro/poly/equality.lux b/stdlib/test/test/lux/macro/poly/equivalence.lux
index 832c72355..f37ad04b5 100644
--- a/stdlib/test/test/lux/macro/poly/equality.lux
+++ b/stdlib/test/test/lux/macro/poly/equivalence.lux
@@ -2,7 +2,7 @@
lux
(lux [io]
(control [monad #+ do Monad]
- [equality #+ Eq])
+ [equivalence #+ Equivalence])
(data text/format
[bool]
[number "int/" Number<Int>]
@@ -12,7 +12,7 @@
["r" math/random]
[macro]
(macro [poly #+ derived:]
- ["&" poly/equality]))
+ ["&" poly/equivalence]))
lux/test)
## [Utils]
@@ -58,13 +58,13 @@
($_ r.seq gen-int r.frac (r.unicode size))
gen-recursive)))
-(derived: (&.Eq<?> Record))
+(derived: (&.Equivalence<?> Record))
## [Tests]
-(context: "Eq polytypism"
+(context: "Equivalence polytypism"
(<| (times +100)
(do @
[sample gen-record
- #let [(^open "&/") Eq<Record>]]
+ #let [(^open "&/") Equivalence<Record>]]
(test "Every instance equals itself."
(&/= sample sample)))))
diff --git a/stdlib/test/test/lux/macro/poly/functor.lux b/stdlib/test/test/lux/macro/poly/functor.lux
index 86c3eca7f..9db2ea282 100644
--- a/stdlib/test/test/lux/macro/poly/functor.lux
+++ b/stdlib/test/test/lux/macro/poly/functor.lux
@@ -1,17 +1,7 @@
(.module:
lux
- (lux [io]
- (control [monad #+ do Monad]
- [functor]
- [equality #+ Eq]
- [state])
- (data text/format
- [bool]
- [number]
- [text]
- [identity])
- ["r" math/random]
- [macro]
+ (lux (control [state])
+ (data [identity])
(macro [poly #+ derived:]
["&" poly/functor]))
lux/test)
@@ -27,4 +17,5 @@
## [Tests]
(context: "Functor polytypism."
- (test "" true))
+ (test "Can derive functors automatically."
+ true))
diff --git a/stdlib/test/test/lux/macro/syntax.lux b/stdlib/test/test/lux/macro/syntax.lux
index 342845337..3b9815064 100644
--- a/stdlib/test/test/lux/macro/syntax.lux
+++ b/stdlib/test/test/lux/macro/syntax.lux
@@ -2,7 +2,7 @@
lux
(lux [io]
(control [monad #+ do Monad]
- [equality #+ Eq]
+ [equivalence #+ Equivalence]
["p" parser])
(data [text "Text/" Monoid<Text>]
text/format
@@ -35,11 +35,11 @@
_
false))
-(def: (equals? Eq<a> reference parser input)
- (All [a] (-> (Eq a) a (Syntax a) (List Code) Bool))
+(def: (equals? Equivalence<a> reference parser input)
+ (All [a] (-> (Equivalence a) a (Syntax a) (List Code) Bool))
(case (p.run input parser)
(#.Right [_ output])
- (:: Eq<a> = reference output)
+ (:: Equivalence<a> = reference output)
_
false))
@@ -64,20 +64,20 @@
## [Tests]
(context: "Simple value syntax."
(with-expansions
- [<simple-tests> (do-template [<assertion> <value> <ctor> <Eq> <get>]
+ [<simple-tests> (do-template [<assertion> <value> <ctor> <Equivalence> <get>]
[(test <assertion>
- (and (equals? <Eq> <value> <get> (list (<ctor> <value>)))
+ (and (equals? <Equivalence> <value> <get> (list (<ctor> <value>)))
(found? (s.this? (<ctor> <value>)) (list (<ctor> <value>)))
(enforced? (s.this (<ctor> <value>)) (list (<ctor> <value>)))))]
- ["Can parse Bool syntax." true code.bool bool.Eq<Bool> s.bool]
- ["Can parse Nat syntax." +123 code.nat number.Eq<Nat> s.nat]
- ["Can parse Int syntax." 123 code.int number.Eq<Int> s.int]
- ["Can parse Rev syntax." .123 code.rev number.Eq<Rev> s.rev]
- ["Can parse Frac syntax." 123.0 code.frac number.Eq<Frac> s.frac]
- ["Can parse Text syntax." "\n" code.text text.Eq<Text> s.text]
- ["Can parse Symbol syntax." ["yolo" "lol"] code.symbol ident.Eq<Ident> s.symbol]
- ["Can parse Tag syntax." ["yolo" "lol"] code.tag ident.Eq<Ident> s.tag]
+ ["Can parse Bool syntax." true code.bool bool.Equivalence<Bool> s.bool]
+ ["Can parse Nat syntax." +123 code.nat number.Equivalence<Nat> s.nat]
+ ["Can parse Int syntax." 123 code.int number.Equivalence<Int> s.int]
+ ["Can parse Rev syntax." .123 code.rev number.Equivalence<Rev> s.rev]
+ ["Can parse Frac syntax." 123.0 code.frac number.Equivalence<Frac> s.frac]
+ ["Can parse Text syntax." "\n" code.text text.Equivalence<Text> s.text]
+ ["Can parse Symbol syntax." ["yolo" "lol"] code.symbol ident.Equivalence<Ident> s.symbol]
+ ["Can parse Tag syntax." ["yolo" "lol"] code.tag ident.Equivalence<Ident> s.tag]
)]
($_ seq
<simple-tests>
diff --git a/stdlib/test/test/lux/math.lux b/stdlib/test/test/lux/math.lux
index 80ca6995c..4e7e29a1e 100644
--- a/stdlib/test/test/lux/math.lux
+++ b/stdlib/test/test/lux/math.lux
@@ -2,7 +2,7 @@
lux
(lux [io]
(control [monad #+ do Monad])
- (data [bool "bool/" Eq<Bool>]
+ (data [bool "bool/" Equivalence<Bool>]
[number "frac/" Number<Frac>])
["r" math/random]
["&" math])
diff --git a/stdlib/test/test/lux/math/logic/fuzzy.lux b/stdlib/test/test/lux/math/logic/fuzzy.lux
index c5c70c5a0..3fa7c66cc 100644
--- a/stdlib/test/test/lux/math/logic/fuzzy.lux
+++ b/stdlib/test/test/lux/math/logic/fuzzy.lux
@@ -4,7 +4,7 @@
(control [monad #+ do Monad])
(data (coll [list]
(set ["set" unordered]))
- [bool "B/" Eq<Bool>]
+ [bool "B/" Equivalence<Bool>]
[number]
text/format)
["r" math/random]
diff --git a/stdlib/test/test/lux/math/modular.lux b/stdlib/test/test/lux/math/modular.lux
index 7bb684695..7102e684d 100644
--- a/stdlib/test/test/lux/math/modular.lux
+++ b/stdlib/test/test/lux/math/modular.lux
@@ -2,12 +2,12 @@
lux
(lux (control [monad #+ do])
(data [product]
- [bool "bool/" Eq<Bool>]
+ [bool "bool/" Equivalence<Bool>]
["e" error]
text/format)
(math ["r" random]
["/" modular])
- (lang [type "type/" Eq<Type>]))
+ (lang [type "type/" Equivalence<Type>]))
lux/test)
(def: %3 (/.modulus 3))
diff --git a/stdlib/test/test/lux/math/random.lux b/stdlib/test/test/lux/math/random.lux
index b2f4fe6ca..2096edcfe 100644
--- a/stdlib/test/test/lux/math/random.lux
+++ b/stdlib/test/test/lux/math/random.lux
@@ -49,7 +49,7 @@
(test "Can filter values."
(n/<= top filtered))
(test "Can shuffle rows."
- (let [(^open "v/") (row.Eq<Row> number.Eq<Nat>)
+ (let [(^open "v/") (row.Equivalence<Row> number.Equivalence<Nat>)
sorted (row.from-list sorted)]
(and (not (v/= sorted shuffled))
(v/= sorted (row.from-list re-sorted)))))
diff --git a/stdlib/test/test/lux/time/date.lux b/stdlib/test/test/lux/time/date.lux
index 8dba5517a..dbd925fda 100644
--- a/stdlib/test/test/lux/time/date.lux
+++ b/stdlib/test/test/lux/time/date.lux
@@ -25,11 +25,11 @@
(r.either (r/wrap #@.November)
(r/wrap #@.December))))))
-(context: "(Month) Eq."
+(context: "(Month) Equivalence."
(<| (times +100)
(do @
[sample month
- #let [(^open "@/") @.Eq<Month>]]
+ #let [(^open "@/") @.Equivalence<Month>]]
(test "Every value equals itself."
(@/= sample sample)))))
@@ -68,11 +68,11 @@
(r/wrap #@.Friday))
(r/wrap #@.Saturday))))
-(context: "(Day) Eq."
+(context: "(Day) Equivalence."
(<| (times +100)
(do @
[sample day
- #let [(^open "@/") @.Eq<Day>]]
+ #let [(^open "@/") @.Equivalence<Day>]]
(test "Every value equals itself."
(@/= sample sample)))))
@@ -105,11 +105,11 @@
(r.Random @.Date)
(|> _instant.instant (:: r.Monad<Random> map @instant.date)))
-(context: "(Date) Eq."
+(context: "(Date) Equivalence."
(<| (times +100)
(do @
[sample date
- #let [(^open "@/") @.Eq<Date>]]
+ #let [(^open "@/") @.Equivalence<Date>]]
(test "Every value equals itself."
(@/= sample sample)))))
@@ -130,7 +130,7 @@
## (times +100)
(do @
[sample date
- #let [(^open "@/") @.Eq<Date>
+ #let [(^open "@/") @.Equivalence<Date>
(^open "@/") @.Codec<Text,Date>]]
(test "Can encode/decode dates."
(|> sample
diff --git a/stdlib/test/test/lux/time/duration.lux b/stdlib/test/test/lux/time/duration.lux
index 3529852a0..6437a45a3 100644
--- a/stdlib/test/test/lux/time/duration.lux
+++ b/stdlib/test/test/lux/time/duration.lux
@@ -18,15 +18,15 @@
(test "Can convert from/to milliseconds."
(|> millis @.from-millis @.to-millis (i/= millis))))))
-(context: "Equality"
+(context: "Equivalence."
(<| (times +100)
(do @
[sample duration
- #let [(^open "@/") @.Eq<Duration>]]
+ #let [(^open "@/") @.Equivalence<Duration>]]
(test "Every duration equals itself."
(@/= sample sample)))))
-(context: "Order"
+(context: "Order."
(<| (times +100)
(do @
[reference duration
@@ -73,7 +73,7 @@
(<| (times +100)
(do @
[sample duration
- #let [(^open "@/") @.Eq<Duration>
+ #let [(^open "@/") @.Equivalence<Duration>
(^open "@/") @.Codec<Text,Duration>]]
(test "Can encode/decode durations."
(E.default false
diff --git a/stdlib/test/test/lux/time/instant.lux b/stdlib/test/test/lux/time/instant.lux
index ee328ea3d..cff332527 100644
--- a/stdlib/test/test/lux/time/instant.lux
+++ b/stdlib/test/test/lux/time/instant.lux
@@ -27,11 +27,11 @@
(test "Can convert from/to milliseconds."
(|> millis @.from-millis @.to-millis (i/= millis))))))
-(context: "Equality"
+(context: "Equivalence."
(<| (times +100)
(do @
[sample instant
- #let [(^open "@/") @.Eq<Instant>]]
+ #let [(^open "@/") @.Equivalence<Instant>]]
(test "Every instant equals itself."
(@/= sample sample)))))
@@ -65,8 +65,8 @@
(do @
[sample instant
span _duration.duration
- #let [(^open "@/") @.Eq<Instant>
- (^open "@d/") @d.Eq<Duration>]]
+ #let [(^open "@/") @.Equivalence<Instant>
+ (^open "@d/") @d.Equivalence<Duration>]]
($_ seq
(test "The span of a instant and itself has an empty duration."
(|> sample (@.span sample) (@d/= @d.empty)))
@@ -82,7 +82,7 @@
## ## (times +100)
## (do @
## [sample instant
-## #let [(^open "@/") @.Eq<Instant>
+## #let [(^open "@/") @.Equivalence<Instant>
## (^open "@/") @.Codec<Text,Instant>]]
## (test "Can encode/decode instants."
## (|> sample
diff --git a/stdlib/test/test/lux/type/implicit.lux b/stdlib/test/test/lux/type/implicit.lux
index a5af06c5d..33c0bd6c5 100644
--- a/stdlib/test/test/lux/type/implicit.lux
+++ b/stdlib/test/test/lux/type/implicit.lux
@@ -1,11 +1,9 @@
(.module:
lux
(lux [io]
- (control [monad #+ do Monad]
- functor
- [equality])
+ (control [monad #+ do Monad])
(data [number]
- [bool "bool/" Eq<Bool>]
+ [bool "bool/" Equivalence<Bool>]
(coll [list]))
["r" math/random]
(type implicit))
@@ -18,8 +16,8 @@
y r.nat]
($_ seq
(test "Can automatically select first-order structures."
- (let [(^open "list/") (list.Eq<List> number.Eq<Nat>)]
- (and (bool/= (:: number.Eq<Nat> = x y)
+ (let [(^open "list/") (list.Equivalence<List> number.Equivalence<Nat>)]
+ (and (bool/= (:: number.Equivalence<Nat> = x y)
(::: = x y))
(list/= (list.n/range +1 +10)
(::: map inc (list.n/range +0 +9)))
diff --git a/stdlib/test/test/lux/world/blob.lux b/stdlib/test/test/lux/world/blob.lux
index a74fb20e0..8e69e4176 100644
--- a/stdlib/test/test/lux/world/blob.lux
+++ b/stdlib/test/test/lux/world/blob.lux
@@ -10,7 +10,7 @@
(world ["/" blob])
["r" math/random])
lux/test
- (test (lux (control ["_eq" equality]))))
+ (test (lux (control ["_eq" equivalence]))))
(def: (succeed result)
(-> (e.Error Bool) Bool)
@@ -55,7 +55,7 @@
#let [[from to] [(n/min from to) (n/max from to)]]]
($_ seq
## TODO: De-comment...
- ## (_eq.spec /.Eq<Blob> (:: @ map blob gen-size))
+ ## (_eq.spec /.Equivalence<Blob> (:: @ map blob gen-size))
(test "Can get size of blob."
(|> random-blob /.size (n/= blob-size)))
(test "Can read/write 8-bit values."
@@ -75,7 +75,7 @@
(case [(monad.map e.Monad<Error> (reader random-slice) idxs)
(monad.map e.Monad<Error> (|>> (n/+ from) (reader random-blob)) idxs)]
[(#e.Success slice-vals) (#e.Success blob-vals)]
- (:: (list.Eq<List> number.Eq<Nat>) = slice-vals blob-vals)
+ (:: (list.Equivalence<List> number.Equivalence<Nat>) = slice-vals blob-vals)
_
false))))
diff --git a/stdlib/test/test/lux/world/file.lux b/stdlib/test/test/lux/world/file.lux
index 6d32a994b..75f08e97c 100644
--- a/stdlib/test/test/lux/world/file.lux
+++ b/stdlib/test/test/lux/world/file.lux
@@ -50,7 +50,7 @@
[_ (@.write dataL file)
output (@.read file)
_ (@.delete file)]
- (wrap (:: blob.Eq<Blob> = dataL output))))]
+ (wrap (:: blob.Equivalence<Blob> = dataL output))))]
(assert "Can write/read files."
(e.default false result))))
(wrap (do P.Monad<Promise>
@@ -73,8 +73,8 @@
read-size (@.size file)
_ (@.delete file)]
(wrap (and (n/= (n/* +2 file-size) read-size)
- (:: blob.Eq<Blob> = dataL (e.assume (blob.slice +0 (dec file-size) output)))
- (:: blob.Eq<Blob> = dataR (e.assume (blob.slice file-size (dec read-size) output)))))))]
+ (:: blob.Equivalence<Blob> = dataL (e.assume (blob.slice +0 (dec file-size) output)))
+ (:: blob.Equivalence<Blob> = dataR (e.assume (blob.slice file-size (dec read-size) output)))))))]
(assert "Can append to files."
(e.default false result))))
(wrap (do P.Monad<Promise>
@@ -151,7 +151,7 @@
time-read (@.last-modified file)
_ (@.delete file)]
(wrap (and was-modified?
- (:: i.Eq<Instant> = last-modified time-read)))))]
+ (:: i.Equivalence<Instant> = last-modified time-read)))))]
(assert "Can change the time of last modification."
(e.default false result))))
(wrap (do P.Monad<Promise>
diff --git a/stdlib/test/test/lux/world/net/tcp.lux b/stdlib/test/test/lux/world/net/tcp.lux
index 892f6ddc4..e49a06a1e 100644
--- a/stdlib/test/test/lux/world/net/tcp.lux
+++ b/stdlib/test/test/lux/world/net/tcp.lux
@@ -42,7 +42,7 @@
(do @
[bytes-from (@.read temp-from +0 size socket)
#let [_ (io.run (P.resolve (#E.Success (and (n/= size bytes-from)
- (:: blob.Eq<Blob> = from temp-from)))
+ (:: blob.Equivalence<Blob> = from temp-from)))
from-worked?))]]
(@.write to +0 size socket)))
server)]
@@ -53,7 +53,7 @@
####################
bytes-to (@.read temp-to +0 size client)
#let [to-worked? (and (n/= size bytes-to)
- (:: blob.Eq<Blob> = to temp-to))]
+ (:: blob.Equivalence<Blob> = to temp-to))]
####################
_ (@.close client)
_ (T.from-promise (P.future (P.resolve [] server-close)))]
diff --git a/stdlib/test/test/lux/world/net/udp.lux b/stdlib/test/test/lux/world/net/udp.lux
index 4cb268a4f..6a51e0bf4 100644
--- a/stdlib/test/test/lux/world/net/udp.lux
+++ b/stdlib/test/test/lux/world/net/udp.lux
@@ -40,12 +40,12 @@
_ (@.write localhost port from +0 size client)
[bytes-from from-address from-port] (@.read temp +0 size server)
#let [from-worked? (and (n/= size bytes-from)
- (:: blob.Eq<Blob> = from temp))]
+ (:: blob.Equivalence<Blob> = from temp))]
####################
_ (@.write from-address from-port to +0 size server)
[bytes-to to-address to-port] (@.read temp +0 size client)
#let [to-worked? (and (n/= size bytes-to)
- (:: blob.Eq<Blob> = to temp)
+ (:: blob.Equivalence<Blob> = to temp)
(n/= port to-port))]
####################
_ (@.close client)