How do Haskell's type classes differ from interfaces? | Hacker News Reader