We need a type system that supports the use cases listed below.
Specifically I'm interested in making anonymous sums useful for error handling.
The syntax below are just an example. The final syntax will depend on the type system that will be used to support these use cases.
Also note that the language already has parametric polymorphism with constraints (i.e. typeclasses). The questions about subtyping vs. row poly. below are only for anonymous variants. Named types won't have subtyping.