Record types

Note that there's no need for structural records for that. It would work with existing nominal records with two things:

  • A way to create a struct literal of inferred type, perhaps foo(.{ bar: 5, baz: true })
  • Sugar to create an anonymous type in a function definition, like fn foo(.{ bar: i32, baz: bool})

Then you don't have to change the type system at all, which makes the whole thing massively easier to deal with.

3 Likes