[Haskell-beginners] Type class vs. Record: How do I model an interface in Haskell?