[Haskell-beginners] Differences between OO-style Interfaces and type classes. Any 'Haskell' way of doing it?