There were quite a few different examples of the where
clause here and there, which makes me wonder if the extension I'm proposing here touches some of your general ideas?
switch someCase {
case where type(of: x) : Equatable in .a(let x), .b(let x):
...
}