I noticed while migrating roc-pg that the formatter drops any named tag union extension: [Foo, Bar, ..others] -> [Foo, Bar, ..]. Here's the type in question:
Decode(a, err) :: List(RowField) -> Try(
List(List(U8)) -> Try(a, [FieldNotFound(Str), ..err]),
[FieldNotFound(Str)],
)
I thought this was a bug in the formatter but I see a comment in the source indicating that this is intentional (fmt.zig:2851). The language reference indicates that the ..others syntax is valid, so I'm a little confused.
Should the type above simply be Decode(a) :: ...?
I think it is an actual bug and I opened https://github.com/roc-lang/roc/issues/9939 recently.
yeah it's a bug!
Last updated: Jul 23 2026 at 13:15 UTC