# C# Language Design Meeting for May 28th, 2025

## Agenda

- [Nominal type unions](#nominal-type-unions)

## Quote of the Day

- "The general rule of LDM is what happens in chat stays in chat" <sup>unless it serves as fodder for the quote of the day</sup>

## Discussion

### Nominal Type Unions

Champion issue: https://github.com/dotnet/csharplang/issues/9411  
Proposal: https://github.com/dotnet/csharplang/blob/402e0a75e53b6c1a301b1e75b58115b7b7315e8f/proposals/nominal-type-unions.md

Today we reviewed the latest output from the unions working group: a proposal for nominal type unions. We spent most of our time examining the proposal
and discussing its various limitations in certain scenarios. As with previous proposals, generic contexts remain a concern, as do reflection scenarios.
JSON serialization presents particular challenges, where the natural representation for some scenarios would be a union type (such as `OneOf<int, string>`),
but this would fail when encountering specific cases instead of the union wrapper. We also raised concerns about the fragility of the emit approach,
especially across assembly boundaries; optimizations would need to be curtailed to prevent undefined behavior during assembly upgrades. Ultimately, the
LDM is not ready to move forward with this version of the proposal, and we need to return to the drawing board to continue designing.
