Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,790,268 events total
2026-03-20 07:05:09 × haasn quits (sid579015@id-579015.hampstead.irccloud.com) (Ping timeout: 268 seconds)
2026-03-20 07:05:32 haasn joins (sid579015@id-579015.hampstead.irccloud.com)
2026-03-20 07:06:00 × NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (Ping timeout: 256 seconds)
2026-03-20 07:06:02 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 252 seconds)
2026-03-20 07:06:21 × jonrh quits (sid5185@id-5185.ilkley.irccloud.com) (Ping timeout: 272 seconds)
2026-03-20 07:06:23 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Ping timeout: 268 seconds)
2026-03-20 07:06:23 × astra quits (sid289983@id-289983.hampstead.irccloud.com) (Ping timeout: 268 seconds)
2026-03-20 07:06:34 × fun-safe-math quits (~fun-safe-@97.115.234.213) (Ping timeout: 256 seconds)
2026-03-20 07:06:49 × edm quits (sid147314@id-147314.hampstead.irccloud.com) (Ping timeout: 248 seconds)
2026-03-20 07:06:56 fun-safe-math joins (~fun-safe-@97.115.234.213)
2026-03-20 07:07:14 NiKaN joins (sid385034@id-385034.helmsley.irccloud.com)
2026-03-20 07:07:44 jonrh joins (sid5185@id-5185.ilkley.irccloud.com)
2026-03-20 07:08:10 astra joins (sid289983@id-289983.hampstead.irccloud.com)
2026-03-20 07:08:55 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
2026-03-20 07:09:37 edm joins (sid147314@id-147314.hampstead.irccloud.com)
2026-03-20 07:13:13 CiaoSen joins (~Jura@p549cb690.dip0.t-ipconnect.de)
2026-03-20 07:13:56 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 07:14:04 tri joins (~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-20 07:19:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-03-20 07:28:49 × ft quits (~ft@p508db341.dip0.t-ipconnect.de) (Quit: leaving)
2026-03-20 07:28:51 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 07:33:03 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-03-20 07:42:33 × tri quits (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 248 seconds)
2026-03-20 07:44:13 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 07:51:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-20 07:56:53 tri joins (~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-20 08:01:30 arandombit joins (~arandombi@user/arandombit)
2026-03-20 08:02:15 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 08:05:57 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2026-03-20 08:05:58 × Googulator quits (~Googulato@84-236-126-177.pool.digikabel.hu) (Ping timeout: 240 seconds)
2026-03-20 08:07:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-03-20 08:17:36 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 08:18:19 × tri quits (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 264 seconds)
2026-03-20 08:22:12 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-20 08:23:04 × PotatoGim quits (sid99505@id-99505.lymington.irccloud.com) (Ping timeout: 256 seconds)
2026-03-20 08:26:56 PotatoGim joins (sid99505@id-99505.lymington.irccloud.com)
2026-03-20 08:29:50 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 08:32:36 tri joins (~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-20 08:33:44 oskarw joins (~user@user/oskarw)
2026-03-20 08:34:30 × rainbyte quits (~rainbyte@181.47.219.110) (Read error: Connection reset by peer)
2026-03-20 08:34:34 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-03-20 08:36:35 rainbyte joins (~rainbyte@181.47.219.110)
2026-03-20 08:37:40 × tri quits (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 245 seconds)
2026-03-20 08:39:59 weary-traveler joins (~user@user/user363627)
2026-03-20 08:45:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 08:49:54 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-20 08:53:13 somemathguy joins (~somemathg@user/somemathguy)
2026-03-20 08:59:22 acidjnk_new3 joins (~acidjnk@p200300d6e700e541daf6366eab32adad.dip0.t-ipconnect.de)
2026-03-20 09:00:42 merijn joins (~merijn@62.45.136.136)
2026-03-20 09:04:54 × merijn quits (~merijn@62.45.136.136) (Ping timeout: 245 seconds)
2026-03-20 09:05:45 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 248 seconds)
2026-03-20 09:07:57 tri joins (~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-20 09:08:22 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 09:12:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-20 09:14:04 × tri quits (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 245 seconds)
2026-03-20 09:15:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 09:20:34 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-03-20 09:23:31 kuribas joins (~user@2a02:1808:4f:27d0:bdf3:9bb4:5714:ba09)
2026-03-20 09:26:24 danza joins (~danza@user/danza)
2026-03-20 09:30:39 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 09:35:05 <gentauro> what's the easiest way to flatten a list of either types? -> `[Either [a] [b]] -> Either [a] [b]`?
2026-03-20 09:35:52 kuribas` joins (~user@ip-188-118-57-242.reverse.destiny.be)
2026-03-20 09:36:12 <int-e> :t Data.Either.partitionEithers
2026-03-20 09:36:13 <lambdabot> [Either a b] -> ([a], [b])
2026-03-20 09:36:30 <int-e> (your type isn't gonna play nicely)
2026-03-20 09:36:33 arandombit joins (~arandombi@user/arandombit)
2026-03-20 09:37:33 <[exa]> gentauro: what do you do with [Left [1], Right [2]] ?
2026-03-20 09:37:36 × kuribas quits (~user@2a02:1808:4f:27d0:bdf3:9bb4:5714:ba09) (Ping timeout: 264 seconds)
2026-03-20 09:37:42 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-03-20 09:37:53 <gentauro> [exa]: combine and show end-user
2026-03-20 09:38:06 <gentauro> but it seems that int-e has the solution
2026-03-20 09:38:09 <[exa]> how do you combine tho
2026-03-20 09:38:29 <[exa]> (spoiler: you might love Data.These)
2026-03-20 09:38:31 <int-e> :t (concat *** concat) . Data.Either.partitionEithers
2026-03-20 09:38:32 <lambdabot> [Either [a1] [a2]] -> ([a1], [a2])
2026-03-20 09:39:59 <gentauro> `***`?
2026-03-20 09:40:14 <int-e> :t (***)
2026-03-20 09:40:15 <lambdabot> Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
2026-03-20 09:41:04 <Leary> % :t foldMap \case{ Left xs -> (xs, []); Right ys -> ([], ys) }
2026-03-20 09:41:04 <yahb2> foldMap \case{ Left xs -> (xs, []); Right ys -> ([], ys) } ; :: Foldable t => t (Either [a1] [a2]) -> ([a1], [a2])
2026-03-20 09:41:21 <int-e> in this case it's just \f g (x, y) -> (f x, g y)
2026-03-20 09:41:24 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 268 seconds)
2026-03-20 09:42:41 <gentauro> Leary: yeah, ended up writing something like that
2026-03-20 09:45:26 <int-e> :t foldMap (partitionEithers . pure)
2026-03-20 09:45:27 <lambdabot> Foldable t => t (Either a b) -> ([a], [b])
2026-03-20 09:45:40 tri joins (~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-20 09:45:57 <int-e> ah. no, of course that's just partitionEithers again
2026-03-20 09:48:09 <newmind> hmm, i don't see how this is supposed to work, since the input list can be a's or b's mixed, but the output.. can only have one of them
2026-03-20 09:48:41 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-03-20 09:49:01 <newmind> except for an impolied "if there are any bs, give me thoese, otherwise i'll take the as"
2026-03-20 09:53:04 <int-e> :t partitionEithers . foldMap (either (map Left) (map Right)) {- looks clean, but inefficient because of all the intermediate Eithers -}
2026-03-20 09:53:05 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-20 09:53:05 <lambdabot> Foldable t => t (Either [a] [b]) -> ([a], [b])
2026-03-20 09:53:50 <gentauro> int-e: partitionEithers creates a tuple. If `left` has any item, then there are errors. Otherwise, just show list of `rights`
2026-03-20 09:54:22 × tri quits (~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 276 seconds)
2026-03-20 09:57:25 <Leary> :t getAp . foldMap Ap
2026-03-20 09:57:26 <lambdabot> k}. (Foldable t, Monoid (Ap f a)) => t (f a) -> f a
2026-03-20 09:57:45 <Leary> > getAp . foldMap Ap $ [Right [1, 2], Right [3, 4]]
2026-03-20 09:57:46 <lambdabot> Right [1,2,3,4]
2026-03-20 09:57:51 <Leary> > getAp . foldMap Ap $ [Right [1, 2], Left [3, 4]]

All times are in UTC.