
When the "By" function replaces an Eq context by a binary predicate, the
#13593: Unexpected behavior from Data.List.groupBy -------------------------------------+------------------------------------- Reporter: dsf | Owner: (none) Type: task | Status: new Priority: normal | Milestone: Component: Core Libraries | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Documentation | Unknown/Multiple bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by svenpanne): The Haskell report is very explicit about these functions: predicate is assumed to define an equivalence; when the "By" function replaces an Ord context by abinary predicate, the predicate is assumed to define a total ordering. And the `Data.List` documentation repeats these requirements, so I propose to close this issue as "invalid". As a side note, I wouldn't call this an "infelicity": If your `Eq`/`Ord` instances don't obey the required laws, you would have similar fun with plain `group`. The `By` functions just make an implicit argument explicit, and I would be very surprised if they behaved differently. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13593#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler