On Thu, Sep 3, 2020 at 2:18 PM Anthony Clayden <anthony_clayden@clear.net.nz> wrote:
> on Tue Sep 1 21:18:40 UTC 2020, Richard Eisenberg wrote:
I see the core idea as a fairly straightforward generalization of the > "Partial Type Constructors" work -- except that I wouldn't phrase any of > this as "floating out".

Heh heh as a wee sidenote to the idea of type synonyms/datatypes making their contexts available, as you put it

| > So, the occurrence of Point a causes a Num a constraint to arise. These Num a constraints then get put into the type.

The 1991 Haskell report that dropped type synonym contexts and specified datatype contexts as we now know them, left something under-specified. SPJ/GHC interpreted it one way, Mark P. Jones/Hugs interpreted differently. It didn't come to light until the H98 report:
http://code.haskell.org/~dons/haskell-1990-2000/msg04066.html
"Phil (Wadler), Mark (P. Jones), Jeff (Lewis)" (and Erik Meijer later in the thread) preferred Hugs's approach, so that went into the standard and into GHC. Phil said "`redundant pollution' is exactly the effect I want to achieve!".

AntC