data StableName :: Type -> Type
An abstract name for an object, that supports equality and hashing.
Stable names have the following property:
- If @sn1 :: StableName@ and @sn2 :: StableName@ and @sn1 == sn2@ then @sn1@ and @sn2@ were created by calls to @makeStableName@ on the same object.
The reverse is not necessarily true: if two stable names are not
equal, then the objects they name may still be equal. Note in particular
makeStableName may return a different
StableName after an
object is evaluated.