@@ -98,22 +98,22 @@ addApps defs (n, LFun _ _ args e)
98 aa env (LCon i n args) = liftM (DC i n) (mapM (aa env) args)
98 aa env (LCon i n args) = liftM (DC i n) (mapM (aa env) args)
99 aa env (LProj t@(LV (Glob n)) i)
99 aa env (LProj t@(LV (Glob n)) i)
100 | n `elem` env = do t' <- aa env t
100 | n `elem` env = do t' <- aa env t
101− return $ DProj (DUpdate n (eEVAL t')) i
101+ return $ DProj (DUpdate n t') i
102 aa env (LProj t i) = do t' <- aa env t
102 aa env (LProj t i) = do t' <- aa env t
103− return $ DProj (eEVAL t') i
103+ return $ DProj t' i
104 aa env (LCase e alts) = do e' <- aa env e
104 aa env (LCase e alts) = do e' <- aa env e
105 alts' <- mapM (aaAlt env) alts
105 alts' <- mapM (aaAlt env) alts
106− return $ DCase (eEVAL e') alts'
106+ return $ DCase e' alts'
107 aa env (LConst c) = return $ DConst c
107 aa env (LConst c) = return $ DConst c
108 aa env (LForeign l t n args) = liftM (DForeign l t n) (mapM (aaF env) args)
108 aa env (LForeign l t n args) = liftM (DForeign l t n) (mapM (aaF env) args)
109 aa env (LOp LFork args) = liftM (DOp LFork) (mapM (aa env) args)
109 aa env (LOp LFork args) = liftM (DOp LFork) (mapM (aa env) args)
110 aa env (LOp f args) = do args' <- mapM (aa env) args
110 aa env (LOp f args) = do args' <- mapM (aa env) args
111− return $ DOp f (map eEVAL args')
111+ return $ DOp f args'
112 aa env LNothing = return DNothing
112 aa env LNothing = return DNothing
113 aa env (LError e) = return $ DError e
113 aa env (LError e) = return $ DError e
115 aaF env (t, e) = do e' <- aa env e
115 aaF env (t, e) = do e' <- aa env e
116− return (t, eEVAL e')
116+ return (t, e')
118 aaAlt env (LConCase i n args e)
118 aaAlt env (LConCase i n args e)
119 = liftM (DConCase i n args) (aa (args ++ env) e)
119 = liftM (DConCase i n args) (aa (args ++ env) e)
@@ -150,7 +150,7 @@ addApps defs (n, LFun _ _ args e)
151 preEval [] t = t
151 preEval [] t = t
152 preEval (x : xs) t
152 preEval (x : xs) t
153− | needsEval x t = DLet x (eEVAL (DV (Glob x))) (preEval xs t)
153+ | needsEval x t = DLet x (DV (Glob x)) (preEval xs t)
154 | otherwise = preEval xs t
154 | otherwise = preEval xs t
156 needsEval x (DApp _ _ args) = or (map (needsEval x) args)
156 needsEval x (DApp _ _ args) = or (map (needsEval x) args)
@@ -187,7 +187,7 @@ toCons ns (n, i)
187 EvalCase (\tlarg ->
187 EvalCase (\tlarg ->
188 (DConCase (-1) (mkFnCon n) (take i (genArgs 0))
188 (DConCase (-1) (mkFnCon n) (take i (genArgs 0))
189 (dupdate tlarg
189 (dupdate tlarg
190− (eEVAL (DApp False n (map (DV . Glob) (take i (genArgs 0)))))))))
190+ (DApp False n (map (DV . Glob) (take i (genArgs 0))))))))
191 : mkApplyCase n 0 i
191 : mkApplyCase n 0 i
192 | otherwise = []
192 | otherwise = []
193 where dupdate tlarg x = x
193 where dupdate tlarg x = x