[Haskell-cafe] Simplifying a IsFunction type class using type equality constraints