aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/lang
diff options
context:
space:
mode:
authorEduardo Julian2017-11-20 21:46:49 -0400
committerEduardo Julian2017-11-20 21:46:49 -0400
commit3eabc421e559e7e2f903e06eb6b47a2ee0cd25b9 (patch)
treee66ef551837cb895786bb532fe19e621132e81db /stdlib/source/lux/lang
parent4abfd5413b5a7aa540d7c06b387e3426ff5c532c (diff)
- Added parallel compilation.
- Added aliasing. - Several bug fixes. - Some minor refactoring.
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/lang/syntax.lux2
-rw-r--r--stdlib/source/lux/lang/type/check.lux10
2 files changed, 11 insertions, 1 deletions
diff --git a/stdlib/source/lux/lang/syntax.lux b/stdlib/source/lux/lang/syntax.lux
index 9fe4939a2..7bc8e8cca 100644
--- a/stdlib/source/lux/lang/syntax.lux
+++ b/stdlib/source/lux/lang/syntax.lux
@@ -613,7 +613,7 @@
(p;fail (Unrecognized-Input current-module))))
)))))
-(def: #export (parse current-module [where offset source])
+(def: #export (read current-module [where offset source])
(-> Text Source (e;Error [Source Code]))
(case (p;run [offset source] (ast current-module where))
(#e;Error error)
diff --git a/stdlib/source/lux/lang/type/check.lux b/stdlib/source/lux/lang/type/check.lux
index cbf31ac08..086866ddf 100644
--- a/stdlib/source/lux/lang/type/check.lux
+++ b/stdlib/source/lux/lang/type/check.lux
@@ -458,6 +458,16 @@
[Type Type] [Type Type]
(Check (List Assumption)))
(case [eFT aFT]
+ (^or [(#;UnivQ _ _) (#;Ex _)] [(#;UnivQ _ _) (#;Var _)])
+ (do Monad<Check>
+ [eFT' (apply-type! eFT eAT)]
+ (check' eFT' (#;Apply aAT aFT) assumptions))
+
+ (^or [(#;Ex _) (#;UnivQ _ _)] [(#;Var _) (#;UnivQ _ _)])
+ (do Monad<Check>
+ [aFT' (apply-type! aFT aAT)]
+ (check' (#;Apply eAT eFT) aFT' assumptions))
+
(^or [(#;Ex _) _] [_ (#;Ex _)])
(do Monad<Check>
[assumptions (check' eFT aFT assumptions)]