Not to nitpick, but do you mean the pattern matching statement when you are talking about "sum types"? Because as far as I'm aware Python doesn't have " proper" algebraic data types.
You're right, it doesn't, and they're still quite awwkward. And I'm not even talking about pattern matching; just the fact that you can finally define a class as `X = Y | Z`.