aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/analysis/inference.lux
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc/source/luxc/lang/analysis/inference.lux')
-rw-r--r--new-luxc/source/luxc/lang/analysis/inference.lux40
1 files changed, 20 insertions, 20 deletions
diff --git a/new-luxc/source/luxc/lang/analysis/inference.lux b/new-luxc/source/luxc/lang/analysis/inference.lux
index 910d5093a..c6f0323f7 100644
--- a/new-luxc/source/luxc/lang/analysis/inference.lux
+++ b/new-luxc/source/luxc/lang/analysis/inference.lux
@@ -6,7 +6,7 @@
[text]
text/format
(coll [list "list/" Functor<List>]))
- [meta "meta/" Monad<Meta>]
+ [macro "macro/" Monad<Meta>]
(lang [type]
(type ["tc" check])))
(luxc ["&" lang]
@@ -71,7 +71,7 @@
(-> &;Analyser Type (List Code) (Meta [Type (List Analysis)]))
(case args
#;Nil
- (do meta;Monad<Meta>
+ (do macro;Monad<Meta>
[_ (&;infer inferT)]
(wrap [inferT (list)]))
@@ -81,12 +81,12 @@
(general analyse unnamedT args)
(#;UnivQ _)
- (do meta;Monad<Meta>
+ (do macro;Monad<Meta>
[[var-id varT] (&;with-type-env tc;var)]
(general analyse (maybe;assume (type;apply (list varT) inferT)) args))
(#;ExQ _)
- (do meta;Monad<Meta>
+ (do macro;Monad<Meta>
[[ex-id exT] (&;with-type-env
tc;existential)]
(general analyse (maybe;assume (type;apply (list exT) inferT)) args))
@@ -107,7 +107,7 @@
## avoided in Lux code, since the inference algorithm can piece
## things together more easily.
(#;Function inputT outputT)
- (do meta;Monad<Meta>
+ (do macro;Monad<Meta>
[[outputT' args'A] (general analyse outputT args')
argA (&;with-stacked-errors
(function [_] (Cannot-Infer-Argument
@@ -118,7 +118,7 @@
(wrap [outputT' (list& argA args'A)]))
(#;Var infer-id)
- (do meta;Monad<Meta>
+ (do macro;Monad<Meta>
[?inferT' (&;with-type-env (tc;read infer-id))]
(case ?inferT'
(#;Some inferT')
@@ -140,14 +140,14 @@
(^template [<tag>]
(<tag> env bodyT)
- (do meta;Monad<Meta>
+ (do macro;Monad<Meta>
[bodyT+ (record bodyT)]
(wrap (<tag> env bodyT+))))
([#;UnivQ]
[#;ExQ])
(#;Product _)
- (meta/wrap (type;function (type;flatten-tuple type) type))
+ (macro/wrap (type;function (type;flatten-tuple type) type))
_
(&;throw Not-A-Record-Type (%type type))))
@@ -159,13 +159,13 @@
currentT type]
(case currentT
(#;Named name unnamedT)
- (do meta;Monad<Meta>
+ (do macro;Monad<Meta>
[unnamedT+ (recur depth unnamedT)]
(wrap unnamedT+))
(^template [<tag>]
(<tag> env bodyT)
- (do meta;Monad<Meta>
+ (do macro;Monad<Meta>
[bodyT+ (recur (n.inc depth) bodyT)]
(wrap (<tag> env bodyT+))))
([#;UnivQ]
@@ -180,11 +180,11 @@
(n.< boundary tag)))
(case (list;nth tag cases)
(#;Some caseT)
- (meta/wrap (if (n.= +0 depth)
- (type;function (list caseT) currentT)
- (let [replace! (replace-bound (|> depth n.dec (n.* +2)) type)]
- (type;function (list (replace! caseT))
- (replace! currentT)))))
+ (macro/wrap (if (n.= +0 depth)
+ (type;function (list caseT) currentT)
+ (let [replace! (replace-bound (|> depth n.dec (n.* +2)) type)]
+ (type;function (list (replace! caseT))
+ (replace! currentT)))))
#;None
(&common;variant-out-of-bounds-error type expected-size tag))
@@ -196,11 +196,11 @@
(n.= boundary tag)
(let [caseT (type;variant (list;drop boundary cases))]
- (meta/wrap (if (n.= +0 depth)
- (type;function (list caseT) currentT)
- (let [replace! (replace-bound (|> depth n.dec (n.* +2)) type)]
- (type;function (list (replace! caseT))
- (replace! currentT))))))
+ (macro/wrap (if (n.= +0 depth)
+ (type;function (list caseT) currentT)
+ (let [replace! (replace-bound (|> depth n.dec (n.* +2)) type)]
+ (type;function (list (replace! caseT))
+ (replace! currentT))))))
## else
(&common;variant-out-of-bounds-error type expected-size tag)))