> Go avoids magic
What? Go is all about magic. All the std lib stuff that is able to take any type works by magic.
Those "obscure rules" (which I prefer to call being able to reason about code) look like they are going to get added in Go 2.
It's odd how programmers think polymorphism is this obscure thing when it's available in almost every typed language.