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.