
On Tuesday 11 April 2006 01:09 pm, isaac jones wrote:
I'd like to ask the list to postpone discussion on exceptions and deepSeq until a later iteration. While these are two topics that are of deep importance to me, I would prefer to focus on the other two topics at hand until they are solved. That is, concurrency, and the class system.
I'm still postponing opening up another topic since I find that the class system isn't being as enthusiastically discussed as I had hoped. Let's all focus our energies on these topics, I promise that the others won't be forgotten.
Ross has asked for use cases for functional dependencies and so far has only two replies. Surely there are those on this list who have use of functional dependencies?
Edison makes use of MPTC and functional dependencies. I'll list the relavant class declaration heads here: class Eq a => CollX c a | c -> a class (CollX c a, Ord a) => OrdCollX c a | c -> a class CollX c a => SetX c a | c -> a class (OrdCollX c a, SetX c a) => OrdSetX c a | c -> a class CollX c a => Coll c a | c -> a class (Coll c a, OrdCollX c a) => OrdColl c a | c -> a class (Coll c a, SetX c a) => Set c a | c -> a class (OrdColl c a, Set c a) => OrdSet c a | c -> a class (Eq k, Functor m) => AssocX m k | m -> k class (AssocX m k, Ord k) => OrdAssocX m k | m -> k class AssocX m k => FiniteMapX m k | m -> k class (OrdAssocX m k, FiniteMapX m k) => OrdFiniteMapX m k | m -> k class AssocX m k => Assoc m k | m -> k class (Assoc m k, OrdAssocX m k) => OrdAssoc m k | m -> k class (Assoc m k, FiniteMapX m k) => FiniteMap m k | m -> k class (OrdAssoc m k, FiniteMap m k) => OrdFiniteMap m k | m -> k An additional issue is the following instance declarations, which require undecidable instances under GHC: Eq (s a) => Eq (Rev s a) (Sequence s, Read (s a)) => Read (Rev s a) (Sequence s, Show (s a)) => Show (Rev s a) The haddock for current Edison is here: http://www.eecs.tufts.edu/~rdocki01/docs/edison/index.html Rob Dockins