|
Data.Generics.Strafunski.StrategyLib.NameTheme | Portability | portable | Stability | experimental | Maintainer | Ralf Laemmel, Joost Visser |
|
|
|
|
|
Description |
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.
|
|
Synopsis |
|
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
|
|
freeNames |
:: (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)
|
|
|
freeTypedNames |
:: (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
|
|
|
Bound name analysis
|
|
boundTypedNames :: (Term f, Term t, Eq name) => TU [(name, tpe)] Identity -> (f -> Maybe f) -> t -> Maybe ([(name, tpe)], f) |
Accumulate declarations for focus
|
|
Produced by Haddock version 0.8 |