[Haskell-cafe] ATs vs FDs

Antoine Latter aslatter at gmail.com
Sat Aug 14 12:01:13 EDT 2010


What's wrong with fun-deps? The associated type synonym syntax is prettier,
but I didn't tknow that fun-deps were evil.

Do you have any links?

Take care,
Antoine

On Aug 14, 2010 5:19 AM, "Andrew Coppin" <andrewcoppin at btinternet.com>
wrote:

As I understand it, ATs were invented because FDs are "evil" and must never
be used ever for any purpose. However, it doesn't seem to be possible to use
ATs to do the same things that FDs can do.

You can use ATs to write type functions, which take one type and return
another type. This allows you to express type relationships in a very
elegant way. However, what it does /not/ seem to allow you to do is express
one-to-one relationships.

For example, I'd like to be able to say that the next vector up from a
Vector3 is a Vector4, and the next vector down is a Vector2. And I can say
that. What I can't say is that the *only* next vector up is a Vector4. And
thus, all my code is littered with ambiguous type warnings because although
/currently/ there's only one class instance, somebody could come along some
day and write another one.

What am I missing?

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe at haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100814/92cc72b0/attachment-0001.html


More information about the Haskell-Cafe mailing list