@@ -105,7 +105,8 @@ eval ctxt genv tm = ev [] tm where
105105 evTree :: [Value] -> [(Name, Value)] -> SC -> Maybe Value
106106 evTree env amap (UnmatchedCase str) = Nothing
107107 evTree env amap (STerm tm)
108− = Just $ ev (map snd amap ++ env) (pToVs (map fst amap) tm)
108+ = let etm = pToVs (map fst amap) tm in
109+ Just $ ev (map snd amap ++ env) etm
109110 evTree env amap (Case n alts)
110111 = do v <- lookup n amap
111112 (altmap, sc) <- chooseAlt v (getValArgs v) alts amap
@@ -125,7 +126,7 @@ eval ctxt genv tm = ev [] tm where
125126 -- (This is possibly unnecessary since we make unique names and don't
126127 -- allow repeated variables...?)
127128 updateAmap newm amap
128− = newm ++ amap --filter (\ (x, _) -> not (elem x (map fst newm))) amap
129+ = newm ++ filter (\ (x, _) -> not (elem x (map fst newm))) amap
129130 findTag i [] = Nothing
130131 findTag i (ConCase n j ns sc : xs) | i == j = Just (ns, sc)
131132 findTag i (_ : xs) = findTag i xs