PROPOSAL: Add `disjoint` method to `Data.IntSet`

David Feuer david.feuer at gmail.com
Thu Dec 28 02:27:20 UTC 2017


Would all constructivists actually say so? I'd think there could be some
who think that

disjoint :: (s, t : Set a) -> x : a -> Either (Not (elem x s)) (Not (elem x
t))

in which case being disjoint is a stronger property than just not
overlapping. But of course,
none of this is really relevant to Haskell.


On Dec 19, 2017 6:46 PM, "Andreas Abel" <abela at chalmers.se> wrote:

> I am thinking along the lines of Tikhon.
>
> Sets "overlap" is a rather uncommon term.  [If we were all
> constructivists, the situation would be different.  Constructively,
> "overlap" is certainly the primitive notion, and "disjoint" only its
> negation.]
>
> We can't introduce a positive term for everything.  For instance, we all
> use
>
>   not . null
>
> rather than having predicates like "isCons", "inhabited" etc.
>
> On 19.12.2017 19:01, Tikhon Jelvis wrote:
>
>> In practice, I hear people talking about "disjoint" sets all the time—it
>> comes up a lot more often than "overlapping" or "not overlapping". It might
>> have a negative in the name semantically, but it's used as an atomic word
>> in practice. (That is, when people say "disjoint" they're *thinking*
>> "disjoint" as opposed to "not joint" or "not overlapping".)
>>
>> I'm in favor of naming functions with common usage in mind, and I think
>> "disjoint" is the word people use most often in this context.
>>
>> On Tue, Dec 19, 2017 at 7:44 AM, Henning Thielemann <
>> lemming at henning-thielemann.de <mailto:lemming at henning-thielemann.de>>
>> wrote:
>>
>>
>>     On Tue, 19 Dec 2017, Víctor López Juan wrote:
>>
>>         I'm thinking that `disjoint` is already a negation:
>>         (dis- (not) + joint (united)). When composing with `not`, the
>>         user gets
>>         a double negation `not (disjoint x y)`. There is a then a small
>>         mental
>>         effort required to go from "not disjoint" to "overlapping".
>>
>>         If we are going to have only one of the two properties, I would
>>         rather
>>         have the positive one (`overlaps`) as primitive. Then `disjoint`
>>         would
>>         be written "not (overlaps x y)", which reads quite easily.
>>         (Or even "not (x `overlaps` y)").
>>
>>
>>     I also dislike double negation and think that 'disjoint' is one. I'd
>>     prefer to see both 'overlap' and 'disjoint'.
>>     _______________________________________________
>>     Libraries mailing list
>>     Libraries at haskell.org <mailto:Libraries at haskell.org>
>>     http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>     <http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries>
>>
>>
>>
>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://mail.haskell.org/cgi-bin/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://www.cse.chalmers.se/~abela/
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20171227/698a32fa/attachment-0001.html>


More information about the Libraries mailing list