ref: d9fead3fe7dc862b9bbc160d65ddaad8a89c13b2
parent: 0415e7b918b24da95adf12d789bedd0713250e91
author: Lennart Augustsson <lennart@augustsson.net>
date: Thu Dec 28 10:19:37 EST 2023
Add missing synonym expansion. Issue #13
--- a/src/MicroHs/TypeCheck.hs
+++ b/src/MicroHs/TypeCheck.hs
@@ -1234,17 +1234,19 @@
assertTCMode (==TCExpr) $
case adef of
Fcn i eqns -> do
- (_, tt) <- tLookup "type signature" i
--- traceM $ "tcDefValue: " ++ showIdent i ++ " :: " ++ showExpr tt
+ (_, t) <- tLookup "type signature" i
+ t' <- expandSyn t
+-- traceM $ "tcDefValue: " ++ showIdent i ++ " :: " ++ showExpr t'
-- traceM $ "tcDefValue: " ++ showEDefs [adef]
- mn <- gets moduleName
- teqns <- tcEqns True tt eqns
+ teqns <- tcEqns True t' eqns
-- traceM ("tcDefValue: after " ++ showEDefs [adef, Fcn i teqns])checkConstraints
+ mn <- gets moduleName
return $ Fcn (qualIdent mn i) teqns
ForImp ie i t -> do
mn <- gets moduleName
- return (ForImp ie (qualIdent mn i) t)
+ t' <- expandSyn t
+ return (ForImp ie (qualIdent mn i) t')
_ -> return adef
tCheckTypeT :: HasCallStack => EType -> EType -> T EType
--
⑨