clafer-0.4.3: Compiles Clafer models to other formats: Alloy, JavaScript, JSON, HTML, Dot.

Safe HaskellNone
LanguageHaskell2010

Language.Clafer.QNameUID

Description

Support for dealing with unique IDs (UIDs), fully- and least-partially qualified names.

Synopsis

Documentation

type QName = String Source

a fully- or partially-qualified name

type FQName = String Source

fully-qualified name, must begin with :: | e.g., `::Person::name`, `::Company::Department::chair`

type PQName = String Source

partially-qualified name, must not begin with :: | e.g., `Person::name`, chair

data QNameMaps Source

maps between fully-, least-partially-qualified names and UIDs

type UID = String Source

unique identifier of a clafer

deriveQNameMaps :: IModule -> QNameMaps Source

derive maps between fully-, partially-qualified names, and UIDs

getUIDs :: QNameMaps -> QName -> [UID] Source

get the UID of a clafer given a fully qualifed name or potentially many UIDs given a partially qualified name

getFQName :: QNameMaps -> UID -> Maybe FQName Source

get the fully-qualified name of a clafer given its UID

getLPQName :: QNameMaps -> UID -> Maybe PQName Source

get the least-partially-qualified name of a clafer given its UID