Problems can arise when you try to import ShowFunctions, because Haskell insists that only one instance for each class and type may appear in the entire program. Thus if your program contains another instance of Show for functions, you will not be able to import ShowFunctions. In this case you can either use the other instance together with QuickCheck, or replace the other instance with an import of ShowFunctions. Since only one such instance is permitted in the entire program, it makes sense to declare the instance in a standard place (i.e. module ShowFunctions) and import it into each module where it is used. New versions of GHC are distributed together with this module.

Earlier versions of Haskell (up to 1.4) provided a Show instance for functions in the standard prelude, and indeed earlier versions of Hugs 98 still did so, even though it was removed from the definition of Haskell 98. If you are using one of these earlier versions, then you will not be able to use module ShowFunctions at all, since the declaration it contains clashes with that in the standard prelude. In this case you can just work without it, since the instance required is provided anyway.