Error handling in particular is very explicit in Go, but is not explicit in [SML and Haskell] which you would probably call 'better'.

I seriously wonder weather the poster writes any SML. Besides the fact that the only person to write in the language since '97 is Robin Milner himself, a bunch of what OP says makes no sense.

Exceptions in SML are idiomatic for errors. They mention nomadic error handling, which I'd wager is far more prevalent in Haskell. OP doesn't mention exceptions though.

'Module inheritance' isn't really a thing in the ML module system, as it is structurally typed (which gophers should understand, but alas). Module inclusion can be used to fulfill certain module signature or for code reuse (like extending built in modules with your own code). However, any module can implement any arbitrary signature without needing to 'inherit' from or include anything.

(Admittedly, there are a few weird parts I didn't know until I looked it up just now, such as constructors being able to fulfill vals declared in the signature if they have the same name)

compilers trying to be too smart and let you not type half your variables and get everything wrong when you don't (see SML).

I have no idea what they meant here; maybe they had trouble with the type inference and records? Maybe they meant typing physically, and had a trouble with a point free style?

</unjerk>

This .1xer has never written a line of SML and only brought up a language from the 70s because they thought it was fair competition for golang

I've written a lot more OCaml than SML, someone please correct me if I've made a mistake! :)

/r/programmingcirclejerk Thread Link - reddit.com