Understanding Typeapplications With Typeclass Methods In Haskell