Overlapping and incoherent instances

Andreas Abel andreas.abel at ifi.lmu.de
Wed Jul 30 12:07:01 UTC 2014


Iavor,

I am a bit surprised by the distinction you outline below.  This is 
maybe because I am native German, not English.  The German equivalent of 
"overlap", "überschneiden/überlappen", is used exclusively in a 
symmetrical fashion.  It's like in English, if I say "our interests 
overlap", then it is pointless to ask whether my interest are 
overlapping yours or are overlapped by yours.  I want to alert you to 
the fact that non-native English speaker might have little understanding 
for a distinction between "OVERLAPPING" and "OVERLAPPABLE".

Let's try to guess what it meant:  Given

A) instance Bla Char
B) instance Bla a => Bla [a]
C) instance Bla String

you will in context A,B write C as OVERLAPPING,
and in context A,C write B as OVERLAPPABLE?

Is this correct?

Is it important to distinguish between OVERLAPPING and OVERLAPPABLE?  Why?

-- Andreas

On 29.07.2014 19:28, Iavor Diatchki wrote:
> Hello,
>
> I have no strong feelings about what words we use, but I wanted to point
> out that while we are thinking of names, we may want to consider 3 (and
> not just 2).  Currently we have:
>    * OVERLAPPING:   This instances may overlap existing instances
>    * OVERLAPPABLE: This instance may be overlapped by existing instances
>    * OVERLAPS:  This instance is both OVERLAPPING and OVERLAPPABLE
>
> Of course, the 3rd one (OVERLAPS) could be replaced by a comma separated
> list of the first two, but I could not see how to make this work easily
> with GHC's pragmas.  It would not be hard to simply allow 2 pragmas
> after the `instance` keyword, but both of those seem rather long.
>
> Either way, I'll keep an eye on the discussion, and would be happy to
> change the names if a consesus is reached.
>
> -Iavor
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Tue, Jul 29, 2014 at 9:57 AM, David Thomas <davidleothomas at gmail.com
> <mailto:davidleothomas at gmail.com>> wrote:
>
>     Honestly, I think "OVERLAPS" and "OVERLAPPED" are perfectly clear.
>
>     On Tue, Jul 29, 2014 at 9:52 AM, David Feuer <david.feuer at gmail.com
>     <mailto:david.feuer at gmail.com>> wrote:
>      > CAN-OVERLAP and CAN-BE-OVERLAPPED are nice and clear. A little
>     long, perhaps.
>      >
>      > On Tue, Jul 29, 2014 at 12:29 PM, Simon Peyton Jones
>      > <simonpj at microsoft.com <mailto:simonpj at microsoft.com>> wrote:
>      >> CAN_OVERLAP and CAN_BE_OVERLAPPED?
>      >>
>      >>
>      >>
>      >> (instead of OVERLAPPING and OVERLAPPABLE)
>      >>
>      >>
>      >>
>      >> Or CAN-OVERLAP, CAN-BE-OVERLAPPED
>      >>
>      >>
>      >>
>      >> That’s ok with me if that’s what you all want!
>      >>
>      >>
>      >>
>      >> Simon
>      >>
>      >>
>      >>
>      >> From: Glasgow-haskell-users
>      >> [mailto:glasgow-haskell-users-bounces at haskell.org
>     <mailto:glasgow-haskell-users-bounces at haskell.org>] On Behalf Of
>     Krzysztof
>      >> Skrzetnicki
>      >> Sent: 29 July 2014 16:56
>      >> To: Brandon Allbery
>      >> Cc: Simon Peyton Jones; Andreas Abel; GHC users; Haskell Libraries
>      >> (libraries at haskell.org <mailto:libraries at haskell.org>); ghc-devs
>      >>
>      >>
>      >> Subject: Re: Overlapping and incoherent instances
>      >>
>      >>
>      >>
>      >> How about CAN_OVERLAP?
>      >>
>      >> --
>      >> Krzysztof
>      >>
>      >> 29-07-2014 15:40, "Brandon Allbery" <allbery.b at gmail.com
>     <mailto:allbery.b at gmail.com>> napisał(a):
>      >>
>      >> On Tue, Jul 29, 2014 at 8:33 AM, Andreas Abel
>     <andreas.abel at ifi.lmu.de <mailto:andreas.abel at ifi.lmu.de>>
>      >> wrote:
>      >>
>      >> +1. I like Niklas' syntax better.  Also OVERLAPPABLE is a
>     horrible word,
>      >> OVERLAPPING sound less formidable (even though it might be
>     slightly less
>      >> accurrate).
>      >>
>      >>
>      >>
>      >> We already get "overlap ok" in instance-related type errors, so
>     OVERLAP_OK
>      >> wouldn't be particularly alien even if it doesn't quite fit in
>     with existing
>      >> pragmas.
>      >>
>      >>
>      >>
>      >> --
>      >>
>      >> brandon s allbery kf8nh                               sine
>     nomine associates
>      >>
>      >> allbery.b at gmail.com <mailto:allbery.b at gmail.com>
>     ballbery at sinenomine.net <mailto:ballbery at sinenomine.net>
>      >>
>      >> unix, openafs, kerberos, infrastructure, xmonad
>     http://sinenomine.net
>      >>
>      >>
>      >> _______________________________________________
>      >> Libraries mailing list
>      >> Libraries at haskell.org <mailto:Libraries at haskell.org>
>      >> http://www.haskell.org/mailman/listinfo/libraries
>      >>
>      >>
>      >> _______________________________________________
>      >> Libraries mailing list
>      >> Libraries at haskell.org <mailto:Libraries at haskell.org>
>      >> http://www.haskell.org/mailman/listinfo/libraries
>      >>
>      > _______________________________________________
>      > Libraries mailing list
>      > Libraries at haskell.org <mailto:Libraries at haskell.org>
>      > http://www.haskell.org/mailman/listinfo/libraries
>     _______________________________________________
>     Libraries mailing list
>     Libraries at haskell.org <mailto:Libraries at haskell.org>
>     http://www.haskell.org/mailman/listinfo/libraries
>
>
>
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>


-- 
Andreas Abel  <><      Du bist der geliebte Mensch.

Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden

andreas.abel at gu.se
http://www2.tcs.ifi.lmu.de/~abel/


More information about the Libraries mailing list