Exact pinned TypeScript fixture conditionalTypes1 still fails one diagnostic on current main 1b07917: line 135 TS2542 displays DeepReadonlyArray<t>[P][number]> instead of DeepReadonlyArray<part>. A direct checker reduction reproduces the same mismatch.
Trace: registerAliasDisplayNameInner receives structural TypeId 253 first with symbolic argument T[P][number], then again with concrete argument Part. The first display wins. That same TypeId is later re-registered symbolically, so a simple last-writer policy is also wrong.
Two candidate mutations were rejected and fully reverted: replacing both alias_display_names and alias_type_args fixes TS2542 but loses the required line 136 TS2540 readonly-property diagnostic; changing only alias_display_names has the same semantic regression. These maps participate in semantic lookup, so a diagnostic-string substitution is not a valid fix.
Guarded exact six-variant control before/after candidate: four pass, one upstream skip, conditionalTypes1 fails. Original mismatch is only line 135 wording; candidate mismatch is missing line 136 TS2540. Peak process-tree footprint stayed below 2.3 GB with a 3,840 MB ceiling. No candidate code is retained or pushed.
Acceptance: preserve separate semantic instantiation ownership for structurally interned types; match all diagnostics in the original conditionalTypes1 fixture, including both TS2542 and TS2540; add direct checker and exact-corpus regressions; run unfiltered checker and Program tests under the memory guard. No fixture edits, diagnostic special cases, or weakening of readonly checks.