@@ -8,10 +8,10 @@ x `freeIn` expr = member x $ freeVars expr
8freeVars expr =
8freeVars expr =
9 let f = freeVars in
9 let f = freeVars in
10 case expr of
10 case expr of
11− Range e1 e2 -> union (f e1) (f e2)
11+ Range e1 e2 -> f e1 `union` f e2
12− Binop op e1 e2 -> union (f e1) (f e2)
12+ Binop op e1 e2 -> f e1 `union` f e2
13 Lambda x e -> delete x (f e)
13 Lambda x e -> delete x (f e)
14− App e1 e2 -> union (f e1) (f e2)
14+ App e1 e2 -> f e1 `union` f e2
15 If e1 e2 e3 -> unions $ map f [e1,e2,e3]
15 If e1 e2 e3 -> unions $ map f [e1,e2,e3]
16 Lift e es -> unions $ map f es
16 Lift e es -> unions $ map f es
17 Fold e1 e2 e3 -> unions $ map f [e1,e2,e3]
17 Fold e1 e2 e3 -> unions $ map f [e1,e2,e3]
@@ -20,11 +20,11 @@ freeVars expr =
20 where (vs,es) = unzip defs
20 where (vs,es) = unzip defs
21 Var x -> singleton x
21 Var x -> singleton x
22 Data name es -> unions (map f es)
22 Data name es -> unions (map f es)
23− Case e cases -> union (f e) (unions $ map caseFreeVars cases)
23+ Case e cases -> f e `union` unions (map caseFreeVars cases)
24 _ -> empty
24 _ -> empty
26caseFreeVars (p,e) = difference (freeVars e) (pvars p)
26caseFreeVars (p,e) = difference (freeVars e) (pvars p)
27 where pvars p = case p of
27 where pvars p = case p of
28 PAnything -> empty
28 PAnything -> empty
29 PVar x -> singleton x
29 PVar x -> singleton x
30− PData _ ps -> unions (map pvars ps)
30+ PData _ ps -> unions (map pvars ps)