libcspm-1.0.0: A library providing a parser, type checker and evaluator for CSPM.

Safe HaskellNone

CSPM.Renamer

Description

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.

Synopsis

Documentation

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