Maybe this was discussed, but is there some reason we would call Either's kind * -> * -> * rather than (*, *) -> * ? Maybe they're the "same thing" right now in the sense that there's only one formulation in the language, but if they're ever not the same thing, then this will be on the losing end. It's conceivable someday you can declare Either like this:
```
class Either[+A][+B]
```
And that would be the * -> * -> * one.