diff options
author | Eduardo Julian | 2017-11-20 21:46:49 -0400 |
---|---|---|
committer | Eduardo Julian | 2017-11-20 21:46:49 -0400 |
commit | 3eabc421e559e7e2f903e06eb6b47a2ee0cd25b9 (patch) | |
tree | e66ef551837cb895786bb532fe19e621132e81db /stdlib/source/lux/lang | |
parent | 4abfd5413b5a7aa540d7c06b387e3426ff5c532c (diff) |
- Added parallel compilation.
- Added aliasing.
- Several bug fixes.
- Some minor refactoring.
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/lang/syntax.lux | 2 | ||||
-rw-r--r-- | stdlib/source/lux/lang/type/check.lux | 10 |
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)] |