summaryrefslogtreecommitdiff
path: root/devel/compiler/Eval.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-03-27 16:40:54 +0000
committeraarne <aarne@cs.chalmers.se>2007-03-27 16:40:54 +0000
commit7c30d211c3eda504668c0eab51e99d6e52db2127 (patch)
tree90cd0aa1f5d079a58d080da0174b90a5bdb09b96 /devel/compiler/Eval.hs
parent1c1acf1b971d13a496a92b9d8d6b14fde85e28f3 (diff)
distinct form for opers that have no value
Diffstat (limited to 'devel/compiler/Eval.hs')
-rw-r--r--devel/compiler/Eval.hs10
1 files changed, 4 insertions, 6 deletions
diff --git a/devel/compiler/Eval.hs b/devel/compiler/Eval.hs
index 8c5966bb8..cc1b22467 100644
--- a/devel/compiler/Eval.hs
+++ b/devel/compiler/Eval.hs
@@ -18,17 +18,15 @@ eval e = case e of
let (f,xs) = apps e
xs' <- mapM eval xs
case f of
- ECon c -> checks [
- do
+ ECon c -> do
v <- lookEnv values c
return $ appVal v xs'
- ,
- do
+ EOpr c -> do
e <- lookEnv opers c
- v <- eval e
+ v <- eval e ---- not possible in general
return $ appVal v xs'
- ]
ECon c -> lookEnv values c
+ EOpr c -> lookEnv opers c >>= eval ---- not possible in general
EVar x -> lookEnv vars x
ECst _ _ -> lookEnv parvals e
EStr s -> return $ VTok s