shithub: MicroHs

Download patch

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
--