SSTG-0.1.1.6: STG Symbolic Execution

Safe HaskellSafe
LanguageHaskell2010

SSTG.Core.Language.Naming

Description

Naming Module

Synopsis

Documentation

allNames :: Program -> [Name] Source #

All Names in a State.

varName :: Var -> Name Source #

A Var's Name. Not to be confused with the other function.

nameOccStr :: Name -> String Source #

A Name's occurrence string.

nameInt :: Name -> Int Source #

A Name's unique int.

freshStr :: Int -> String -> Set String -> String Source #

Create a fresh seed given any Int, a String seed, and a Set of Strings that we do not want our new String to conflict with. The sole purpose of the Int seed is to allow us tell us how much to multiply some prime number to "orbit" an index around a fixed list of acceptable Chars.

freshName :: NameSpace -> [Name] -> Name Source #

Fresh Name given a list of Names that acts as conflicts. The fresh Names generated in this manner are prefixed with "fs?", which is not a valid identifier in Haskell, but okay in SSTG. we also specify the NameSpace under which the Name will be generated. This will generally be VarNSpace in actual usage.

freshSeededName :: Name -> [Name] -> Name Source #

A fresh Name generated from a seed Name, which will act as the prefix of the new Name. We ues the same NameSpace as the seed Name when generating this way.

freshNames :: [NameSpace] -> [Name] -> [Name] Source #

Generate a list of Names, each corresponding to the appropriate element of the NameSpace list.

freshSeededNames :: [Name] -> [Name] -> [Name] Source #

List of seeded fresh Names.