GHC 6.4 release candidates available

Simon Peyton-Jones simonpj at microsoft.com
Wed Mar 2 13:17:56 EST 2005


Ah, yes.  In 6.2, overlap errors were checked and reported "eagerly" at
the instance declaration.  So
	instance C Int a
	instance C b Bool
was rejected.  Now it isn't.  Instead the program is only rejected if a
constraint arises that matches two instance decls, and neither is more
specific.  For example (C Int Bool)

But many constraints are fine e.g. C Int Char

However this does have the consequence that the overlapping-instance
flag must be on in the module that calls the function rather than the
one that defines the instances.   It'd be better if the info travelled
with the instance decl, but it doesn't (yet).  A good feature request.

Simon

| -----Original Message-----
| From: glasgow-haskell-users-bounces at haskell.org
[mailto:glasgow-haskell-users-
| bounces at haskell.org] On Behalf Of Keean Schupke
| Sent: 02 March 2005 17:20
| To: Simon Peyton-Jones
| Cc: glasgow-haskell-users at haskell.org
| Subject: Re: GHC 6.4 release candidates available
| 
| In the past having:
| 
| {-# OPTIONS -fallow-overlapping-instances #-}
| 
| in a module was enough to get ghci to allow the overlaps.
| 
| so we do:
| 
| ghci Test.hs
| 
| now it does not work (but it did in 6.3), but:
| 
| ghci -fallow-overlapping-instances Test.hs
| 
| does... Even it Test.hs is the top level module.
| 
|     Keean.
| 
| Simon Peyton-Jones wrote:
| 
| >Ralf
| >
| >You have a pragma "-fallow-overlapping-instances" in Test.hs, and
indeed
| >it is honoured when compiling Test.hs.  But it's not taken into
account
| >when compiling top-level expressions, or, indeed, if you were to
import
| >Test into another module.
| >
| >If you say ":set -falllow-overlapping-instances" it'll work fine.
| >
| >Now, maybe you'd like the flag to attach permanently to the
*instance*,
| >so that if an instance decl is compiled with
| >-fallow-overlapping-instances, then no complaint will ever be issued
for
| >its overlaps, even if it is imported into a module that doesn't have
| >-fallow-overlapping-instances.  That would make sense, I think, but
it's
| >not implemented and never has been.
| >
| >Simon
| >
| >| -----Original Message-----
| >| From: glasgow-haskell-users-bounces at haskell.org
| >[mailto:glasgow-haskell-users-
| >| bounces at haskell.org] On Behalf Of Ralf Lammel
| >| Sent: 02 March 2005 08:45
| >| To: glasgow-haskell-users at haskell.org
| >| Subject: RE: GHC 6.4 release candidates available
| >|
| >| I think this is an old bug,
| >| or at least I have seen it months back.
| >|
| >| The "overlapping instances" directive does not make it to the
| >top-level.
| >| See attached sample with the offending session.
| >|
| >| Thanks for fixing.
| >| Ralf
| >
| >_______________________________________________
| >Glasgow-haskell-users mailing list
| >Glasgow-haskell-users at haskell.org
| >http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
| >
| >
| 
| _______________________________________________
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


More information about the Glasgow-haskell-users mailing list