Maintainer | Ralf Laemmel, Joost Visser |
---|---|
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
This module is part of StrategyLib
, a library of functional strategy
combinators, including combinators for generic traversal. This module
provides algorithms to collect names and their types.
- freeNames :: (Eq name, Term t) => TU [(name, tpe)] Identity -> TU [name] Identity -> t -> [name]
- freeTypedNames :: (Eq name, Term t) => TU [(name, tpe)] Identity -> TU [name] Identity -> [(name, tpe)] -> t -> [(name, tpe)]
- boundTypedNames :: (Term f, Term t, Eq name) => TU [(name, tpe)] Identity -> (f -> Maybe f) -> t -> Maybe ([(name, tpe)], f)
Free name analysis
:: (Eq name, Term t) | |
=> TU [(name, tpe)] Identity | Identify declarations |
-> TU [name] Identity | Identify references |
-> t | Input term |
-> [name] | Free names |
Generic free name analysis algorithm (without types)
:: (Eq name, Term t) | |
=> TU [(name, tpe)] Identity | Identify declarations |
-> TU [name] Identity | Identify references |
-> [(name, tpe)] | Derived declarations |
-> t | Input term |
-> [(name, tpe)] | Free names with types |
Generic free name analysis algorithm with types