HaloO, Jon Lang wrote:

What, if anything, is the significance of the fact that pointlike (in John's example; 'Point' in TSa's counterexample) is generic?

Note that I didn't give a counterexample. I just used different syntax. Here values and types behave very similar. On the value level you can check 3 + 4 == 7. In a generic addition 3 + $x == 7 you can do two different things. First you can check the truths for different values of $x or you can *solve* for $x. The latter also happens in higher order type checks but of course with type variables. The type system signals an error if it can't find a suitable solution given the constraints. E.g. on the value level my Int $x; $x + $x == 7; is unsolvable. The same can happen on type level. Hope that helps, TSa. -- "The unavoidable price of reliability is simplicity" -- C.A.R. Hoare 1 + 2 + 3 + 4 + ... = -1/12 -- Srinivasa Ramanujan