I looked into type classes in Haskell, but my understanding was they they provide static, not dynamic dispatch. Is that wrong?<p>FWIW I&#x27;ve also been wondering about Go. On one hand in Go you don&#x27;t have to pre-declare which interfaces your type is implementing. OTOH you can&#x27;t just extend an existing type from a different package with new methods, AFAIU