This doesn't look like it can do fallbacks which are traditional feature of switch statements, can it? What I mean is this ```
case foo: case bar: return 1; case baz: return 2; ``` If we can't do that, I would suggest to go with different name, rather than reusing "switch".