And the error handling is way better than catching stuff because it’s so explicit
type
weekdays = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);
DailyActivity = array weekdays of string;
Instead of the ridiculous iota/const workaround.You mention generics, but actually they still are quite constrained on capabilities.
Robust typing misses out on the famous gotcha with nil interfaces.
The error boilerplate, but granted that isn't a typesystem issue, rather grammar and semantics.
Package names tied to SCM domains, with a workaround using HTML Meta redirections when they change, and behind our back file rewrites remapping imports.
I've been bitten/misled by that so many times. How hard is it to just $(find -exec sed) to patch up the imports if you fork a project, versus later finding out oh, so that's why line 50 of some random dep doesn't at all do what it says in the repo
If I was Go Dictator For Life I'd make the compiler issue a warning for any replace statement in go.mod