ajhc-0.8.0.7: Haskell compiler that produce binary through C language

Safe HaskellNone

Support.FreeVars

Documentation

class Monoid b => FreeVars a b whereSource

Methods

freeVars :: a -> bSource

Instances

Monoid x => FreeVars () x 
FreeVars FuncProps a => FreeVars FuncDef a 
FreeVars E t => FreeVars TVr t 
FreeVars TVr IdSet

determine free variables of a binding site

FreeVars E IdSet 
FreeVars ARules IdSet 
FreeVars Rule IdSet

we delete the free variables of the heads of a rule from the rule's free variables. the reason for doing this is that the rule cannot fire if all its heads are in scope, and if it were not done then many functions seem recursive when they arn't actually.

FreeVars Comb IdSet 
FreeVars Type b => FreeVars Pred b 
FreeVars FuncProps (Set Var) 
FreeVars FuncProps (Set Tag) 
FreeVars FuncProps (GSet Var) 
FreeVars FuncProps (GSet Tag) 
FreeVars Val [Var] 
FreeVars Val [Tag] 
FreeVars Val (Set (Var, Ty)) 
FreeVars Val (Set Var) 
FreeVars Val (Set Tag) 
FreeVars Val (GSet Var) 
FreeVars Val (GSet Tag) 
FreeVars Exp [Var] 
FreeVars Exp [Tag] 
FreeVars Exp (Set (Var, Ty)) 
FreeVars Exp (Set Var) 
FreeVars Exp (Set Tag) 
FreeVars Exp (GSet Var) 
FreeVars Exp (GSet Tag) 
FreeVars Lam [Var] 
FreeVars Lam (Set (Var, Ty)) 
FreeVars Lam (Set Var) 
FreeVars Lam (Set Tag) 
FreeVars Lam (GSet Var) 
FreeVars Lam (GSet Tag) 
FreeVars HsType (Set Name) 
FreeVars E [Id] 
FreeVars E [TVr] 
FreeVars E (IdMap (Maybe E)) 
FreeVars E (IdMap TVr) 
FreeVars Rule [Id] 
FreeVars Comb [Id] 
FreeVars Kind (Set Kindvar) 
FreeVars Type [Tyvar] 
FreeVars Type [MetaVar] 
FreeVars Type (Set MetaVar) 
FreeVars Exp (Set Var, Set Tag) 
FreeVars Exp (GSet Var, GSet Tag) 
FreeVars a b => FreeVars [a] b 
FreeVars a b => FreeVars (Maybe a) b 
FreeVars (Alt E) IdSet 
(FreeVars t b, FreeVars Pred b) => FreeVars (Qual t) b 
FreeVars (Alt E) (IdMap TVr) 
(FreeVars x b, FreeVars y b) => FreeVars (Either x y) b 
(FreeVars x b, FreeVars y b) => FreeVars (x, y) b 
FreeVars E x => FreeVars (Lit TVr E) x 
(FreeVars x b, FreeVars y b, FreeVars z b) => FreeVars (x, y, z) b