Today I was writing a lot of Hashable instances, and found it hard to read code littered long lines mostly consisting of `hashWithSalt`, so I made a synonym: infixl 5 ## (##) = hashWithSalt But when I replaced all the `hashWithSalt`s with ##, I got lots of weird errors -- GHC kept wanting things to be Strings that were Ints, or vice verse. The problem vanished when I added this type signature: (##) :: Hashable a => Int -> a -> Int That's exactly the same type signature that hashWithSalt has. Is this expected behavior? Desirable? -- Jeff Brown | Jeffrey Benjamin Brown Website <https://msu.edu/~brown202/> | Facebook <https://www.facebook.com/mejeff.younotjeff> | LinkedIn <https://www.linkedin.com/in/jeffreybenjaminbrown>(spammy, so I often miss messages here) | Github <https://github.com/jeffreybenjaminbrown>