10
type Cont = [(Ident,Val,Val)]
13
envCon = map (\ (s,u,_) -> (s,u))
15
getVT s ((s1,u,v):rest) = if s == s1 then (u,v) else getVT s rest
16
getVT s [] = error ("getVT " ++ show s) -- this should never occur after scope analysis
18
upCon :: Ident -> Val -> Val -> Cont -> Cont
19
upCon s u a con = (s,u,a):con
21
genCon :: Cont -> Ident -> Val -> G Val
22
genCon con (Ident s) = gensym (length con) s
24
evalCon :: Cont -> Exp -> Val
25
evalCon con = eval (envCon con)
27
evalBodyCon :: Cont -> Val -> Exp -> Val
28
evalBodyCon con = evalBody (envCon con)