[Haskell-cafe] fundeps and overlapping/undecidable instances

Jeff Polakow jeff.polakow at db.com
Fri Dec 7 12:49:46 EST 2007


  You should be able to use fundeps to do exactly what you describe below. 

  Can you make a relatively small self-contained example which exemplifies 
the ugliness you see? 


haskell-cafe-bounces at haskell.org wrote on 12/07/2007 11:24:35 AM:

> I have some type-level sets using fundeps working whereby equality and
> membership etc are predicate functions. This seems to leads to an 
> of ugly code, with `If' class constraints etc getting out of hand -- I 
> to treat these as relations instead so providing the definition 
> everything that is 'in' and nothing that is 'out'. I've been using 
> paper on lightweight static resources [1] as a template for this. I want 
> do something like this (supposing I have an EQ relation, (:::) for 
> class Member x y 
> instance EQ x y      => Member x (y:::ys) 
> instance Member x ys => Member x (y:::ys)
> But I can certainly see why this isn't possible (It's the equivalent of
> pattern-matching on the constraints I suppose). Do type families provide 
> way to do this kind of thing or do I need a different strategy 
> involving GADTs or whatever?
> Thanks,
> [1] http://okmij.org/ftp/Computation/resource-aware-prog/tfp.pdf
> -- 
> View this message in context: http://www.nabble.com/fundeps-and-
> overlapping-undecidable-instances-tf4962996.html#a14215583
> Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe


This e-mail may contain confidential and/or privileged information. If you 
are not the intended recipient (or have received this e-mail in error) 
please notify the sender immediately and destroy this e-mail. Any 
unauthorized copying, disclosure or distribution of the material in this 
e-mail is strictly forbidden.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20071207/47893e00/attachment.htm

More information about the Haskell-Cafe mailing list