7 ms·
> 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 nomina
by masklinn 3y 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.
- lmm 3y ago> 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)