QT: https://social.doma.dev/@goo/109922182018482441
What we decided to do instead is to define two macros on the side. `defprod` is `defdata` that doesn't generate default constructors. It should be compatible with `defsum` out of the box, but we, for the time being, have the "no-new" counterpart called `defunion`.
Because unions are cool.
This way we don't break existing code, but allow easy to write smart constructors that don't upset #dialyzer.
The code is already live in the #GooLang #Algae fork: https://github.com/doma-engineering/algae-goo