@@ -93,8 +93,10 @@ buildDepMap ctx ns = addPostulates $ dfs S.empty M.empty ns
93 , (name "prim__strCons", Arg 1)
93 , (name "prim__strCons", Arg 1)
94 , (name "prim__strHead", Arg 0)
94 , (name "prim__strHead", Arg 0)
95 , (name "prim__strTail", Arg 0)
95 , (name "prim__strTail", Arg 0)
96+ , (name "prim__lenString", Arg 0)
96 , (name "prim__concat", Arg 0)
97 , (name "prim__concat", Arg 0)
97 , (name "prim__concat", Arg 1)
98 , (name "prim__concat", Arg 1)
99+ , (name "prim__zextInt_BigInt", Arg 0)
98 , (name "mkForeignPrim", Arg 2)
100 , (name "mkForeignPrim", Arg 2)
99 , (name "mkForeign", Arg 1)
101 , (name "mkForeign", Arg 1)
@@ -143,7 +145,7 @@ buildDepMap ctx ns = addPostulates $ dfs S.empty M.empty ns
144 -- the variables that arose as function arguments only depend on (n, i)
146 -- the variables that arose as function arguments only depend on (n, i)
145 varMap = M.fromList [(v, S.singleton (fn, Arg i)) | (v,i) <- zip vars [0..]]
147 varMap = M.fromList [(v, S.singleton (fn, Arg i)) | (v,i) <- zip vars [0..]]
146− (vars, sc) = cases_runtime cdefs -- TODO: or cases_runtime?
148+ (vars, sc) = cases_compiletime cdefs -- TODO: or cases_runtime?
148 etaExpand :: [Name] -> Term -> Term
150 etaExpand :: [Name] -> Term -> Term
149 etaExpand [] t = t
151 etaExpand [] t = t
@@ -217,8 +219,7 @@ buildDepMap ctx ns = addPostulates $ dfs S.empty M.empty ns
218 -- TODO: figure out what to do with methods
220 -- TODO: figure out what to do with methods
219 -- the following code marks them as completely used
221 -- the following code marks them as completely used
220− Proj (P Ref inst _) i -> unconditionalDeps args -- named instances
222+ Proj t i -> getDepsTerm vs bs cd t `M.union` unconditionalDeps args
221− Proj _ i -> unconditionalDeps args -- dictionary reference in a variable
223 _ -> error $ "cannot analyse application of " ++ show fun ++ " to " ++ show args
224 _ -> error $ "cannot analyse application of " ++ show fun ++ " to " ++ show args