On 19 Oct 2014, at 11:20, Herbert Valerio Riedel wrote:
> -- This module deliberately declares orphan instances:
> {-# OPTIONS_GHC -fno-warn-orphans #-}
>
> -- | Optional instance of 'Text.Show.Show' for functions:
> --
> -- > instance Show (a -> b) where
> -- > showsPrec _ _ = showString \"\<function\>\"
> --
> -----------------------------------------------------------------------------
> Should this module be
> deprecated, removed, alternatively, should the `Show` instance be made a
> non-orphan (e.g. by importing it by the `Prelude` module), or shall this
> curiousity be just left untouched in `base` in its current form?
Under no circumstances should this instance ever be visible from the Prelude.
It was deliberately made an orphan because the instance is non-conformant to the intended semantics of the Show class. Having a default instance of Show for functions would be a disaster, by causing static type error messages that indicate an arity problem, to become erratic runtime behaviours instead (without even throwing an exception).