[Haskell-cafe] Language complexity & beginners (Was: New type of ($) operator in GHC 8.0 is problematic)

Tom Ellis tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk
Sun Feb 7 15:59:13 UTC 2016

On Sun, Feb 07, 2016 at 03:56:25PM +0000, Daniel Gorín wrote:
> > On 7 Feb 2016, at 2:59 pm, Richard Eisenberg <eir at cis.upenn.edu> wrote:
> >> 
> >> 2, ($) has had a fib in its type for a very long time, but did it ever
> >> hurt anyone?  The closest I saw was a generalized concern about it
> >> being bad when people report a bug and then hear that things are more
> >> general than they thought and I guess this makes their bug not a bug
> >> or something?  Results in some confusing back-and-forth?  It would be
> >> nice to get more specific about how much trouble the ($) lie has
> >> caused.
> > 
> > I don't have data, but there is a real cost to lying. It shows up in the
> > slow-ish but steady stream of posts / questions / bug reports that are
> > produced saying something is weird.  I've seen a good number of these
> > come up in my years in the Haskell community.  I'll note that there is
> > also a real cost to telling the truth: witness this thread.  This all
> > adds up to a need to do both, which is what we would get by having a
> > richer REPL environment.
> Data.Function could define ($) with the new type, Prelude would re-export
> it with the old type (as a specialization)

Could you explain why re-exporting a specialized version is better than just
*defining* a specialized equivalent?


More information about the Haskell-Cafe mailing list