> > Why not instead transform single-range FDs into multi-range ones where > > possible?
> That's a perfectly reasonable assumption and would establish the logical > property that > a -> b /\ a -> c iff a -> b /\ c > for FDs (by definition). > But what about programmers who'd like that > C [x] y z yields the improvement y = [b], z =[b] > where > class C a b c | a -> b c > instance C a b b => C [a] [b] [b] Isn't that precisely what you earlier said would happen with multi-range FDs? Either I'm missing some difference or we're talking at cross-purposes. My suggestion is that "class C a b c | a -> b c" and "class C a b c | a -> b, a -> c" be both treated as the former case, leading to both cases having the y=[b],z=[b] improvement as above. Cheers, Ganesh ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ============================================================================== _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
