Hacker News new | ask | show | jobs
by masklinn 904 days ago
> The point is that in most languages something doesn't implement an interface unless it declares that it does

But that's not a requirement. Haskell did nominative "interfaces" (typeclasses) and post-creation conformance 20 years before Go happened.

1 comments

> Haskell did nominative "interfaces" (typeclasses) and post-creation conformance 20 years before Go happened.

Not the same thing, yes you can have orphan instances (with a flag) but you still need an explicit typeclass instance somewhere. Whereas Go interfaces are structural rather than nominal. (And much as I might wish otherwise, Haskell barely qualifies as a mainstream language)