Excessive restriction in ghc ?

Simon Peyton-Jones simonpj@microsoft.com
Tue, 19 Dec 2000 06:47:41 -0800


Functional dependencies aren't fully implemented in 4.08 I'm afraid,
and won't ever be. It'll be significantly better in 5.0, but we won't
release that for a while yet.  (Unless you care to build from the
CVS tree.)

Simon

| -----Original Message-----
| From: Sebastien Carlier [mailto:sebastien@posse42.net]
| Sent: 19 December 2000 14:15
| To: haskell@haskell.org
| Subject: Excessive restriction in ghc ?
| 
| 
| Hello.
| 
| I am getting an error message from ghc 4.08.1 with
| the following code:
| 
| > class Collection e ce | ce -> e where
| >     empty :: ce
| >     insert :: e -> ce -> ce
| >
| > class (Eq e, Collection e ce) => Set e ce where
| >     member :: e -> ce -> Bool
| >     union :: ce -> ce -> ce
| 
| Main.lhs:7:
|     Class type variable `e' does not appear in method signature
|         union :: {- implicit forall -} ce -> ce -> ce
| 
| Since `ce' uniquely determines `e', I would expect the
| compiler to assume that `e' appears in the method signature.
| Either I am misunderstanding something, or something may be
| missing in the compiler around rename/RnSource.lhs:249.
| 
| Regards,
| Sebastien Carlier
| 
| 
| 
| _______________________________________________
| Haskell mailing list
| Haskell@haskell.org
| http://www.haskell.org/mailman/listinfo/haskell
|