Newest at the top
| 2025-11-24 17:14:06 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds) |
| 2025-11-24 17:10:47 +0100 | Googulator40 | (~Googulato@2a01-036d-0106-01f1-f56c-45b8-e3c8-fdbd.pool6.digikabel.hu) |
| 2025-11-24 17:10:42 +0100 | Googulator | (~Googulato@2a01-036d-0106-01f1-f56c-45b8-e3c8-fdbd.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-11-24 17:02:35 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 240 seconds) |
| 2025-11-24 16:58:11 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-11-24 16:56:47 +0100 | annamalai | (~annamalai@157.32.136.68) annamalai |
| 2025-11-24 16:56:27 +0100 | annamalai | (~annamalai@157.32.136.68) (Read error: Connection reset by peer) |
| 2025-11-24 16:56:04 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2025-11-24 16:55:06 +0100 | hakutaku | (~textual@chen.yukari.eu.org) |
| 2025-11-24 16:53:56 +0100 | infinity0 | (~infinity0@pwned.gg) infinity0 |
| 2025-11-24 16:48:37 +0100 | infinity0 | (~infinity0@pwned.gg) (Remote host closed the connection) |
| 2025-11-24 16:37:38 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 272 seconds) |
| 2025-11-24 16:36:14 +0100 | gehmehgeh | (~user@user/gehmehgeh) gehmehgeh |
| 2025-11-24 16:32:17 +0100 | <monochrom> | Ah, that. |
| 2025-11-24 16:31:58 +0100 | <Leary> | No, it collects elements related to the first following each break. |
| 2025-11-24 16:31:30 +0100 | <monochrom> | I think it already does that. |
| 2025-11-24 16:30:30 +0100 | <Leary> | One of the reasons for `*By` functions is because you don't always want to be restricted by the laws associated with `Eq`/`Ord`. Ideally `groupBy` would be rewritten to group /related chains/, then it would make perfect sense regardless of transitivity. |
| 2025-11-24 16:30:26 +0100 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-24 16:30:10 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
| 2025-11-24 16:28:08 +0100 | <kuribas> | Even in idris Eq doesn't come with proofs... |
| 2025-11-24 16:27:23 +0100 | <monochrom> | Nice. |
| 2025-11-24 16:27:11 +0100 | <kuribas> | ah, that's groupWith... |
| 2025-11-24 16:26:43 +0100 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
| 2025-11-24 16:26:28 +0100 | <kuribas> | I usually use groupBy ((==) `on` f) ... |
| 2025-11-24 16:24:53 +0100 | <monochrom> | "But this is how groupBy should really have ended: Foldable f => (r :: a -> a -> Bool) -> (proof that r is really an equivalence relation) -> f a -> [NonEmpty a]" >:) |
| 2025-11-24 16:24:05 +0100 | <monochrom> | "How groupBy Should Have Ended" |
| 2025-11-24 16:21:57 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) (Quit: fp) |
| 2025-11-24 16:20:56 +0100 | <monochrom> | Since the input is any Foldable, you can still give it a normal list. |
| 2025-11-24 16:20:44 +0100 | <kuribas> | right :) |
| 2025-11-24 16:20:21 +0100 | <monochrom> | Data.List.Nonempty exports a groupBy :: Foldable f => (a -> a -> Bool) -> f a -> [NonEmpty a] |
| 2025-11-24 16:13:48 +0100 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-24 16:11:38 +0100 | <kuribas> | Maybe a bit less heavy on dependencies. |
| 2025-11-24 16:11:24 +0100 | <kuribas> | ah, that's basically NonEmpty... |
| 2025-11-24 16:10:36 +0100 | <kuribas> | groupBy should have been forall a. (a -> a -> a) -> [a] -> [(a, [a])] |
| 2025-11-24 16:10:31 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
| 2025-11-24 16:09:34 +0100 | gustrb | (~gustrb@user/gustrb) gustrb |
| 2025-11-24 16:08:55 +0100 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 255 seconds) |
| 2025-11-24 16:08:44 +0100 | gustrb | (~gustrb@user/gustrb) (Read error: Connection reset by peer) |
| 2025-11-24 16:06:14 +0100 | <geekosaur> | and is so core that pretty much everything in both core and contrib would have to be modified |
| 2025-11-24 16:05:36 +0100 | <geekosaur> | well, there's also that the case where I personally run into this "correctly" should be solved in xmonad core⦠by breaking the API of a central structure that's been fixed since at least 0.2 |
| 2025-11-24 16:04:50 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 256 seconds) |
| 2025-11-24 16:03:46 +0100 | <kuribas> | groupBy in idris uses List1 |
| 2025-11-24 16:03:34 +0100 | <haskellbridge> | <Morj> I find that NonEmpty is fine when you're inside the ecosystem that's more abstract over it's data types. A lot of functions take a list instead of a traversable. I find the pain slightly smaller with mono-traversable and everything that uses it |
| 2025-11-24 16:02:44 +0100 | fp | (~Thunderbi@130.233.70.108) (Read error: Connection reset by peer) |
| 2025-11-24 16:02:35 +0100 | <Leary> | It's not a solution to every non-empty list problem, but it /is/ a solution to giving `groupBy` a good signature. |
| 2025-11-24 16:02:22 +0100 | fp | (~Thunderbi@130.233.70.108) fp |
| 2025-11-24 16:02:08 +0100 | <Leary> | `x:|xs` has no more constructors/expense than `x:xs`. |
| 2025-11-24 16:01:55 +0100 | <geekosaur> | imo NonEmpty isn't a solution, it's an ugly hack around Haskell missing that aspect of dependent types |
| 2025-11-24 16:01:04 +0100 | <geekosaur> | well, yes, if you can use NonEmoty then it's not a problem. but I find NonEmpty somewhat annoying and sometimes a bit expensive since it's adding constructors that are pointless at runtime |
| 2025-11-24 16:01:01 +0100 | <haskellbridge> | <Morj> 2. You can use a partial function like "fromJust . uncons" |