The toplevel fragile pattern makes calculating exports difficult, to avoid user surpise (assertion failure in compiler), we are going to check if the toplevel pattern match is fragile or not. If it is a fragile pattern in the toplevel, we will raise a type checking error.
For example:
let myList = list{1, 2, 3}
let list{head , ... tail} = myList // fragile pattern since myList may be empty
The old behavior is that this will crash the compiler, the new behavior will raise a type checking error instead. For irrefutable pattern, e.g, tuple, such restriction is lifted.
Ah I see, so what would the error message look like? And would the applied function example also turn into an error instead of the “unhandled case” warning it is right now?