aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/macro
diff options
context:
space:
mode:
authorEduardo Julian2019-04-06 21:14:27 -0400
committerEduardo Julian2019-04-06 21:14:27 -0400
commita75f032ff219fdd639580455a6d3e83fd05d5592 (patch)
treef02c8e6b9c7c8fd932790b0fc8152fa30be55d7f /stdlib/source/lux/macro
parent9a22a2616ad08d4bda9555510aa4aaeced4b69f3 (diff)
Created the "lux/abstract" branch and moved some modules into it.
Diffstat (limited to 'stdlib/source/lux/macro')
-rw-r--r--stdlib/source/lux/macro/code.lux2
-rw-r--r--stdlib/source/lux/macro/poly.lux5
-rw-r--r--stdlib/source/lux/macro/poly/equivalence.lux15
-rw-r--r--stdlib/source/lux/macro/poly/functor.lux5
-rw-r--r--stdlib/source/lux/macro/poly/json.lux5
-rw-r--r--stdlib/source/lux/macro/syntax.lux5
-rw-r--r--stdlib/source/lux/macro/syntax/common/reader.lux3
-rw-r--r--stdlib/source/lux/macro/template.lux3
8 files changed, 25 insertions, 18 deletions
diff --git a/stdlib/source/lux/macro/code.lux b/stdlib/source/lux/macro/code.lux
index 84f08e5f1..ae7ba555c 100644
--- a/stdlib/source/lux/macro/code.lux
+++ b/stdlib/source/lux/macro/code.lux
@@ -1,6 +1,6 @@
(.module:
[lux (#- nat int rev)
- [control
+ [abstract
["." equivalence (#+ Equivalence)]]
[data
["." bit]
diff --git a/stdlib/source/lux/macro/poly.lux b/stdlib/source/lux/macro/poly.lux
index 4f5cd09a0..31b293144 100644
--- a/stdlib/source/lux/macro/poly.lux
+++ b/stdlib/source/lux/macro/poly.lux
@@ -1,8 +1,9 @@
(.module:
[lux (#- function)
- [control
+ [abstract
["." monad (#+ Monad do)]
- [equivalence]
+ [equivalence]]
+ [control
["p" parser]
["ex" exception (#+ exception:)]]
["." function]
diff --git a/stdlib/source/lux/macro/poly/equivalence.lux b/stdlib/source/lux/macro/poly/equivalence.lux
index cc0b79234..c39ad9412 100644
--- a/stdlib/source/lux/macro/poly/equivalence.lux
+++ b/stdlib/source/lux/macro/poly/equivalence.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ Monad do)]
+ ["/" equivalence]]
[control
- [monad (#+ do Monad)]
- ["eq" equivalence]
["p" parser]]
[data
["." product]
@@ -45,7 +46,7 @@
inputT poly.peek
#let [@Equivalence (: (-> Type Code)
(function (_ type)
- (` ((~! eq.Equivalence) (~ (poly.to-code *env* type))))))]]
+ (` ((~! /.Equivalence) (~ (poly.to-code *env* type))))))]]
($_ p.either
## Basic types
(~~ (template [<matcher> <eq>]
@@ -135,8 +136,8 @@
[[g!self bodyC] (poly.recursive equivalence)
#let [g!_ (code.local-identifier "_____________")]]
(wrap (` (: (~ (@Equivalence inputT))
- ((~! eq.rec) (.function ((~ g!_) (~ g!self))
- (~ bodyC)))))))
+ ((~! /.rec) (.function ((~ g!_) (~ g!self))
+ (~ bodyC)))))))
poly.recursive-self
## Type applications
(do @
@@ -148,8 +149,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 (|>> (~) ((~! /.Equivalence)) (`)) varsC))
+ ((~! /.Equivalence) ((~ (poly.to-code *env* inputT)) (~+ varsC)))))
(function ((~ funcC) (~+ varsC))
(~ bodyC))))))
poly.recursive-call
diff --git a/stdlib/source/lux/macro/poly/functor.lux b/stdlib/source/lux/macro/poly/functor.lux
index 6252378eb..947f08ac8 100644
--- a/stdlib/source/lux/macro/poly/functor.lux
+++ b/stdlib/source/lux/macro/poly/functor.lux
@@ -1,8 +1,9 @@
(.module:
[lux #*
+ [abstract
+ [monad (#+ Monad do)]
+ ["." functor]]
[control
- [monad (#+ do Monad)]
- ["." functor]
["p" parser]]
[data
["." product]
diff --git a/stdlib/source/lux/macro/poly/json.lux b/stdlib/source/lux/macro/poly/json.lux
index cc5f3b5c9..f397de2a2 100644
--- a/stdlib/source/lux/macro/poly/json.lux
+++ b/stdlib/source/lux/macro/poly/json.lux
@@ -1,9 +1,10 @@
(.module: {#.doc "Codecs for values in the JSON format."}
[lux #*
- [control
+ [abstract
[monad (#+ Monad do)]
[equivalence (#+ Equivalence)]
- ["." codec]
+ ["." codec]]
+ [control
["p" parser]]
[data
["." bit]
diff --git a/stdlib/source/lux/macro/syntax.lux b/stdlib/source/lux/macro/syntax.lux
index 08bb3c978..90d8b0938 100644
--- a/stdlib/source/lux/macro/syntax.lux
+++ b/stdlib/source/lux/macro/syntax.lux
@@ -1,8 +1,9 @@
(.module:
[lux (#- nat int rev)
- [control
+ [abstract
["." monad (#+ Monad do)]
- [equivalence (#+ Equivalence)]
+ [equivalence (#+ Equivalence)]]
+ [control
["p" parser]]
[data
["." bit]
diff --git a/stdlib/source/lux/macro/syntax/common/reader.lux b/stdlib/source/lux/macro/syntax/common/reader.lux
index 6ad2e4d46..99277857f 100644
--- a/stdlib/source/lux/macro/syntax/common/reader.lux
+++ b/stdlib/source/lux/macro/syntax/common/reader.lux
@@ -1,7 +1,8 @@
(.module: {#.doc "Commons syntax readers."}
[lux #*
+ [abstract
+ monad]
[control
- monad
["p" parser ("#;." monad)]]
[data
["." name ("#;." equivalence)]
diff --git a/stdlib/source/lux/macro/template.lux b/stdlib/source/lux/macro/template.lux
index a69d656f6..ad1600856 100644
--- a/stdlib/source/lux/macro/template.lux
+++ b/stdlib/source/lux/macro/template.lux
@@ -1,7 +1,8 @@
(.module:
[lux #*
+ [abstract
+ ["." monad (#+ do)]]
[control
- ["." monad (#+ do)]
["p" parser ("#@." functor)]]
[data
["." bit ("#@." codec)]