|
| 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 |