containers: intersections for Set, along with Semigroup newtype

David Casperson casper at unbc.ca
Mon Dec 7 00:46:55 UTC 2020


Intersection is a lattice operation, whose identity element is the "whole 
universe" not the empty set.

Imagine if we had an intersections :: [Set a] -> Set a

we would expect it have the law
    intersections (a ++ b) = (intersections a) `intersect` (intersections b)

now let b be [] and aa == intersections a, and we get
     aa == aa `intersect` (intersections [])
and this must hold for all aa, which is impossible unless we have some 
kind of universe set.

David
-- 
David Casperson, PhD, R.P.,                  |  David.Casperson at unbc.ca
Associate Professor and Chair,               |  (250)   960-6672 Fax 960-5544
Computer Science                             |  3333 University Way
University of Northern British Columbia      |  Prince George, BC   V2N 4Z9
                                              |  CANADA

Sven Panne, on 2020-12-06, you wrote:

> From: Sven Panne <svenpanne at gmail.com>
> To: Reed Mullanix <reedmullanix at gmail.com>
> Date: Sun, 6 Dec 2020 10:50:13
> Cc: Haskell Libraries <libraries at haskell.org>
> Subject: Re: containers: intersections for Set, along with Semigroup newtype
> Message-ID:
>     <CANBN=muqE8tE11UCGgYYuUEKP=SN19TAQ7_3wE68v46583H-=A at mail.gmail.com>
> 
> 
> CAUTION: This email is not from UNBC. Avoid links and attachments. Don't buy gift cards.
> 
> Am So., 6. Dez. 2020 um 07:20 Uhr schrieb Reed Mullanix <reedmullanix at gmail.com>:
>       [...]
>   intersections :: Ord a => NonEmpty (Set a) -> Set a
>   intersections (s :| ss) = Foldable.foldl' intersection s ss
> [...]
> 
> 
> Why NonEmpty? I would expect "intersections [] = Set.empty", because the result contains all the elements which are
> in all sets, i.e. none. That's at least my intuition, is there some law which this would violate? 
> 
>
-------------- next part --------------
_______________________________________________
Libraries mailing list
Libraries at haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries


More information about the Libraries mailing list