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