aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/macro/poly
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/macro/poly/equivalence.lux38
1 files changed, 19 insertions, 19 deletions
diff --git a/stdlib/source/lux/macro/poly/equivalence.lux b/stdlib/source/lux/macro/poly/equivalence.lux
index edb1f8dfc..4b5b80e13 100644
--- a/stdlib/source/lux/macro/poly/equivalence.lux
+++ b/stdlib/source/lux/macro/poly/equivalence.lux
@@ -40,7 +40,7 @@
inputT poly.peek
#let [@Equivalence (: (-> Type Code)
(function (_ type)
- (` (eq.Equivalence (~ (poly.to-code *env* type))))))]]
+ (` ((~! eq.Equivalence) (~ (poly.to-code *env* type))))))]]
($_ p.either
## Basic types
(~~ (do-template [<matcher> <eq>]
@@ -50,12 +50,12 @@
<eq>))))]
[(poly.exactly Any) (function ((~ g!_) (~ g!_) (~ g!_)) #1)]
- [(poly.sub Bit) bit.Equivalence<Bit>]
- [(poly.sub Nat) number.Equivalence<Nat>]
- [(poly.sub Int) number.Equivalence<Int>]
- [(poly.sub Rev) number.Equivalence<Rev>]
- [(poly.sub Frac) number.Equivalence<Frac>]
- [(poly.sub Text) text.Equivalence<Text>]))
+ [(poly.sub Bit) (~! bit.Equivalence<Bit>)]
+ [(poly.sub Nat) (~! number.Equivalence<Nat>)]
+ [(poly.sub Int) (~! number.Equivalence<Int>)]
+ [(poly.sub Rev) (~! number.Equivalence<Rev>)]
+ [(poly.sub Frac) (~! number.Equivalence<Frac>)]
+ [(poly.sub Text) (~! text.Equivalence<Text>)]))
## Composite types
(~~ (do-template [<name> <eq>]
[(do @
@@ -64,13 +64,13 @@
(wrap (` (: (~ (@Equivalence inputT))
(<eq> (~ argC))))))]
- [.Maybe maybe.Equivalence<Maybe>]
- [.List list.Equivalence<List>]
- [row.Row row.Equivalence<Row>]
- [array.Array array.Equivalence<Array>]
- [queue.Queue queue.Equivalence<Queue>]
- [set.Set set.Equivalence<Set>]
- [rose.Tree rose.Equivalence<Tree>]
+ [.Maybe (~! maybe.Equivalence<Maybe>)]
+ [.List (~! list.Equivalence<List>)]
+ [row.Row (~! row.Equivalence<Row>)]
+ [array.Array (~! array.Equivalence<Array>)]
+ [queue.Queue (~! queue.Equivalence<Queue>)]
+ [set.Set (~! set.Equivalence<Set>)]
+ [rose.Tree (~! rose.Equivalence<Tree>)]
))
(do @
[[_ _ valC] (poly.apply ($_ p.and
@@ -78,7 +78,7 @@
poly.any
Equivalence<?>))]
(wrap (` (: (~ (@Equivalence inputT))
- (dict.Equivalence<Dictionary> (~ valC))))))
+ ((~! dict.Equivalence<Dictionary>) (~ valC))))))
## Models
(~~ (do-template [<type> <eq>]
[(do @
@@ -129,8 +129,8 @@
[[g!self bodyC] (poly.recursive Equivalence<?>)
#let [g!_ (code.local-identifier "_____________")]]
(wrap (` (: (~ (@Equivalence inputT))
- (eq.rec (.function ((~ g!_) (~ g!self))
- (~ bodyC)))))))
+ ((~! eq.rec) (.function ((~ g!_) (~ g!self))
+ (~ bodyC)))))))
poly.recursive-self
## Type applications
(do @
@@ -142,8 +142,8 @@
(do @
[[funcC varsC bodyC] (poly.polymorphic Equivalence<?>)]
(wrap (` (: (All [(~+ varsC)]
- (-> (~+ (list/map (|>> (~) eq.Equivalence (`)) varsC))
- (eq.Equivalence ((~ (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