Why must every language have every feature, mass applicability, and be intended to be the language-to-end-all-languages? Growth or marketshare is not the only valuable aim.
If you want mutable data structures, I wouldn't point you to Haskell.
> I've dealt with many shitty code bases and the only way that worked for removing bugs was automation. It didn't matter how many bodies you threw at the problem.
Can't say my experience matches yours. Types do seem to structurally reduce some varieties of bugs, but ultimately the only reliable way I've seen to close the gap is hire disciplined people who care about, and thoughtfully consider, what they build.
E.g., the shittiest codebases I've ever seen were TypeScript. It in no way prevents you writing bugs or slop
This is overestimating the amount of effort involved to game on Linux, imo. It is true that there are a couple games using kernel-level anticheat which preclude their working on linux, but for the most part the effort required to play games on Linux now is zero if it's a Steam game and almost zero elsewhere.