f64 wrapper for total ordering and bit-pattern equality — bare f64 lacks Eq/Ord,
which would break the derived impls on Type. Construction must canonicalize -0.0 → 0.0;
NaN can’t appear from source literals so bit-pattern equality is safe.
optional: true means reads widen to ty | undefined and construction may omit the field.
Distinct from a value-nullable field (ty: T | null, optional: false): must be present
but can be null.
Owning package of a by-name Type reference (InterfaceRef, AliasRef, Alias,
NumberEnum, StringEnum). Carried so structural resolution of an already-typed
value can find the symbol by FQN in a global registry, independent of what the current
module imported.
A union’s members in the order they are printed. Members are stored in
canonical order, which puts null and undefined first; they print last,
as TypeScript prints them: string | null | undefined.
Drops the members a {} among members already holds: every one that
cannot be null or undefined and is no bare type parameter. TypeScript
reduces a union this way when it widens a literal, joins flow types and
types a ?? b.