Unintuitive meaning of some recursive type aliases

“Upcast” here is just a way of saying that something with a given type is used at a wider type. The problem is that this upcast is totally unsound, but since the type in question should be illegal anyway it’s probably not a problem.

Type matches have very subtle semantics based on the disjointness of types. Matching on Nothing will probably never work as you wanted.

1 Like