diff options
Diffstat (limited to 'stdlib/source/lux/lang/type/check.lux')
-rw-r--r-- | stdlib/source/lux/lang/type/check.lux | 10 |
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)] |