A term, type, data constructor, or ability constructor may be unambiguously referenced by hash. Literal hash references have the following structure:
- Aterm definitionhas a hash of the form
xis the base32Hex encoding of the hash of the term. For example
- A term or type definition that’s part of acycle of mutually recursive definitionshashes to the form
xis the hash of the cycle and
nis the term or type’s index in its cycle. A cycle has a canonical order determined by sorting all the members of the cycle by their individual hashes (with the cycle removed).
- A data constructor hashes to the form
xis the hash of the data type definition and
cis the index of that data constructor in the type definition.
- A data constructor in a cyclic type definition hashes to the form
#x.nis the hash of the data type and
cis the data constructor’s index in the type definition.
- Abuilt-in referenceto a Unison built-in term or type
nhas a hash of the form
##Natis an example of a built-in reference.