@@ -79,14 +79,16 @@ initEnv info
7979 (invs2, f42) <- mapSndM refreshArgs' $ makeAutoDecrDataCons dcsty' (gsAutosize (gsTerm sp)) dcs'
8080 let f4 = mergeDataConTypes tce (mergeDataConTypes tce f40 (f41 ++ f42)) (filter (isDataConId . fst ) f2)
8181 let tx = mapFst F. symbol . addRInv ialias . predsUnify sp
82- let bs = (tx <$> ) <$> [f0 ++ f0' ++ fi, f1 ++ f1', f2, (F. notracepp " assumed" f3) ++ f3', f4, f5]
82+ f6 <- (map tx . addPolyInfo') <$> (refreshArgs' $ vals gsRefSigs (gsSig sp))
83+ let bs = (tx <$> ) <$> [f0 ++ f0' ++ fi, f1 ++ f1', f2, f3 ++ f3', f4, f5]
8384 modify $ \ s -> s { dataConTys = f4 }
8485 lt1s <- F. toListSEnv . cgLits <$> get
8586 let lt2s = [ (F. symbol x, rTypeSort tce t) | (x, t) <- f1' ]
8687 let tcb = mapSnd (rTypeSort tce) <$> concat bs
8788 let cbs = giCbs . giSrc $ info
88- let γ0 = measEnv sp (head bs) cbs tcb lt1s lt2s (bs!! 3 ) (bs!! 5 ) hs info
89- γ <- globalize <$> foldM (+=) γ0 ( [(" initEnv" , x, y) | (x, y) <- concat $ tail bs])
89+ rTrue <- mapM (mapSndM true) f6
90+ let γ0 = measEnv sp (head bs) cbs tcb lt1s lt2s (f6 ++ bs!! 3 ) (bs!! 5 ) hs info
91+ γ <- globalize <$> foldM (+=) γ0 ( [(" initEnv" , x, y) | (x, y) <- concat $ (rTrue: tail bs)])
9092 return γ {invs = is (invs1 ++ invs2)}
9193 where
9294 sp = giSpec info
@@ -239,7 +241,7 @@ recSelectorsTy info = forM topVs $ \v -> (v,) <$> trueTy (varType v)
239241 where
240242 topVs = filter isTop $ giDefVars (giSrc info)
241243 isTop v = isExportedVar (giSrc info) v && not (v `S.member` sigVs) && isRecordSelector v
242- sigVs = S. fromList [v | (v,_) <- gsTySigs sp ++ gsAsmSigs sp ++ gsInSigs sp]
244+ sigVs = S. fromList [v | (v,_) <- gsTySigs sp ++ gsAsmSigs sp ++ gsRefSigs sp ++ gsInSigs sp]
243245 sp = gsSig . giSpec $ info
244246
245247
@@ -249,7 +251,7 @@ grtyTop info = forM topVs $ \v -> (v,) <$> trueTy (varType v)
249251 where
250252 topVs = filter isTop $ giDefVars (giSrc info)
251253 isTop v = isExportedVar (giSrc info) v && not (v `S.member` sigVs) && not (isRecordSelector v)
252- sigVs = S. fromList [v | (v,_) <- gsTySigs sp ++ gsAsmSigs sp ++ gsInSigs sp]
254+ sigVs = S. fromList [v | (v,_) <- gsTySigs sp ++ gsAsmSigs sp ++ gsRefSigs sp ++ gsInSigs sp]
253255 sp = gsSig . giSpec $ info
254256
255257
0 commit comments