2025/12/02

2025-12-02 00:01:06 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-02 00:01:19 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-02 00:09:28 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 00:11:00 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-02 00:11:16 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-02 00:13:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 00:13:36 +0100tromp(~textual@2001:1c00:3487:1b00:9c00:2cdd:fe3f:e613) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-02 00:19:15 +0100Anarchos(~Anarchos@91-161-254-16.subs.proxad.net) Anarchos
2025-12-02 00:24:09 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2025-12-02 00:24:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 00:28:34 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-12-02 00:29:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-02 00:33:55 +0100Tuplanolla(~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Ping timeout: 240 seconds)
2025-12-02 00:34:19 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-12-02 00:40:14 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 00:41:01 +0100trickard_trickard
2025-12-02 00:44:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 00:55:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 00:56:55 +0100mreh(~matthew@host86-146-25-125.range86-146.btcentralplus.com) (Read error: Connection reset by peer)
2025-12-02 01:00:39 +0100Anarchos(~Anarchos@91-161-254-16.subs.proxad.net) (Remote host closed the connection)
2025-12-02 01:02:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-02 01:09:39 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 244 seconds)
2025-12-02 01:13:38 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 01:18:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-02 01:19:36 +0100xff0x(~xff0x@2405:6580:b080:900:b802:6ec:1472:e908) (Ping timeout: 252 seconds)
2025-12-02 01:20:21 +0100xff0x(~xff0x@2405:6580:b080:900:1046:a27d:1c08:c893)
2025-12-02 01:20:45 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 245 seconds)
2025-12-02 01:21:09 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-02 01:27:55 +0100pavonia(~user@user/siracusa) (Ping timeout: 240 seconds)
2025-12-02 01:29:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 01:33:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 01:33:26 +0100pavonia(~user@user/siracusa) siracusa
2025-12-02 01:39:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 01:40:00 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-02 01:40:13 +0100Anarchos(~Anarchos@91-161-254-16.subs.proxad.net) Anarchos
2025-12-02 01:41:26 +0100yin(~zero@user/zero) (Remote host closed the connection)
2025-12-02 01:43:18 +0100yin(~zero@user/zero) zero
2025-12-02 01:44:38 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-02 01:52:14 +0100xff0x(~xff0x@2405:6580:b080:900:1046:a27d:1c08:c893) (Ping timeout: 260 seconds)
2025-12-02 01:52:47 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) szkl
2025-12-02 01:54:39 +0100user363627(~user@user/user363627) user363627
2025-12-02 01:55:11 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 01:57:25 +0100weary-traveler(~user@user/user363627) (Ping timeout: 245 seconds)
2025-12-02 01:59:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 02:10:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 02:14:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-02 02:21:10 +0100omidmash2(~omidmash@user/omidmash) omidmash
2025-12-02 02:23:01 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 244 seconds)
2025-12-02 02:23:01 +0100omidmash2omidmash
2025-12-02 02:25:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 02:30:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-02 02:32:59 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-02 02:35:18 +0100ttybitnik(~ttybitnik@user/wolper) (Quit: Fading out...)
2025-12-02 02:36:10 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2025-12-02 02:40:46 +0100Googulator60(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 02:40:54 +0100Googulator60(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 02:41:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 02:45:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 02:54:31 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-12-02 02:56:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 03:01:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-02 03:10:49 +0100Googulator68(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 03:11:17 +0100Googulator60(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 03:11:44 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 03:12:07 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 03:12:14 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 03:16:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 03:25:34 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 260 seconds)
2025-12-02 03:25:46 +0100Anarchos(~Anarchos@91-161-254-16.subs.proxad.net) (Quit: Vision[]: i've been blurred!)
2025-12-02 03:27:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 03:32:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-02 03:40:32 +0100Square(~Square@user/square) Square
2025-12-02 03:40:40 +0100Googulator68(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 03:40:45 +0100Googulator45(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 03:43:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 03:45:37 +0100Googulator45(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Client Quit)
2025-12-02 03:45:54 +0100Googulator45(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 03:49:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-02 03:50:44 +0100dhs(~dhs@user/dhscholb) dhscholb
2025-12-02 03:58:03 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2025-12-02 04:00:50 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-02 04:01:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 04:02:02 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2025-12-02 04:05:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-12-02 04:06:01 +0100pabs3(~pabs3@user/pabs3) (Ping timeout: 250 seconds)
2025-12-02 04:06:51 +0100pabs3(~pabs3@user/pabs3) pabs3
2025-12-02 04:08:46 +0100sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2025-12-02 04:09:35 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds)
2025-12-02 04:09:51 +0100sefidel(~sefidel@user/sefidel) sefidel
2025-12-02 04:10:42 +0100Googulator45(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 04:10:49 +0100Googulator66(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 04:16:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 04:20:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 04:22:27 +0100spew(~spew@user/spew) spew
2025-12-02 04:23:20 +0100mvk(~mvk@2607:fea8:5c9d:ee00::7e89) mvk
2025-12-02 04:23:20 +0100mvk(~mvk@2607:fea8:5c9d:ee00::7e89) (Client Quit)
2025-12-02 04:29:44 +0100td_(~td@i53870926.versanet.de) (Ping timeout: 240 seconds)
2025-12-02 04:31:38 +0100td_(~td@i53870902.versanet.de)
2025-12-02 04:31:48 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 04:36:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-02 04:38:59 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-02 04:40:42 +0100Googulator66(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 04:40:46 +0100Googulator5(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 04:47:11 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 04:50:28 +0100omidmash(~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
2025-12-02 04:51:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-02 04:51:55 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 244 seconds)
2025-12-02 04:54:58 +0100omidmash(~omidmash@user/omidmash) omidmash
2025-12-02 05:00:43 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-02 05:01:30 +0100hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw
2025-12-02 05:02:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 05:06:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 05:18:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 05:20:38 +0100Googulator5(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 05:20:45 +0100Googulator70(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 05:22:52 +0100hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Remote host closed the connection)
2025-12-02 05:23:12 +0100hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw
2025-12-02 05:24:14 +0100spew(~spew@user/spew) (Quit: nyaa~)
2025-12-02 05:24:54 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-02 05:31:09 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 05:35:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 05:37:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 05:41:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 05:50:28 +0100Googulator70(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 05:50:39 +0100Googulator70(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 05:52:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 05:54:02 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 05:56:42 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 05:57:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-02 06:02:04 +0100Guest5(~Guest5@c-67-164-2-23.hsd1.ca.comcast.net)
2025-12-02 06:02:21 +0100Guest5(~Guest5@c-67-164-2-23.hsd1.ca.comcast.net) (Client Quit)
2025-12-02 06:02:35 +0100iqubic(~sophia@2601:602:9203:1660:dd83:8e66:bfcb:8c1e) iqubic
2025-12-02 06:04:40 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 246 seconds)
2025-12-02 06:06:42 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-12-02 06:06:55 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 250 seconds)
2025-12-02 06:08:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 06:12:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 06:13:51 +0100trickard_trickard
2025-12-02 06:19:04 +0100karenw(~karenw@user/karenw) karenw
2025-12-02 06:23:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 06:27:05 +0100 <Leary> zoil: Let me quote myself: "There is a kind-of workaround for `Read`-like cases by taking a singleton as a constraint and matching on it, but then you have to supply that singleton constraint everywhere instead."
2025-12-02 06:27:29 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 06:27:42 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 06:28:08 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-02 06:29:52 +0100 <Leary> However, if you have multiple such cases, the same singleton constraint will cover all of them. Further, these constraints often useful in and of themselves.
2025-12-02 06:30:42 +0100 <Leary> are often*
2025-12-02 06:31:05 +0100trickard_trickard
2025-12-02 06:39:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 06:43:21 +0100michalz(~michalz@185.246.207.221)
2025-12-02 06:43:36 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-12-02 06:44:02 +0100Square2(~Square4@user/square) Square
2025-12-02 06:46:55 +0100Square(~Square@user/square) (Ping timeout: 240 seconds)
2025-12-02 06:54:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 06:55:42 +0100 <iqubic> Um... This is a strange LSP error. It looks like applying hlint code refactoring doesn't work on GHC 9.10
2025-12-02 06:55:47 +0100 <iqubic> 2025-12-02T05:54:01.159312Z | Error | hlint: Internal Error: Exception in plugin PluginId "hlint" while processing SMethod_CodeActionResolve: Cannot apply refactoring: apply-refact does not work on GHC 9.10
2025-12-02 06:57:00 +0100 <iqubic> And now my LSP just exited!
2025-12-02 06:58:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 07:00:14 +0100 <iqubic> https://dpaste.alwaysdata.org/2T0oxtWG
2025-12-02 07:00:53 +0100 <iqubic> I'm not sure if any of you know enough about the Haskell LSP to help me here.
2025-12-02 07:07:04 +0100takuan(~takuan@d8D86B9E9.access.telenet.be)
2025-12-02 07:09:59 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 07:12:06 +0100 <iqubic> From what I can tell, this seems to be an issue with HLint, GHC 9.10.3, and NixOS.
2025-12-02 07:12:13 +0100 <iqubic> https://github.com/haskell/haskell-language-server/issues/4674
2025-12-02 07:13:15 +0100haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-12-02 07:14:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-02 07:22:08 +0100bliminse(~bliminse@user/bliminse) (Quit: leaving)
2025-12-02 07:24:05 +0100bliminse(~bliminse@user/bliminse) bliminse
2025-12-02 07:25:22 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 07:29:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-02 07:38:30 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 07:42:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-02 07:44:30 +0100divlamir_(~divlamir@user/divlamir) divlamir
2025-12-02 07:45:07 +0100divlamir(~divlamir@user/divlamir) (Ping timeout: 246 seconds)
2025-12-02 07:45:28 +0100divlamir_divlamir
2025-12-02 07:50:44 +0100Googulator70(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 07:50:52 +0100Googulator29(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 07:53:20 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2025-12-02 07:53:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 07:58:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-02 08:04:31 +0100X-Scale(~ARM@6.67.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds)
2025-12-02 08:09:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 08:12:15 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-02 08:12:40 +0100tromp(~textual@2001:1c00:3487:1b00:4073:6a24:b181:8b56)
2025-12-02 08:16:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-02 08:16:12 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2025-12-02 08:16:28 +0100chexum(~quassel@gateway/tor-sasl/chexum) chexum
2025-12-02 08:19:30 +0100annamalai(~annamalai@2409:4042:4dc2:f11::9e8a:e814) (Remote host closed the connection)
2025-12-02 08:20:43 +0100Googulator29(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 08:20:50 +0100Googulator29(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 08:22:14 +0100annamalai(~annamalai@157.32.222.111) annamalai
2025-12-02 08:23:09 +0100annamalai(~annamalai@157.32.222.111) (Remote host closed the connection)
2025-12-02 08:23:40 +0100annamalai(~annamalai@157.32.222.111) annamalai
2025-12-02 08:27:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 08:27:50 +0100annamalai(~annamalai@157.32.222.111) (Ping timeout: 245 seconds)
2025-12-02 08:29:42 +0100hc(~hc@mail.hce.li) (Remote host closed the connection)
2025-12-02 08:31:30 +0100annamalai(~annamalai@157.32.222.111) annamalai
2025-12-02 08:31:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-12-02 08:32:50 +0100vgtw(~vgtw@user/vgtw) (Ping timeout: 245 seconds)
2025-12-02 08:34:44 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Ping timeout: 272 seconds)
2025-12-02 08:36:30 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-02 08:39:01 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-02 08:39:30 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 08:41:19 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 244 seconds)
2025-12-02 08:41:34 +0100hc(~hc@mail.hce.li) hc
2025-12-02 08:42:55 +0100Pixi(~Pixi@user/pixi) (Ping timeout: 240 seconds)
2025-12-02 08:44:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-02 08:44:28 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2025-12-02 08:45:47 +0100Pixi(~Pixi@user/pixi) Pixi
2025-12-02 08:50:43 +0100Googulator29(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 08:50:49 +0100Googulator32(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 08:51:05 +0100hc(~hc@mail.hce.li) (Remote host closed the connection)
2025-12-02 08:51:43 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-02 08:51:55 +0100hc(~hc@mail.hce.li) hc
2025-12-02 08:55:50 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-02 08:56:02 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-12-02 08:56:40 +0100annamalai(~annamalai@157.32.222.111) (Remote host closed the connection)
2025-12-02 08:57:12 +0100annamalai(~annamalai@157.32.222.111) annamalai
2025-12-02 09:00:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-02 09:20:35 +0100Googulator32(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 09:20:42 +0100Googulator22(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 09:23:52 +0100YouDontKnowMe(~YouDontKn@2a06:3040:11:610::d101)
2025-12-02 09:26:12 +0100YouDontKnowMe(~YouDontKn@2a06:3040:11:610::d101) (Client Quit)
2025-12-02 09:26:38 +0100karenw(~karenw@user/karenw) (Ping timeout: 260 seconds)
2025-12-02 09:34:40 +0100 <lucabtz> there is no string splitting in base?
2025-12-02 09:39:34 +0100DetourNetworkUK(~DetourNet@user/DetourNetworkUK) (Ping timeout: 246 seconds)
2025-12-02 09:41:06 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 09:41:19 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 09:41:56 +0100 <Rembane> lucabtz: There's span and break and partition and take and drop and takeWhile and dropWhile
2025-12-02 09:43:45 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Remote host closed the connection)
2025-12-02 09:44:22 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 256 seconds)
2025-12-02 09:50:10 +0100 <dminuoso> 21:18:59 tomsmeding │ it seems the theme of today is "words mean different things to different people"
2025-12-02 09:50:42 +0100Googulator31(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 09:50:43 +0100Googulator22(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 09:50:47 +0100 <dminuoso> Human language is messy, imprecise and under constant change.
2025-12-02 09:51:56 +0100 <dminuoso> Heck, if you just go through pure math publications, you see so many conflicting notation styles or conflicting terminology choices... its best to not dwell on what people call things and just be able to adjust your reference frame in a discussion...
2025-12-02 09:52:20 +0100 <dminuoso> Especially when its people from different fields/languages/paradigms...
2025-12-02 09:55:39 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-02 10:02:54 +0100 <lucabtz> Rembane yeah i made one with takeWhile and dropWhile
2025-12-02 10:03:54 +0100fp1(~Thunderbi@2001:708:20:1406::1370) fp
2025-12-02 10:04:46 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 256 seconds)
2025-12-02 10:04:59 +0100Inline(~inlinE@2001-4dd3-7fc8-0-2be-fec0-ba58-7d11.ipv6dyn.netcologne.de) (Remote host closed the connection)
2025-12-02 10:05:18 +0100Inline(~inlinE@2001-4dd3-7fc8-0-2be-fec0-ba58-7d11.ipv6dyn.netcologne.de) Inline
2025-12-02 10:05:31 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-12-02 10:09:30 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-12-02 10:10:02 +0100dhs(~dhs@user/dhscholb) ()
2025-12-02 10:10:37 +0100 <chromoblob> dminuoso: mind sharing which IRC client you use? interesting
2025-12-02 10:14:45 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-02 10:17:25 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 10:17:39 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 10:20:43 +0100Googulator31(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 10:20:45 +0100Googulator22(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 10:21:23 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-12-02 10:23:39 +0100kuribas(~user@2a02:1808:d1:d243:9821:bd8c:f208:7dc) kuribas
2025-12-02 10:24:49 +0100 <kuribas> Funny how haskell makes easy things harder sometimes. I have a list of items, and I need to produce another list, but flatten it (so like a list monad). But I also want to have some state variable.
2025-12-02 10:25:23 +0100 <Lycurgus> wrong lang 4 state
2025-12-02 10:25:37 +0100 <Lycurgus> easy state anywho
2025-12-02 10:25:39 +0100 <merijn> kuribas: That just sounds like scanl + flatten?
2025-12-02 10:25:52 +0100 <kuribas> So I could: 1) use traverse on the list, using an inner state monad, then flatten. 2) make a list and state monad. 3) do an explicit tail recursive loop.
2025-12-02 10:25:55 +0100chele(~chele@user/chele) chele
2025-12-02 10:26:08 +0100 <kuribas> :t scanl
2025-12-02 10:26:09 +0100 <Lycurgus> state u dont even think about hardly
2025-12-02 10:26:10 +0100 <lambdabot> (b -> a -> b) -> b -> [a] -> [b]
2025-12-02 10:26:54 +0100 <kuribas> Concretely, I want to generate some SQL query, but I need to generate aliases for tables, like alias1, alias2 (the state).
2025-12-02 10:27:17 +0100 <Axman6> or mapAccumL/R
2025-12-02 10:27:46 +0100 <kuribas> Funny, one of my colleages went to university in Glasgow, she never did haskell because it was to complicated...
2025-12-02 10:27:53 +0100 <kuribas> But she is doing clojure now.
2025-12-02 10:29:10 +0100DetourNetworkUK(DetourNetw@user/DetourNetworkUK) DetourNetworkUK
2025-12-02 10:32:02 +0100 <sprout> I just wrote a foldl_with_state in Egel
2025-12-02 10:32:09 +0100 <sprout> not everything has to be a monad
2025-12-02 10:32:20 +0100 <Axman6> that definitely sounds like mapAccumL to me ...
2025-12-02 10:32:23 +0100 <Axman6> :t mapAccumL
2025-12-02 10:32:25 +0100 <lambdabot> Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b)
2025-12-02 10:32:34 +0100kuribas(~user@2a02:1808:d1:d243:9821:bd8c:f208:7dc) (Ping timeout: 260 seconds)
2025-12-02 10:33:11 +0100 <Lycurgus> hs is a wonderment in that it managed to become quite practically while going full on ivory tower dont give a damn if u think it's a ball breaker
2025-12-02 10:33:22 +0100 <Lycurgus> *quite practical
2025-12-02 10:34:07 +0100 <dminuoso> chromoblob: Weechat.
2025-12-02 10:34:22 +0100 <lucabtz> i ended up doing like this Rembane https://paste.tomsmeding.com/gp5xEGzv
2025-12-02 10:34:37 +0100 <Lycurgus> the type sig circle jerks being a prime epiphenomon of that
2025-12-02 10:34:47 +0100 <sprout> Axman6: yah, that must be the same thing
2025-12-02 10:35:49 +0100DetourNetworkUK(DetourNetw@user/DetourNetworkUK) (Read error: Connection reset by peer)
2025-12-02 10:36:49 +0100DetourNetworkUK(DetourNetw@user/DetourNetworkUK) DetourNetworkUK
2025-12-02 10:38:08 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2025-12-02 10:39:14 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-02 10:49:29 +0100vgtw(~vgtw@user/vgtw) vgtw
2025-12-02 10:50:47 +0100Googulator26(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 10:50:47 +0100Googulator22(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 10:55:08 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2025-12-02 10:55:42 +0100 <kuribas> :t mapAccumL
2025-12-02 10:55:43 +0100 <lambdabot> Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b)
2025-12-02 10:56:23 +0100 <kuribas> I can make a transformer, but "StateT [] s a" would not work, as it trows away state.
2025-12-02 10:56:41 +0100 <kuribas> Maybe ListT done right: ListT (State s) a
2025-12-02 10:58:15 +0100vgtw(~vgtw@user/vgtw) (Ping timeout: 240 seconds)
2025-12-02 10:58:56 +0100 <kuribas> or easier : concat $ runState $ traverse (state $ \s -> [...]) l
2025-12-02 10:59:26 +0100vgtw(~vgtw@user/vgtw) vgtw
2025-12-02 11:03:06 +0100 <kuribas> :t ListT
2025-12-02 11:03:08 +0100 <lambdabot> error: [GHC-88464]
2025-12-02 11:03:08 +0100 <lambdabot> Data constructor not in scope: ListT
2025-12-02 11:03:08 +0100 <lambdabot> Suggested fix: Perhaps use ‘List’ (imported from Control.Lens)
2025-12-02 11:03:42 +0100fp1(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds)
2025-12-02 11:06:23 +0100 <kuribas> :t \f l -> concat $ flip runState 1 $ traverse (State . f) l
2025-12-02 11:06:25 +0100 <lambdabot> error: [GHC-01928]
2025-12-02 11:06:25 +0100 <lambdabot> • Illegal term-level use of the type constructor ‘State’
2025-12-02 11:06:25 +0100 <lambdabot> • imported from ‘Control.Monad.State’ at /home/lambda/.lambdabot/State/L.hs:65:1-26
2025-12-02 11:07:27 +0100 <kuribas> lambdabot: It's a type synonym ...
2025-12-02 11:08:38 +0100comerijn(~merijn@77.242.116.146) merijn
2025-12-02 11:10:13 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-12-02 11:10:55 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2025-12-02 11:11:47 +0100 <kuribas> Isn't ListT done right a logic monad?
2025-12-02 11:12:04 +0100kritzefitz(~kritzefit@debian/kritzefitz) ()
2025-12-02 11:12:40 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-02 11:13:45 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-02 11:14:27 +0100 <tomsmeding> :t \f l -> concat $ flip runState 1 $ traverse (state . f) l
2025-12-02 11:14:29 +0100 <lambdabot> (Traversable t, Num [a1]) => (a2 -> [a1] -> (b, [a1])) -> t a2 -> [a1]
2025-12-02 11:15:24 +0100 <kuribas> tomsmeding: https://hackage.haskell.org/package/mtl-2.3.1/docs/Control-Monad-State-Lazy.html#t:State
2025-12-02 11:15:46 +0100 <tomsmeding> oh your were complaining about "type constructor"
2025-12-02 11:15:56 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection)
2025-12-02 11:16:02 +0100 <kuribas> ah wait, it's StateT ...
2025-12-02 11:16:06 +0100 <kuribas> sorry...
2025-12-02 11:16:18 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-02 11:16:41 +0100 <kuribas> :t \f l -> concat $ flip runState 1 $ traverse (StateT . f) l
2025-12-02 11:16:42 +0100 <lambdabot> (Num [a1], Traversable t) => (a2 -> [a1] -> Identity (b, [a1])) -> t a2 -> [a1]
2025-12-02 11:16:44 +0100vgtw(~vgtw@user/vgtw) (Ping timeout: 244 seconds)
2025-12-02 11:16:58 +0100 <tomsmeding> kuribas: I don't see how ListT is relevant here, but then I don't really understand your usecase yet; ListT is for nondeterminism
2025-12-02 11:17:16 +0100 <tomsmeding> or "cartesian product of the possibilities"
2025-12-02 11:17:46 +0100 <kuribas> tomsmeding: I just wanted to use bind (>>=), but with a monad stack. Like a list comprehension with state.
2025-12-02 11:18:14 +0100 <tomsmeding> is it that you want to loop over a list with some state, and while doing so, generate values to be stored in a returned list at the end?
2025-12-02 11:18:14 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-02 11:18:24 +0100 <kuribas> yeah
2025-12-02 11:18:43 +0100 <tomsmeding> this? https://paste.tomsmeding.com/r70Fuwb3
2025-12-02 11:19:10 +0100 <kuribas> tomsmeding: yes :)
2025-12-02 11:19:21 +0100 <tomsmeding> instantiate m to State and roll
2025-12-02 11:20:06 +0100 <tomsmeding> note the swap because mapAccumL and runState do not agree on which part of the pair should go which way :p
2025-12-02 11:20:37 +0100Googulator26(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 11:20:47 +0100Googulator26(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 11:21:00 +0100vgtw(~vgtw@user/vgtw) vgtw
2025-12-02 11:22:13 +0100 <tomsmeding> uh, no, don't instantiate m to State
2025-12-02 11:22:21 +0100 <tomsmeding> the state is already there, lol
2025-12-02 11:22:45 +0100 <tomsmeding> anyway this is a function that I needed at some point and couldn't find in the standard libraries
2025-12-02 11:24:19 +0100 <kuribas> Another interesting solution would be to use coroutines, and have one routine for generating the tables aliases.
2025-12-02 11:24:34 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 246 seconds)
2025-12-02 11:24:43 +0100acidjnk(~acidjnk@p200300d6e71719443da791614ae70cbb.dip0.t-ipconnect.de) acidjnk
2025-12-02 11:24:45 +0100 <tomsmeding> and 'send out' the aliases to the coroutine via a channel?
2025-12-02 11:25:15 +0100 <kuribas> yes
2025-12-02 11:25:35 +0100 <kuribas> I just feel like all of this is more complicated than equivalent python.
2025-12-02 11:25:59 +0100 <tomsmeding> my knowledge of funny programming languages is not large enough to be able to point to which one, but I feel like there's a language where this would be the "neat" solution
2025-12-02 11:26:06 +0100 <tomsmeding> I don't think it's Haskell :p
2025-12-02 11:27:22 +0100vgtw(~vgtw@user/vgtw) (Ping timeout: 246 seconds)
2025-12-02 11:29:42 +0100 <kuribas> python would be something like this: https://gist.github.com/kuribas/bfeb96b35699d6a4f64b50f4732d62b9
2025-12-02 11:30:24 +0100vgtw(~vgtw@user/vgtw) vgtw
2025-12-02 11:30:56 +0100 <tomsmeding> I see you haven't been programming python recently with the syntax errors, but otherwise yes :p
2025-12-02 11:31:05 +0100 <tomsmeding> although the 'break' may be tricky
2025-12-02 11:31:18 +0100 <kuribas> actually I have
2025-12-02 11:31:31 +0100 <tomsmeding> (= instead of ==, elif instead of else if)
2025-12-02 11:31:38 +0100 <kuribas> elif is valid python
2025-12-02 11:31:42 +0100 <tomsmeding> is it?
2025-12-02 11:31:51 +0100 <tomsmeding> oh right
2025-12-02 11:32:04 +0100 <tomsmeding> then what's github's syntax highlighter up about
2025-12-02 11:32:15 +0100 <kuribas> I forgot a colon.
2025-12-02 11:32:23 +0100 <tomsmeding> oh
2025-12-02 11:37:15 +0100vgtw(~vgtw@user/vgtw) (Ping timeout: 240 seconds)
2025-12-02 11:37:35 +0100comerijn(~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2025-12-02 11:37:35 +0100vgtw(~vgtw@user/vgtw) vgtw
2025-12-02 11:38:39 +0100 <Leary> kuribas: How about `foldA :: (Foldable t, Applicative f, Monoid b) => (a -> f b) -> t a -> f b; foldA f = getAp . foldMap (Ap . f)`? `f` can be `State s`, `b` can be a list ...
2025-12-02 11:38:49 +0100 <Leary> Or flip the args and call it `forA`, even better.
2025-12-02 11:39:43 +0100tromp(~textual@2001:1c00:3487:1b00:4073:6a24:b181:8b56) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-02 11:40:19 +0100haritz(~hrtz@140.228.70.141)
2025-12-02 11:40:19 +0100haritz(~hrtz@140.228.70.141) (Changing host)
2025-12-02 11:40:19 +0100haritz(~hrtz@user/haritz) haritz
2025-12-02 11:42:46 +0100trickard_trickard
2025-12-02 11:44:25 +0100 <kuribas> foldmap?
2025-12-02 11:45:42 +0100 <Leary> Yes, `foldMap`. It sure doesn't sound like you need `traverse`.
2025-12-02 11:45:47 +0100dhil(~dhil@5.151.29.141) dhil
2025-12-02 11:46:02 +0100tromp(~textual@2001:1c00:3487:1b00:4073:6a24:b181:8b56)
2025-12-02 11:49:49 +0100 <kuribas> :t ala
2025-12-02 11:49:51 +0100 <lambdabot> (Functor f, Rewrapping s t) => (Unwrapped s -> s) -> ((Unwrapped t -> t) -> f s) -> f (Unwrapped s)
2025-12-02 11:50:30 +0100 <kuribas> :t alaf Ap foldMap
2025-12-02 11:50:32 +0100 <lambdabot> k1} {a}. (Foldable t, Monoid (Ap g b)) => (a -> g b) -> t a -> g b
2025-12-02 11:50:34 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-02 11:50:50 +0100Googulator26(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 11:50:51 +0100Googulator56(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 11:51:46 +0100 <kuribas> :t alaf StateT traverse
2025-12-02 11:51:48 +0100 <lambdabot> (Traversable t, Monad m') => (a -> s' -> m' (a', s')) -> t a -> s' -> m' (t a', s')
2025-12-02 12:05:38 +0100 <kuribas> :t alaf state traverse
2025-12-02 12:05:40 +0100 <lambdabot> (Unwrapped (m (t b)) ~ (s -> (t b, s)), Rewrapped (m b) (m (t b)), Rewrapped (m (t b)) (m b), MonadState s m, Traversable t) => (a -> Unwrapped (m b)) -> t a -> Unwrapped (m (t b))
2025-12-02 12:06:53 +0100 <kuribas> I have a haskell script that I made for my own use. But there may be interest, though like not haskell :-(
2025-12-02 12:07:08 +0100 <kuribas> I could 1) dockerize it, 2) rewrite in python/clojure/...
2025-12-02 12:08:40 +0100energizer(~energizer@user/energizer) (Quit: ZNC 1.7.0+deb0+xenial1 - https://znc.in)
2025-12-02 12:10:22 +0100poscat0x04(~poscat@user/poscat) poscat
2025-12-02 12:11:02 +0100energizer(~energizer@user/energizer) energizer
2025-12-02 12:11:15 +0100poscat(~poscat@user/poscat) (Ping timeout: 240 seconds)
2025-12-02 12:11:36 +0100wbooze(~wbooze@cgn-195-14-217-157.nc.de) Inline
2025-12-02 12:15:32 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 12:15:47 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 12:16:40 +0100wbooze(~wbooze@cgn-195-14-217-157.nc.de) (Quit: Leaving)
2025-12-02 12:17:50 +0100wbooze(~wbooze@cgn-195-14-217-157.nc.de) Inline
2025-12-02 12:20:42 +0100Googulator56(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 12:20:49 +0100Googulator7(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 12:22:36 +0100xff0x(~xff0x@2405:6580:b080:900:b577:52ee:470:5943)
2025-12-02 12:27:25 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 245 seconds)
2025-12-02 12:35:24 +0100 <kuribas> Is there a corouting library that can allow you to take arbitrary routines as argument?
2025-12-02 12:35:45 +0100 <kuribas> Instead of "x <- await", "x <- await routineA".
2025-12-02 12:36:52 +0100ttybitnik(~ttybitnik@user/wolper) ttybitnik
2025-12-02 12:39:06 +0100 <kuribas> conduit can only await from a single source
2025-12-02 12:51:55 +0100 <kuribas> Maybe just a ST or IO monad, with Streamly or ListT stored into IORefs.
2025-12-02 12:54:52 +0100Inline(~inlinE@2001-4dd3-7fc8-0-2be-fec0-ba58-7d11.ipv6dyn.netcologne.de) (Ping timeout: 246 seconds)
2025-12-02 12:56:54 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-02 12:58:04 +0100DigitteknohippieDigit
2025-12-02 13:03:29 +0100Inline(~inlinE@2001-4dd3-7fc8-0-c092-91dd-c569-3f74.ipv6dyn.netcologne.de) Inline
2025-12-02 13:03:29 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 13:06:12 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 13:11:52 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-02 13:14:14 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 13:16:05 +0100confusedalex(~confuseda@user/confusedalex) (Remote host closed the connection)
2025-12-02 13:17:04 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 260 seconds)
2025-12-02 13:17:10 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 13:18:06 +0100comerijn(~merijn@77.242.116.146) merijn
2025-12-02 13:20:31 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 13:20:35 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2025-12-02 13:27:25 +0100tromp(~textual@2001:1c00:3487:1b00:4073:6a24:b181:8b56) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-02 13:27:28 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 13:29:55 +0100comerijn(~merijn@77.242.116.146) (Ping timeout: 245 seconds)
2025-12-02 13:29:56 +0100 <[exa]> kuribas: what do you mean with arbitrary
2025-12-02 13:32:38 +0100 <[exa]> ah like, choose what routine to wait for at a given point
2025-12-02 13:34:49 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 13:35:27 +0100 <[exa]> seems like conduit really can't, there's no space for that in the data structure... https://hackage-content.haskell.org/package/conduit-1.3.6.1/docs/src/Data.Conduit.Internal.Pipe.ht…
2025-12-02 13:36:12 +0100 <[exa]> with Streaming this is pretty simple (you can unpack multiple sources yourself) but streaming is much less coroutine-ish
2025-12-02 13:37:40 +0100Inline(~inlinE@2001-4dd3-7fc8-0-c092-91dd-c569-3f74.ipv6dyn.netcologne.de) (Ping timeout: 265 seconds)
2025-12-02 13:38:06 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 13:39:29 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-02 13:48:00 +0100 <lucabtz> (spoiler advent of code) someone wants to comment my solution so i can improve https://paste.tomsmeding.com/0wThIO6g
2025-12-02 13:48:07 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2025-12-02 13:50:15 +0100AlexZenon(~alzenon@85.174.183.216) (Quit: ;-)
2025-12-02 13:51:37 +0100AlexNoo(~AlexNoo@85.174.183.216) (Quit: Leaving)
2025-12-02 13:54:20 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-02 13:55:42 +0100Anarchos(~Anarchos@91-161-254-16.subs.proxad.net) Anarchos
2025-12-02 13:56:10 +0100 <kuribas> [exa]: arbitrary number or types of streams.
2025-12-02 13:57:11 +0100 <kuribas> Now that I think of it (ListT IO) or (ListT (ST s)), stored in a IORef or STRef makes for an excelent coroutine.
2025-12-02 13:57:54 +0100 <[exa]> yeah, if you don't mind losing the safety net of the streaming library around it it's IMO quite the way to go
2025-12-02 13:58:52 +0100 <[exa]> anyway I did this recently with streaming (few days back in scrollback), it's essentially this idea, except without the unnecessary ioref
2025-12-02 13:59:58 +0100 <kuribas> [exa]: you mean exceptions?
2025-12-02 14:00:37 +0100 <[exa]> yeah partially exceptions and partially having to watch who's doing what with the global ioref
2025-12-02 14:01:40 +0100 <Rembane> lucabtz: I like that one! Nice!
2025-12-02 14:02:14 +0100 <lucabtz> Rembane thanks
2025-12-02 14:02:19 +0100 <lucabtz> part 2 is a bit slow
2025-12-02 14:02:40 +0100 <lucabtz> wait or you mean the split i posted earlier
2025-12-02 14:02:43 +0100 <[exa]> lucabtz: not sure how much I'd spoil here if I give hints... but have you considered pre-splitting the numbers on input and looking at them like at pairs of intervals?
2025-12-02 14:02:48 +0100 <Rembane> lucabtz: I meant the split! :)
2025-12-02 14:03:13 +0100 <[exa]> lucabtz: in which case you should be able to avoid scanning through the whole range
2025-12-02 14:03:19 +0100 <kuribas> [exa]: would bracket help?
2025-12-02 14:03:29 +0100 <[exa]> kuribas: probably
2025-12-02 14:03:34 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 14:03:45 +0100 <[exa]> kuribas: sec, I'll show a piece of code that does something similar with streaming
2025-12-02 14:03:47 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 14:04:27 +0100 <kuribas> Streaming, ListT and Streamly all look similar.
2025-12-02 14:04:36 +0100 <[exa]> kuribas: https://paste.tomsmeding.com/L7EFsnUc
2025-12-02 14:04:37 +0100 <kuribas> ListT seems simpler, while Streamly is focussed on performance.
2025-12-02 14:07:23 +0100 <[exa]> man, streamly is huge
2025-12-02 14:08:03 +0100Enrico63(~Enrico63@host-212-171-79-170.pool212171.interbusiness.it) Enrico63
2025-12-02 14:08:07 +0100X-Scale(~ARM@6.67.114.89.rev.vodafone.pt) X-Scale
2025-12-02 14:09:01 +0100 <lucabtz> Rembane thanks, i replace takeWhile and dropWhile with break which seemed more appropriate
2025-12-02 14:09:24 +0100 <Rembane> lucabtz: Yeah, and it should be faster, but I haven't measured.
2025-12-02 14:09:35 +0100trickard_trickard
2025-12-02 14:09:55 +0100 <lucabtz> i suppose it can do two operations at once right
2025-12-02 14:10:14 +0100 <[exa]> yeah it saves 1 list walk
2025-12-02 14:10:41 +0100 <lucabtz> [exa] im not sure exactly what you mean
2025-12-02 14:10:53 +0100 <[exa]> lucabtz: with the 1 list walk, or with the above hint?
2025-12-02 14:11:06 +0100 <lucabtz> no the hint, the list walk i understand
2025-12-02 14:11:40 +0100 <[exa]> okay so if I read the code right, you're taking all the numbers one by one, cut them in half and compare the halves, right?
2025-12-02 14:11:58 +0100 <lucabtz> yep
2025-12-02 14:12:10 +0100 <[exa]> <possible spoilers start>
2025-12-02 14:12:15 +0100 <lucabtz> i must say though the part cutting them in half is not slow
2025-12-02 14:12:26 +0100 <lucabtz> its the other part which is slow
2025-12-02 14:13:16 +0100 <lucabtz> tbh i havent measured but you have it basically instantly
2025-12-02 14:13:38 +0100 <lucabtz> if you want you can pm me to avoid the spoilers!
2025-12-02 14:13:45 +0100 <[exa]> ah ok
2025-12-02 14:17:02 +0100AlexNoo(~AlexNoo@85.174.183.216)
2025-12-02 14:18:03 +0100__monty__(~toonn@user/toonn) toonn
2025-12-02 14:20:13 +0100 <kuribas> [exa]: how does conduit take care of exceptions?
2025-12-02 14:21:21 +0100adamCS(~adamCS@70.19.85.77) (Remote host closed the connection)
2025-12-02 14:23:25 +0100 <[exa]> no clue tbh
2025-12-02 14:30:46 +0100AlexZenon(~alzenon@85.174.183.216)
2025-12-02 14:36:38 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-02 14:39:19 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-02 14:41:05 +0100adamCS(~adamCS@70.19.85.77) adamCS
2025-12-02 14:43:30 +0100 <ski> @type let mapAccumLM :: (Traversable t,Monad m) => (s -> a -> m (s,b)) -> s -> t a -> m (s,t b); mapAccumLM f s0 = fmap swap . flip runStateT s0 . traverse (StateT . (fmap swap .) . flip f) in mapAccumLM -- `mapAccumLM' ~= `traverse' on `StateT'
2025-12-02 14:43:33 +0100 <lambdabot> (Traversable t, Monad m) => (s -> a -> m (s, b)) -> s -> t a -> m (s, t b)
2025-12-02 14:54:07 +0100tromp(~textual@2001:1c00:3487:1b00:4073:6a24:b181:8b56)
2025-12-02 14:54:52 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no)
2025-12-02 14:57:09 +0100adamCS(~adamCS@70.19.85.77) (Remote host closed the connection)
2025-12-02 14:58:55 +0100adamCS(~adamCS@70.19.85.77) adamCS
2025-12-02 15:10:45 +0100Googulator7(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 15:10:51 +0100Googulator13(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-02 15:11:24 +0100tt123160(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) (Ping timeout: 260 seconds)
2025-12-02 15:18:22 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Remote host closed the connection)
2025-12-02 15:23:49 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2025-12-02 15:30:16 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 246 seconds)
2025-12-02 15:35:44 +0100user363627(~user@user/user363627) (Remote host closed the connection)
2025-12-02 15:40:33 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-02 15:43:07 +0100Googulator13(~Googulato@2a01-036d-0106-4ad8-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-02 15:47:26 +0100 <kuribas> There is something true about haskell making hard things easy, and easy things hard.
2025-12-02 15:49:45 +0100 <merijn> kuribas: conduit just assumes you use ResourceT
2025-12-02 15:49:52 +0100 <merijn> (for exception handling)
2025-12-02 15:50:43 +0100 <kuribas> merijn: So I can just use this over IO or ST ?
2025-12-02 15:52:11 +0100 <merijn> Generally you'd use `ResourceT IO` or similar as base for conduit
2025-12-02 15:53:19 +0100 <kuribas> I mean I can use this over ListT or Streamly
2025-12-02 15:54:31 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 255 seconds)
2025-12-02 16:00:59 +0100tt123160(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) tt1231
2025-12-02 16:09:31 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-12-02 16:10:36 +0100 <kuribas> tomsmeding: the ListT version would look something like this (untested) https://gist.github.com/kuribas/bfeb96b35699d6a4f64b50f4732d62b9
2025-12-02 16:13:18 +0100 <tomsmeding> kuribas: I don't see any ListT?
2025-12-02 16:13:24 +0100 <tomsmeding> oh
2025-12-02 16:14:07 +0100 <kuribas> tomsmeding: fromFoldable and fromList
2025-12-02 16:14:36 +0100 <kuribas> ah input should be "fromFoldable input"
2025-12-02 16:15:09 +0100 <tomsmeding> and where fromList is toList?
2025-12-02 16:15:10 +0100 <kuribas> hmm, missing a "lift".
2025-12-02 16:15:53 +0100 <kuribas> right, sorry...
2025-12-02 16:15:58 +0100 <tomsmeding> kuribas: are you sure you're not confusing ListT for a writer monad?
2025-12-02 16:16:56 +0100 <kuribas> tomsmeding: That would mean another monad in the stack, no?
2025-12-02 16:17:27 +0100 <tomsmeding> isn't what you are trying to do, outputting lists of things at various points in the computation, and then at the end you want the concatenated list of all of those?
2025-12-02 16:17:31 +0100 <tomsmeding> that's what a writer monad does
2025-12-02 16:17:34 +0100 <tomsmeding> that's not what ListT does
2025-12-02 16:18:20 +0100 <kuribas> I mean, this is concatMap, with effects, no?
2025-12-02 16:18:28 +0100 <tomsmeding> oh but the `col <- input` does do the mapping
2025-12-02 16:18:35 +0100 <tomsmeding> _right_
2025-12-02 16:18:37 +0100 <tomsmeding> okay I get it now
2025-12-02 16:18:45 +0100 <tomsmeding> please don't use ListT for this
2025-12-02 16:18:59 +0100 <tomsmeding> it creates entirely the wrong intuition for what you're trying to do
2025-12-02 16:19:12 +0100 <tomsmeding> :t concatMapM
2025-12-02 16:19:14 +0100 <lambdabot> error: [GHC-88464]
2025-12-02 16:19:14 +0100 <lambdabot> Variable not in scope: concatMapM
2025-12-02 16:19:14 +0100 <lambdabot> Suggested fix:
2025-12-02 16:19:32 +0100 <tomsmeding> meh it's not in base
2025-12-02 16:19:32 +0100 <kuribas> I suppose the mapAccumL is easier to understand.
2025-12-02 16:20:06 +0100 <tomsmeding> or execWriterT (mapM_ _ input) []
2025-12-02 16:20:44 +0100 <tomsmeding> the problem with writer is that it just <>'s your lists, and probably in the wrong order, so you're going to get O(n^2) behaviour
2025-12-02 16:20:57 +0100 <tomsmeding> but DList or an Endo wrapper or something else can fix that
2025-12-02 16:21:04 +0100 <kuribas> yeah
2025-12-02 16:21:05 +0100 <merijn> There was an optimised writer somewhere too
2025-12-02 16:21:17 +0100 <tomsmeding> merijn: that's just for strictness, if you mean Control.Monad.Trans.Writer.CPS
2025-12-02 16:21:29 +0100 <tomsmeding> it still can't do better than just using <> on your things