Earlier quoted context omitted.
Literally useless? Would you like to elaborate on how specifying a contract that has to be implemented is suddenly useless because you have function types?
I think the experience of Haskell is relevant here. Once Haskell introduced first class functions, everyone stopped using typeclasses. [edit: apparently my sarcasm was too subtle. HOF and typeclasses are both vitally important pieces of Haskell, which are orthogonal to each other. I'm pretty sure both were in Haskell from day 1. Some code for which both are essential: class Monad m where (>>=) :: m a -> (a -> m b) ->…
What do you mean? From what I've seen, everyone uses typeclasses in Haskell.