Prepare for SIP-56 match types.
Of the entire ecosystem of Scala 2 libraries, s2mc is the most affected by the new match types of SIP-56. Some of it was decidedly unsound and can be fixed by local rewriting, which we do in the first 2 commits.
Some tests are not fundamentally shown to be unsound but did rely on some implementation-defined behavior of the old match types, which is not supported anymore. It does not seem to me like the larger project needs those particular tests to pass to be meaningful. So we suggest to remove them, and focus on types that are actually provably disjoint.
Thank you for the PR!
I feel that I need to go through SIP-56 (I once did so but there seems to be some updates since then) to really understand the issue and your solution. Please allow me a few days to digest this 👀