An id for a Flux-specific item that doesn’t have a corresponding Rust item and thus, we cannot
be identified with a DefId. This includes, for example, associated refinements, qualifiers
and refinement functions.
This enum serves as a type-level reminder that a local definition may be a wrapper for an
extern spec. This abstraction is not infallible, so one should be careful and decide in each
situation whether to use the local id or the resolved id.
Normally, a DefId is either local or external, and DefId::as_local can be used to
distinguish between the two. However, extern specs introduce a third case: a local definition
wrapping an extern spec. This enum is a type level reminder used to differentiate between these
three cases.