[Haskell-cafe] ATs vs FDs

Gábor Lehel illissius at gmail.com
Sat Aug 14 12:09:57 EDT 2010


I think that was exaggeration for effect.

FDs aren't evil, but TFs do the same thing in a nicer way, and there's
a long-term effort to move over from one to the other, and ideally get
TFs into Haskell' at some point. But there's no problem with using FDs
if you need them or just like them better. (Obviously as long as TFs
aren't fully implemented you can't use them for everything).

(All of this is AFAIK, etc.)

On Sat, Aug 14, 2010 at 6:01 PM, Antoine Latter <aslatter at gmail.com> wrote:
> 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
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>



-- 
Work is punishment for failing to procrastinate effectively.


More information about the Haskell-Cafe mailing list