When To Prefer Typeapplications Over Simple Type Signatures In Haskell