diff --git a/src/Main.newt b/src/Main.newt index e4db61d..a7c9c5f 100644 --- a/src/Main.newt +++ b/src/Main.newt @@ -154,7 +154,13 @@ processModule importFC base stk qn@(QN ns nm) = do top <- getTop let freshMC = MC emptyMap Nil 0 CheckAll -- set imported, mod, freshMC, ops before processing - modifyTop (\ top => MkTop top.modules imported emptyMap modns emptyMap freshMC top.verbose top.errors ops) + modifyTop [ imported := imported + ; hints := emptyMap + ; ns := modns + ; defs := emptyMap + ; metaCtx := freshMC + ; ops := ops + ] for imported $ \ ns => do let (Just mod) = lookupMap' ns top.modules | _ => error emptyFC "namespace \{show ns} missing" importHints (listValues mod.modDefs) @@ -234,7 +240,12 @@ processFile fn = do top <- getTop let modules = updateMap primNS (MkModCtx "" top.defs (MC emptyMap Nil 0 CheckAll) top.ops Nil) top.modules - modifyTop (\ top => MkTop modules (primNS :: Nil) emptyMap Nil emptyMap top.metaCtx top.verbose top.errors top.ops) + modifyTop [ modules := modules + ; imported := primNS :: Nil + ; hints := emptyMap + ; ns := Nil + ; defs := emptyMap + ] invalidateModule qn