Proposal: Require OverlappingInstances for the most specific instance only

Serge D. Mechveliani mechvel at botik.ru
Tue Nov 16 10:46:57 EST 2010


On Tue, Oct 26, 2010 at 09:41:58PM +0200, John Smith wrote:
> In the case of overlapping instance declarations, GHC currently requires 
> the less specific instance to be compiled with OverlappingInstances for the 
> more specific instance to be usable. This means that, for example, if you 
> write
> 
> type ChessBoard = Array (Int,Int) Piece
> 
> there is no way to
> 
> instance Show ChessBoard where
>     show board = ...
> 
> because Array is already an instance of Show, and was not compiled with 
> OverlappingInstances.
> 
> http://hackage.haskell.org/trac/ghc/ticket/3877 requests that 
> OverlappingInstances be required for only the most specific instance 
> declarations, as suggested in the documentation. "Perhaps the rule should 
> instead say that the overlapping instance declaration should be compiled in 
> this way, rather than the overlapped one ... We are interested to receive 
> feedback on these points."
> 
> SPJ offered to make this change, if the list users agree. (See comment 6.) 
> Proposed deadline for discussion is 16th November.



I always expected that such programs as above must be valid. 
On the other hand, I do not understand these possible ways of compilation, 
these words about "compiled in this way, rather than the overlapped one". 
Now, as I already have overlapping instances work in my programs, for a 
long time, it is difficult for me to predict the consequences of the 
change.
Can the team issue the corresponding GHC pre-release for testing,
without making a decision for future before the users report their 
impression?  

With kind regards, 

-----------------
Serge Mechveliani
mechvel at botik.ru
 



More information about the Glasgow-haskell-users mailing list