Make.IThe type of namespaces. Namespaces are used to distinguish identifiers with the same name, but that occur in different contexts. For instance, in smtlib, sorts and terms live in different namespaces; so a term constant can have the same name as a sort, and still be syntactically different.
val sort : namespaceThe namespace for sorts (also called types). Currently only used for smtlib.
val var : namespaceNamespace for variables (when they can be syntatically distinguished from constants).
val term : namespaceThe usual namespace for terms.
val attr : namespaceNamespace used for attributes (also called annotations) in smtlib.
val decl : namespaceNamespace used for declaration identifiers (for instance used to filter declarations during includes)
val track : namespaceNamespace used to tag and identify sub-terms occuring in files.
Make an indexed identifier from a namespace, basename and list of indexes.
Make a qualified identifier from a namespace, a list of modules (a path), and a base name.