postponing discussion on exceptions and deepSeq

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?
peace,
isaac
--
isaac jones

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

On Tue, Apr 11, 2006 at 09:54:12PM -0400, Robert Dockins wrote:
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)
These are accepted by GHC 6.5, under a relaxed termination condition that is a candidate for Haskell': http://www.haskell.org/ghc/dist/current/docs/users_guide/type-extensions.htm...

isaac jones
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?
Personally, I have never used FDs, but I recall some discussion we had in the Hat tracing project about the possibility of using them to solve a problem we had. (In the end, I think we decided it was either too complex, or the particular FD use case was not supported by any compiler.) The idea was to drop from traced computations down to the original computations (unwrap), and lift them back up again (wrap), in order to run "trusted" code at the original speed. This class looks something like class Wrap a b | a -> b, b -> a where wrap :: a -> R b unwrap :: R b -> a Nothing too unusual I'm sure. But there are some subtleties to do with the way this class interacts with other classes. A sketch of these is given in a short memo, attached to the wiki under "Use Cases" at http://hackage.haskell.org/trac/haskell-prime/wiki/FunctionalDependencies The relevant section is 3.2. One interesting thing to note for the FD discussion is the need/possibility of defining the same multi-parameter class at several different kinds. Regards, Malcolm
participants (4)
-
isaac jones
-
Malcolm Wallace
-
Robert Dockins
-
Ross Paterson