| Neat. And it solves a problem I was kludging around with explicit,
| existentially quantified dictionaries.
Great! Can I look forward to hearing more about that some time?
| On a superficial note, how about
| class C a b c | (a,b) => c where ...
| for
| class C a b c | a b -> c where ...
| etc?
The current syntax was chosen because it was the same as in one of
the database texts that I looked at. It also doesn't require any
new symbols in the lexical syntax. But I don't have any strong
views about this, and it's all open for discussion. What you've
suggested here seems like another reasonable alternative, that also
satisfies the no new symbols property.
| Also, you say a dependency with zero variables on the right side is
| syntactically correct, but later you say it will be reported as an
| error because it says nothing. Why bother?
Point taken. In fact that same database text I mentioned above
prohibits functional dependencies in which either side is empty.
But it turns out that the two extremes ("a ->" and "-> a") are
rather interesting so I didn't want to exclude either as being
syntactically well-formed. Rejecting the former at a later stage
was a design decision, intended only to catch errors, and isn't
an essential part of the design.
All the best,
Mark