Haskell implementation status summary

1993-02-23 Thread Simon L Peyton Jones
Here, for your interest, is a freshly-updated summary of the current state of Haskell implementations, at least those known to us. Simon Peyton Jones, Glasgow University. Haskell: Current status [Simon Peyton Jones wrote the original

Re: Stupid Haskell question

1993-02-23 Thread Guy M. Argo
Guy S., Phil W.,... I ran into exactly this problem in two different applications. The first was the same that Guy S. points out, namely adding arbtrirary but well-typed annotations to a parse-tree. The solution I eventually ended up using (after

Final CFP - SIGPLAN Workshop on State in Programming Languages

1993-02-23 Thread odersky
Final Call for Papers SIGPLAN Workshop on STATE in Programming Languages (SIPL) June 12, 1993 Copenhagen, Denmark Held in conjunction with FPCA and PEPM This workshop will address the

Re: Stupid Haskell question

1993-02-23 Thread wadler
Given your correction, I think that the type declaration data FooTree a b = Leaf b | Node a (FooTree a b) a (FooTree a b) will handle things only a little less neatly than the use of wrappers, and will allow you to use type inference in much the way you wish. What do you think? Cheers,

Stupid Haskell question

1993-02-23 Thread Guy Steele
Date: Tue, 23 Feb 93 17:18:19 GMT From: wadler [EMAIL PROTECTED] ... I don't understand. Can't you handle this is as follows? data FooTree a b = Leaf b | Node a (FooTree a b) a (FooTree a b) data Annote a b c = MkAnnote Info (FooTree (Annote a b c) b) c and

Stupid Haskell question

1993-02-23 Thread Guy Steele
Date: Tue, 23 Feb 93 10:16:58 GMT From: wadler [EMAIL PROTECTED] Given your correction, I think that the type declaration data FooTree a b = Leaf b | Node a (FooTree a b) a (FooTree a b) will handle things only a little less neatly than the use of wrappers, and will allow

Re: Stupid Haskell question

1993-02-23 Thread wadler
Guy, You write, But now suppose that some of the annotations refer to FooTree items (another thing I forgot to say). I suppose I could do data FooTree a b = Leaf b | Node a (FooTree a b) a (FooTree a b)