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