Safe Haskell | None |
---|
Renames all variables to unique Names, in the process converting all UnRenamedName into Name. This simplifies many subsequent phases as every name is guaranteed to be unique so flat maps may be used, rather than Hierarchical maps. Further, this also flags patterns that match channels and datatype clauses.
- data RenamerState
- type RenamerMonad = StateT RenamerState IO
- runFromStateToState :: RenamerState -> RenamerMonad a -> IO (a, RenamerState)
- initRenamer :: IO RenamerState
- rename :: Renamable e1 e2 => e1 -> RenamerMonad e2
- newScope :: RenamerMonad ()
- getBoundNames :: RenamerMonad [Name]
Documentation
data RenamerState Source
type RenamerMonad = StateT RenamerState IOSource
runFromStateToState :: RenamerState -> RenamerMonad a -> IO (a, RenamerState)Source
Runs the renamer starting at the given state and returning the given state.
initRenamer :: IO RenamerStateSource
Initialises the renamer.
rename :: Renamable e1 e2 => e1 -> RenamerMonad e2Source
newScope :: RenamerMonad ()Source