On Sun, Jan 8, 2012 at 9:25 PM, Brent Yorgey
<byorgey@seas.upenn.edu> wrote:
On Fri, Jan 06, 2012 at 10:51:58AM +0000, Steve Horne wrote:
> If I specify both extensions (-XMultiParamTypeClasses and
> -XFlexibleInstances) it seems to work, but needing two language
> extensions is a pretty strong hint that I'm doing it the wrong way.
Not necessarily. These two extensions in particular (and especially
the second) are quite uncontroversial.
does not sound "uncontroversial" to me. That's why I avoided them so far.
MPTCs are not controversial. They're also of limited (but extant) usefulness without an additional extension; and, while there is "controversy" there, it's not especially relevant until type families are stabilized. They could in theory go into the standard *now*; they'd just be of limited use until functional dependencies vs. type families is settled. (Also, de facto I think it's already more or less been decided in favor of type families, just because functional dependencies are (a) a bit alien [being a glob of Prolog-style logic language imported into the middle of System Fc] and (b) [as I understand it] difficult to verify that the code in the compiler is handling all the potential corner cases right [mainly because of (a)].
In any case, if the code in question doesn't happen to need either functional dependencies or type classes, the controversy doesn't touch it.