[Haskell-cafe] Function signatures and type class constraints