diff options
Diffstat (limited to 'src/Parser')
| -rw-r--r-- | src/Parser/Core.hs | 3 | ||||
| -rw-r--r-- | src/Parser/Expr.hs | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/Parser/Core.hs b/src/Parser/Core.hs index 4c49ead..e1a4035 100644 --- a/src/Parser/Core.hs +++ b/src/Parser/Core.hs @@ -219,7 +219,8 @@ unifyExpr off pa expr = if _ <- unify off (ExprTypePrim (Proxy :: Proxy a)) stype return $ Variable sline name - | HideType expr' <- expr + | HideType (ExprTypePrim (_ :: Proxy b'')) (expr' :: Expr b') <- expr + , Just (Refl :: b'' :~: b') <- eqT -> do unifyExpr off pa expr' diff --git a/src/Parser/Expr.hs b/src/Parser/Expr.hs index 8d1fe03..3716c80 100644 --- a/src/Parser/Expr.hs +++ b/src/Parser/Expr.hs @@ -194,7 +194,7 @@ list = label "list" $ do return $ SomeExpr $ TypeLambda tvar (ExprTypeApp (ExprTypeConstr1 (Proxy :: Proxy [])) [ ExprTypeVar tvar ]) $ \case - (ExprTypePrim (Proxy :: Proxy a)) -> HideType $ Pure ([] :: [ a ]) + (ExprTypePrim (Proxy :: Proxy a)) -> HideType (ExprTypePrim (Proxy @[ a ])) $ Pure ([] :: [ a ]) _ -> Undefined "incomplete type" ,do SomeExpr x <- someExpr |