Opened 10 years ago

Closed 10 years ago

#1351 closed bug (fixed)

mistake in Data.Set description

Reported by: guest Owned by:
Priority: normal Milestone:
Component: Documentation Version: 6.6.1
Keywords: Cc:
Operating System: Windows Architecture: x86
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


Data.set description in HTML documentation contains the following text

difference :: Ord a => Set a -> Set a -> Set a O(n+m). Difference of two sets. The implementation uses an efficient hedge algorithm comparable with hedge-union. intersection :: Ord a => Set a -> Set a -> Set a O(n+m). The intersection of two sets. Elements of the result come from the first set.

I think that phrase "Elements of the result come from the first set" relates to difference function, not to intersection

Change History (2)

comment:1 Changed 10 years ago by Isaac Dupree

That phrase is _true_ for both functions; however it would be expected anyway for non-symmetric difference, which is probably why it's not said in regards to that function. It is significant for intersection, where there is no particular reason to take the shared elements from the first versus the second argument (they must be in both, and intersection is essentially symmetric)

comment:2 Changed 10 years ago by igloo

Resolution: fixed
Status: newclosed

The example below shows why this can make a difference; I've addded it to the docs in the HEAD.

import qualified Data.Set as S
data AB = A | B deriving Show
instance Ord AB where compare _ _ = EQ
instance Eq AB where _ == _ = True
main = print (S.singleton A `S.intersection` S.singleton B,
              S.singleton B `S.intersection` S.singleton A)

prints (fromList [A],fromList [B]).

Note: See TracTickets for help on using tickets.