aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/lang/type/check.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/lang/type/check.lux')
-rw-r--r--stdlib/source/lux/lang/type/check.lux10
1 files changed, 10 insertions, 0 deletions
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)]