
On Fri, Feb 5, 2016 at 7:09 PM, Richard Eisenberg
Another great question that has come up is about Haddock output (Hackage). I think Haddock needs to add a facility where library authors can include specializations of an overly general type. This can be done in commentary, but it's not as prominent. Such a new feature would address the ($) problem, as ($) :: forall (a :: *) (b :: *). (a -> b) -> a -> b is a specialization of its real type. It would also help a great deal with FTP-related generalizations.
This goes hand in hand with Artyom's suggestion of a warning in GHCi after showing the simpler type. I'm thinking of a flag which enables/disables printing the simplest type with warning (in GHCi) or footnote (or otherwise, in Haddock). We can have the default behavior of the flag be either printing the simpler type + extra (warning/footnote) or printing the longer type and include a reference in our learning materials that beginners and people confused by the long, complex and real type, can use --use-simpler-types flag. -- Mihai Maruseac (MM) "If you can't solve a problem, then there's an easier problem you can solve: find it." -- George Polya