Smtml.SymbolSourceSymbol Module. This module defines names, namespaces, and typed symbols, providing utilities for creating, comparing, and manipulating symbols.
The type name represents a symbol name, which can either be a simple string or an indexed name with a base name and a list of indices.
The type namespace classifies symbols into different kinds of identifiers.
type t = {ty : Ty.t;The type of the symbol.
*)name : name;The name of the symbol.
*)namespace : namespace;The namespace to which the symbol belongs.
*)}The type t represents a symbol, consisting of a type, a name, and a namespace.
s @: ty creates a symbol with name s and type ty, belonging to the term (function, constant) namespace.
make ty s creates a symbol with type ty and name s in the term (function, constant) namespace.
make3 ty name ns creates a symbol with type ty, name name, and namespace ns.
mk ns s creates a symbol with name s in the specified namespace ns with a default type.
indexed ns basename indices creates a symbol with an indexed name, where basename is the base name and indices are the associated indices.
compare sym1 sym2 performs a total order comparison of sym1 and sym2.
pp_namespace fmt ns pretty-prints the namespace ns using the formatter fmt.
to_json sym converts the symbol sym to a JSON representation.