Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,803,989 events total
2025-09-26 07:53:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-09-26 07:56:28 × hughjfchen quits (~hughjfche@vmi2417424.contaboserver.net) (Quit: WeeChat 4.7.1)
2025-09-26 07:57:25 × annamalai quits (~annamalai@157.32.118.51) (Ping timeout: 245 seconds)
2025-09-26 07:57:54 hughjfchen joins (~hughjfche@vmi2417424.contaboserver.net)
2025-09-26 08:02:59 inline joins (~inline@ip-005-146-196-132.um05.pools.vodafone-ip.de)
2025-09-26 08:04:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-09-26 08:05:37 Googulator89 joins (~Googulato@81.183.235.203)
2025-09-26 08:07:18 chele joins (~chele@user/chele)
2025-09-26 08:09:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-09-26 08:09:24 Googulator89 is now known as Googulator
2025-09-26 08:12:50 dhil joins (~dhil@5.151.29.138)
2025-09-26 08:13:46 Googulator75 joins (~Googulato@81.183.235.203)
2025-09-26 08:14:23 Googulator13 joins (~Googulato@81.183.235.203)
2025-09-26 08:14:49 × ridcully quits (~ridcully@p57b5234b.dip0.t-ipconnect.de) (Quit: WeeChat 4.7.0)
2025-09-26 08:15:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-09-26 08:17:17 × Googulator quits (~Googulato@81.183.235.203) (Ping timeout: 250 seconds)
2025-09-26 08:18:09 × Googulator75 quits (~Googulato@81.183.235.203) (Ping timeout: 250 seconds)
2025-09-26 08:18:13 tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2025-09-26 08:20:10 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-09-26 08:20:50 Googulator13 is now known as Googulator
2025-09-26 08:20:59 annamalai joins (~annamalai@157.32.127.99)
2025-09-26 08:22:19 arandombit joins (~arandombi@user/arandombit)
2025-09-26 08:24:02 ljdarj joins (~Thunderbi@user/ljdarj)
2025-09-26 08:26:08 Googulator25 joins (~Googulato@81.183.235.203)
2025-09-26 08:26:22 × Googulator quits (~Googulato@81.183.235.203) (Quit: Client closed)
2025-09-26 08:26:51 Enrico63 joins (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213)
2025-09-26 08:27:12 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 265 seconds)
2025-09-26 08:28:09 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-09-26 08:34:45 __monty__ joins (~toonn@user/toonn)
2025-09-26 08:35:45 ridcully joins (~ridcully@p57b5234b.dip0.t-ipconnect.de)
2025-09-26 08:40:47 Googulator70 joins (~Googulato@81.183.235.203)
2025-09-26 08:41:21 poscat0x04 joins (~poscat@user/poscat)
2025-09-26 08:43:03 × poscat quits (~poscat@user/poscat) (Ping timeout: 244 seconds)
2025-09-26 08:43:43 × Googulator25 quits (~Googulato@81.183.235.203) (Ping timeout: 250 seconds)
2025-09-26 08:46:51 PKDrinker joins (~PKDrinker@user/PKDrinker)
2025-09-26 08:47:33 × PKDrinker quits (~PKDrinker@user/PKDrinker) (Remote host closed the connection)
2025-09-26 08:50:28 arandombit joins (~arandombi@user/arandombit)
2025-09-26 08:53:24 × vanishingideal quits (~vanishing@user/vanishingideal) (Read error: Connection reset by peer)
2025-09-26 08:56:55 fp joins (~Thunderbi@wireless-86-50-141-96.open.aalto.fi)
2025-09-26 08:57:24 × fp quits (~Thunderbi@wireless-86-50-141-96.open.aalto.fi) (Client Quit)
2025-09-26 08:58:08 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 265 seconds)
2025-09-26 08:59:36 fp joins (~Thunderbi@2001:708:20:1406::10c5)
2025-09-26 09:01:28 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
2025-09-26 09:04:25 × Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed)
2025-09-26 09:11:35 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-09-26 09:12:44 arandombit joins (~arandombi@user/arandombit)
2025-09-26 09:15:12 × poscat0x04 quits (~poscat@user/poscat) (Remote host closed the connection)
2025-09-26 09:15:21 poscat joins (~poscat@user/poscat)
2025-09-26 09:17:34 michals joins (~michals@ip-109-42-117-69.web.vodafone.de)
2025-09-26 09:17:40 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2025-09-26 09:33:36 × michals quits (~michals@ip-109-42-117-69.web.vodafone.de) (Quit: michals)
2025-09-26 09:34:06 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds)
2025-09-26 09:41:41 Jackneill_ joins (~Jackneill@94-21-95-86.pool.digikabel.hu)
2025-09-26 09:44:07 × Jackneill quits (~Jackneill@91-83-15-174.pool.digikabel.hu) (Ping timeout: 240 seconds)
2025-09-26 09:49:16 × pabs3 quits (~pabs3@user/pabs3) (Read error: Connection reset by peer)
2025-09-26 09:49:20 Enrico63 joins (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213)
2025-09-26 09:50:06 pabs3 joins (~pabs3@user/pabs3)
2025-09-26 09:52:10 arandombit joins (~arandombi@2603:7000:4600:ffbe:ddc9:88a6:9e65:4919)
2025-09-26 09:52:10 × arandombit quits (~arandombi@2603:7000:4600:ffbe:ddc9:88a6:9e65:4919) (Changing host)
2025-09-26 09:52:10 arandombit joins (~arandombi@user/arandombit)
2025-09-26 09:56:39 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 252 seconds)
2025-09-26 10:00:01 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-09-26 10:06:25 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 250 seconds)
2025-09-26 10:12:23 mari-estel joins (~mari-este@user/mari-estel)
2025-09-26 10:14:15 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds)
2025-09-26 10:18:03 arandombit joins (~arandombi@user/arandombit)
2025-09-26 10:26:12 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-09-26 10:48:58 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-09-26 10:48:58 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-09-26 10:53:57 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-09-26 10:58:15 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
2025-09-26 11:00:26 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-09-26 11:02:55 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 240 seconds)
2025-09-26 11:04:05 × Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed)
2025-09-26 11:05:50 <[exa]> is there some good way/approach/systematization to "combine" errors? E.g. I have 2 parts of a program, one fails in a way that looks like a retry would help, another fails in a way that suggests reconfiguration is needed. I want them to somehow automagically combine so that other parts of the program may derive e.g. if they should retry or contact admins instead
2025-09-26 11:05:57 <[exa]> maybe s/errors/recommendations/ at this point
2025-09-26 11:06:37 <[exa]> and well ofc if there was a good functional way to model that, it would be <3 :)
2025-09-26 11:08:31 <tomsmeding> [exa]: Validation?
2025-09-26 11:08:53 <tomsmeding> @hackage validation
2025-09-26 11:08:53 <lambdabot> https://hackage.haskell.org/package/validation
2025-09-26 11:09:20 <tomsmeding> i.e. just Either but with no Monad instance, and an Applicative instance that proceeds and collects all errors instead of stopping
2025-09-26 11:09:43 <[exa]> yeah well validation collects the errors into a semigroup (that's good) but I was kinda asking more about how to structure (and interpret) that semigroup
2025-09-26 11:09:49 wootehfoot joins (~wootehfoo@user/wootehfoot)
2025-09-26 11:10:13 <tomsmeding> data Error = RetryNeeded | ReconfigNeeded; type Errors = [Error]
2025-09-26 11:10:28 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-26 11:10:34 <tomsmeding> perhaps instead data Error = RetryNeeded | ReconfigNeeded deriving (Eq, Ord); type Errors = Set Error
2025-09-26 11:10:55 <[exa]> yeah that way I could do a maximum on that and just go with what's worst
2025-09-26 11:10:56 × trickard quits (~trickard@cpe-50-98-47-163.wireline.com.au) (Ping timeout: 240 seconds)
2025-09-26 11:11:07 <haskellbridge> <sm> [exa] I think that gets pretty complicated and a more sequential / prioritised handling of single errors can be more practical
2025-09-26 11:11:39 <tomsmeding> if you just want the maximum, type Errors = Data.Monoid.Max Error
2025-09-26 11:11:41 trickard_ joins (~trickard@cpe-50-98-47-163.wireline.com.au)
2025-09-26 11:11:46 <[exa]> yeah I got to a situation where handing the error combinations by one is a bit to much
2025-09-26 11:11:54 <[exa]> so kinda scanning for possibilities
2025-09-26 11:12:54 <haskellbridge> <sm> if you can meaningfully collect and list them all, that could be another approach
2025-09-26 11:13:39 <tomsmeding> if your errors are not linearly ordered then I wonder if there's some clever kind of lattice-based deduplication algorithm you could run on the Set Error :p
2025-09-26 11:13:45 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2025-09-26 11:15:05 L29Ah joins (~L29Ah@wikipedia/L29Ah)
2025-09-26 11:15:12 <[exa]> hm lattice
2025-09-26 11:15:12 <tomsmeding> if you want more detail you can either add fields to the RetryNeeded/ReconfigNeeded constructors, or instead transpose the thing and have `data Error` be the long sum type of actual fine-grained errors, and have `isRetryNeeded :: Error -> Bool` and `isReconfigNeeded :: Error -> Bool`
2025-09-26 11:15:22 <tomsmeding> lattice ~ partial order in my mind

All times are in UTC.