[Haskell-cafe] Re: MPTCs and rigid variables

apfelmus at quantentunnel.de apfelmus at quantentunnel.de
Wed Mar 7 04:12:11 EST 2007


Claus Reinke wrote:
>>> ps. i was somewhat shocked to read that SPJ wants FDs gone.
>>
>> Why?  Simon has good taste. :)
> 
> de gustibus non est disputandum ;)
> 
> FD have uses and problems and AT have uses and problems. starting anew
> with the latter doesn't fix the problems, it just changes their form.

Well, the choice between FD and AT (and maybe yet undiscovered
alternatives) is entirely a matter of "convenience" as much as
everything related to type inference is. The same goes for type classes
or subtyping: all these can be translated to system F (or FC for FD and
AT) so they don't add abstraction power at run-time. Their only but
important purpose is to auto-infer code.

FD are pretty much type-level programming in a kind of mini-prolog. Of
course, AT are type-level programming as well, but functional in style,
which is arguably more compelling for a functional base language. At
least, I think that FD are somehow ugly.

> in particular, many of the problems with FD are ambiguities in
> interpreting interactions with other popular features, such as overlap
> resolution. it took half a decade of practical experience to expose
> such issues for FD, and i don't see the fact that AT haven't reached
> that stage yet as any advantage.

Quite telling that it took half a decade to shed light on the semantics
of the many FD variants, isn't it? :)

I guess that AT will come with semantics included because it's otherwise
unclear how to implement them. Implementing FD is simply easier as type
inference already is a kind of mini-prolog. Of course, that doesn't
simplify their semantics at all. In a sense, knowing AT is knowing how
much functional in style type inference can be.

Regards,
apfelmus



More information about the Haskell-Cafe mailing list