diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/macro/poly/equivalence.lux | 38 |
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 |