Free names
The type checker needs to compute strongly connected components of
declarations, in accordance with the Haskell report. This means that we need
to know which names are used in a declaration, in addition to which names
are defined:
class FreeNames i t | t -> i where
freeNames :: t -> [(HsIdent i,NameSpace)]
See modules
DefinedNames,
DefinedNamesBaseStruct,
DefinedNamesBase.