[Haskell-cafe] looking for examples of non-full Functional Dependencies

Martin Sulzmann martin.sulzmann at gmail.com
Fri Apr 18 04:26:55 EDT 2008

Lennart Augustsson wrote:
> To reuse a favorite word, I think that any implementation that 
> distinguishes 'a -> b, a -> c' from 'a -> b c' is broken. :)
> It does not implement FD, but something else.  Maybe this something 
> else is useful, but if one of the forms is strictly more powerful than 
> the other then I don't see why you would ever want the less powerful one.
Do you have any good examples, besides the contrived one

class D a b c | a -> b c

instance D a b b => D [a] [b] [b]

where we want to have the more powerful form of multi-range FDs?

Fixing the problem who mention is easy. After all, we know how to derive
improvement for multi-range FDs. But it seems harder to find agreement 
multi-range FDs are short-hands for single-range FDs, or
certain single-range FDs, eg a -> b and a -> c, are shorthands for more 
multi-range FDs a -> b c.
I clearly prefer the latter, ie have a more powerful form of FDs.


More information about the Haskell-Cafe mailing list