StrategyLib-4.0.0.0ContentsIndex
Data.Generics.Strafunski.StrategyLib.NameTheme
Portabilityportable
Stabilityexperimental
MaintainerRalf Laemmel, Joost Visser
Contents
Free name analysis
Bound name analysis
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)] IdentityIdentify declarations
-> TU [name] IdentityIdentify references
-> tInput term
-> [name]Free names
Generic free name analysis algorithm (without types)
freeTypedNames
:: (Eq name, Term t)
=> TU [(name, tpe)] IdentityIdentify declarations
-> TU [name] IdentityIdentify references
-> [(name, tpe)]Derived declarations
-> tInput 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