1module FreeVar (freeIn) where
4import Data.Set hiding (map)
6x `freeIn` expr = member x $ freeVars expr
11 Range e1 e2 -> union (f e1) (f e2)
12 Binop op e1 e2 -> union (f e1) (f e2)
13 Lambda x e -> delete x (f e)
14 App e1 e2 -> union (f e1) (f e2)
15 If e1 e2 e3 -> unions $ map f [e1,e2,e3]
16 Lift e es -> unions $ map f es
17 Fold e1 e2 e3 -> unions $ map f [e1,e2,e3]
19 Let defs e -> foldr delete (unions (f e : map f es)) vs
20 where (vs,es) = unzip defs
22 Data name es -> unions (map f es)
23 Case e cases -> union (f e) (unions $ map caseFreeVars cases)
26caseFreeVars (p,e) = difference (freeVars e) (pvars p)
27 where pvars p = case p of
30 PData _ ps -> unions (map pvars ps)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list