Haskell makes Go's concurrency and composition look primitive and restrictive while also giving you safer code with generics. This isn't an area that Go wins at unless you're comparing it with C, not anything modern. The lack of generics is also not a primitive issue, neither is the ease at which people can write unsafe code. You can write as unsafe code as you like in Haskell, but the pat5h of least resistance also happens to be the safest. this is my biggest issue with go; it insists on using unsafe ideas when it's simply not necessary and puts unnecessary burden on the programmer to ensure things are safe; computers exists to make lives easier, and Go ignores that
Smalltalk uses less code to do the same thing.
Smalltalk lets you offload bookkeeping to the runtime.
Smalltalk code often runs faster for actual business workloads.
Smalltalk lets you add features faster with fewer bugs.
Why Java? Because marketing.
But doing this is was a waste of community time and energy. A better thing to do is to build cool stuff.