@@ -79,14 +79,16 @@ initEnv info
79
79
(invs2, f42) <- mapSndM refreshArgs' $ makeAutoDecrDataCons dcsty' (gsAutosize (gsTerm sp)) dcs'
80
80
let f4 = mergeDataConTypes tce (mergeDataConTypes tce f40 (f41 ++ f42)) (filter (isDataConId . fst ) f2)
81
81
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]
83
84
modify $ \ s -> s { dataConTys = f4 }
84
85
lt1s <- F. toListSEnv . cgLits <$> get
85
86
let lt2s = [ (F. symbol x, rTypeSort tce t) | (x, t) <- f1' ]
86
87
let tcb = mapSnd (rTypeSort tce) <$> concat bs
87
88
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)])
90
92
return γ {invs = is (invs1 ++ invs2)}
91
93
where
92
94
sp = giSpec info
@@ -239,7 +241,7 @@ recSelectorsTy info = forM topVs $ \v -> (v,) <$> trueTy (varType v)
239
241
where
240
242
topVs = filter isTop $ giDefVars (giSrc info)
241
243
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]
243
245
sp = gsSig . giSpec $ info
244
246
245
247
@@ -249,7 +251,7 @@ grtyTop info = forM topVs $ \v -> (v,) <$> trueTy (varType v)
249
251
where
250
252
topVs = filter isTop $ giDefVars (giSrc info)
251
253
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]
253
255
sp = gsSig . giSpec $ info
254
256
255
257
0 commit comments