2025/12/16

2025-12-16 00:01:15 +0000dolio(~dolio@130.44.140.168) dolio
2025-12-16 00:03:01 +0000dolio(~dolio@130.44.140.168) (Client Quit)
2025-12-16 00:03:47 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 00:09:04 +0000jmcantrell_jmcantrell
2025-12-16 00:14:36 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 00:15:08 +0000dolio(~dolio@130.44.140.168) dolio
2025-12-16 00:19:14 +0000itaipu(~itaipu@168.121.97.28) itaipu
2025-12-16 00:19:31 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 00:30:23 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 00:30:40 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-16 00:34:53 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Ping timeout: 244 seconds)
2025-12-16 00:35:10 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-16 00:35:23 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 00:36:00 +0000Googulator20(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 00:36:23 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 00:38:02 +0000ttybitnik(~ttybitnik@user/wolper) (Quit: Fading out...)
2025-12-16 00:46:11 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 00:55:36 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-16 01:04:20 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds)
2025-12-16 01:04:36 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 01:06:25 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 01:08:15 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds)
2025-12-16 01:08:55 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds)
2025-12-16 01:10:31 +0000xff0x(~xff0x@2405:6580:b080:900:1f68:a6af:8023:736) (Ping timeout: 246 seconds)
2025-12-16 01:10:55 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 01:20:15 +0000Tuplanolla(~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Ping timeout: 240 seconds)
2025-12-16 01:22:01 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 01:24:40 +0000divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2025-12-16 01:24:52 +0000divlamir(~divlamir@user/divlamir) divlamir
2025-12-16 01:25:10 +0000somemathguy(~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1)
2025-12-16 01:25:23 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 01:26:43 +0000kodachi(~kodachi@198.105.112.55) (Quit: Leaving)
2025-12-16 01:27:25 +0000Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-12-16 01:28:49 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 01:29:03 +0000omidmash5(~omidmash@user/omidmash) omidmash
2025-12-16 01:30:28 +0000acidjnk(~acidjnk@p200300d6e7171911ece553fa3dd3d975.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2025-12-16 01:30:59 +0000omidmash(~omidmash@user/omidmash) (Ping timeout: 265 seconds)
2025-12-16 01:30:59 +0000omidmash5omidmash
2025-12-16 01:31:54 +0000spew(~spew@user/spew) (Ping timeout: 252 seconds)
2025-12-16 01:33:41 +0000somemathguy(~somemathg@user/somemathguy) somemathguy
2025-12-16 01:39:50 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 01:40:04 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 01:40:04 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 01:42:34 +0000DetourNe-(DetourNetw@user/DetourNetworkUK) DetourNetworkUK
2025-12-16 01:43:04 +0000DetourNetworkUK(~DetourNet@user/DetourNetworkUK) (Ping timeout: 246 seconds)
2025-12-16 01:44:50 +0000DetourNe-DetourNetworkUK
2025-12-16 01:45:20 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-12-16 01:46:10 +0000Square(~Square4@user/square) Square
2025-12-16 01:49:49 +0000Square2(~Square@user/square) (Ping timeout: 264 seconds)
2025-12-16 01:55:49 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 01:57:11 +0000Googulator20Googulator
2025-12-16 02:01:10 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 02:05:52 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 02:05:55 +0000Googulator73(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 02:10:25 +0000Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-12-16 02:11:57 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 02:16:08 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-12-16 02:16:34 +0000spew(~spew@user/spew) spew
2025-12-16 02:16:35 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 02:24:23 +0000spew(~spew@user/spew) (Ping timeout: 260 seconds)
2025-12-16 02:26:34 +0000spew(~spew@user/spew) spew
2025-12-16 02:27:45 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 02:33:01 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 02:35:47 +0000Googulator73(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 02:35:52 +0000Googulator11(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 02:40:13 +0000Googulator11Googulator
2025-12-16 02:43:33 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 02:48:07 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 02:59:18 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 03:05:19 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 246 seconds)
2025-12-16 03:05:45 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 03:05:49 +0000Googulator61(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 03:05:55 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 03:06:05 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 03:13:30 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
2025-12-16 03:15:33 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-12-16 03:15:43 +0000spew(~spew@user/spew) (Ping timeout: 260 seconds)
2025-12-16 03:16:18 +0000finsternis(~X@23.226.237.192) finsternis
2025-12-16 03:17:20 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 03:22:07 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-16 03:24:37 +0000hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Quit: Leaving)
2025-12-16 03:33:05 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 03:35:42 +0000Googulator61(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 03:35:47 +0000Googulator31(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 03:37:26 +0000Googulator31Googulator
2025-12-16 03:37:43 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 03:39:01 +0000hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw
2025-12-16 03:40:49 +0000td_(~td@i53870904.versanet.de) (Ping timeout: 264 seconds)
2025-12-16 03:42:05 +0000td_(~td@i53870911.versanet.de) td_
2025-12-16 03:48:54 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 03:49:57 +0000omidmash(~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
2025-12-16 03:52:20 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-16 03:52:28 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-16 03:53:35 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 03:54:19 +0000omidmash(~omidmash@user/omidmash) omidmash
2025-12-16 03:59:55 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds)
2025-12-16 04:00:47 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-16 04:03:19 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-16 04:03:46 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 04:04:40 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 04:06:24 +0000latticepolytope(~user@user/isekaijin) (Quit: bbl)
2025-12-16 04:06:31 +0000somemathguy(~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1)
2025-12-16 04:08:25 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 264 seconds)
2025-12-16 04:09:02 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 04:09:37 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 04:11:33 +0000spew(~spew@user/spew) spew
2025-12-16 04:20:27 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 04:25:25 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2025-12-16 04:25:50 +0000Square(~Square4@user/square) (Ping timeout: 244 seconds)
2025-12-16 04:26:09 +0000vetkat(~vetkat@user/vetkat) (Read error: Connection reset by peer)
2025-12-16 04:26:31 +0000vetkat(~vetkat@user/vetkat) vetkat
2025-12-16 04:27:26 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-16 04:27:47 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-16 04:28:06 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 04:32:37 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 255 seconds)
2025-12-16 04:36:16 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 04:43:18 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-16 04:48:01 +0000haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-12-16 04:54:19 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 04:54:33 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 04:58:55 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 05:07:22 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-16 05:14:52 +0000spew(~spew@user/spew) (Quit: WeeChat 4.7.2)
2025-12-16 05:20:38 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-12-16 05:22:45 +0000weary-traveler(~user@user/user363627) user363627
2025-12-16 05:23:00 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 05:24:26 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 265 seconds)
2025-12-16 05:27:18 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-16 05:28:26 +0000jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.8.1)
2025-12-16 05:34:19 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-16 05:34:39 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 05:37:34 +0000mange(~mange@user/mange) (Quit: Zzz...)
2025-12-16 05:38:23 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 05:43:38 +0000michalz(~michalz@185.246.207.221)
2025-12-16 05:43:49 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 05:52:29 +0000 <chromoblob> and i was frustrated that you can't set $$ to less precedence than $
2025-12-16 05:54:12 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 05:58:05 +0000 <[exa]> lol.
2025-12-16 05:58:55 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 06:03:14 +0000 <[exa]> Is there a way to do something Selective-like with parsers that read a sequence length and then the sequence? roughly like: parseInt >>= \n -> replicateA n parseValue
2025-12-16 06:04:05 +0000 <[exa]> (or do we need Repetitive or something such for that)
2025-12-16 06:05:36 +0000Googulator88(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 06:05:49 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 06:10:00 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 06:16:49 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 06:21:07 +0000takuan(~takuan@d8D86B9E9.access.telenet.be)
2025-12-16 06:21:29 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2025-12-16 06:27:59 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 06:33:04 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-16 06:35:40 +0000Googulator52(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 06:37:21 +0000Googulator88(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 06:43:18 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-16 06:43:47 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 06:48:24 +0000ft(~ft@p4fc2ab42.dip0.t-ipconnect.de) (Quit: leaving)
2025-12-16 06:48:31 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 06:59:27 +0000tt12316072(~tt1231@75.185.104.199) tt1231
2025-12-16 06:59:34 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 07:00:22 +0000tt1231607(~tt1231@75.185.104.199) (Read error: Connection reset by peer)
2025-12-16 07:00:22 +0000tt12316072tt1231607
2025-12-16 07:00:40 +0000lbseale(~quassel@user/ep1ctetus) (Quit: No Ping reply in 180 seconds.)
2025-12-16 07:00:56 +0000lbseale(~quassel@user/ep1ctetus) ep1ctetus
2025-12-16 07:01:55 +0000myxos(~myxos@2001:579:8380:f20:bd90:58c1:9ba1:835a) myxokephale
2025-12-16 07:03:37 +0000Pixi(~Pixi@user/pixi) (Ping timeout: 264 seconds)
2025-12-16 07:03:53 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 07:04:07 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 07:04:15 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 07:04:56 +0000myxokephale(~myxos@2001:579:8380:f20:50ce:9e79:bbea:e21f) (Ping timeout: 256 seconds)
2025-12-16 07:05:42 +0000Googulator52(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 07:05:47 +0000Googulator90(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 07:06:37 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 07:08:32 +0000xstill_(xstill@fimu/xstill) (Quit: Ping timeout (120 seconds))
2025-12-16 07:11:15 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 07:11:53 +0000xstill_(xstill@fimu/xstill) xstill
2025-12-16 07:22:24 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 07:25:33 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2025-12-16 07:26:40 +0000Igloo(~ian@81.2.99.210) (Ping timeout: 244 seconds)
2025-12-16 07:27:43 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-16 07:34:00 +0000 <gentauro> quote: tomsmeding> gentauro: nice, very helpful error. -> I guess it was inevitable: https://github.com/NixOS/nixpkgs/commit/39e997304a220f5e80a097296fa07149344f0e15 (🤖 Generated with [Claude Code]) GG
2025-12-16 07:36:09 +0000 <gentauro> no wonder the "stable" NixOS channel keeps breaking https://status.nixos.org/. I guess that's the state of software development these days :(
2025-12-16 07:38:11 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 07:38:35 +0000Igloo(~ian@81.2.99.210)
2025-12-16 07:39:25 +0000Guest98(~Guest98@122.11.246.146)
2025-12-16 07:41:30 +0000ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-12-16 07:42:29 +0000skilikes `return' more
2025-12-16 07:42:37 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds)
2025-12-16 07:43:12 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 07:48:10 +0000Guest98(~Guest98@122.11.246.146) (Quit: Client closed)
2025-12-16 07:53:57 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 07:56:35 +0000tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 240 seconds)
2025-12-16 07:57:36 +0000fp(~Thunderbi@2001:708:20:1406::10c5) fp
2025-12-16 07:58:39 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 07:59:03 +0000tomboy64(~tomboy64@user/tomboy64) tomboy64
2025-12-16 07:59:05 +0000lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-16 07:59:14 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-16 08:07:38 +0000 <gentauro> ski: if related to `Monads` then `return` is the right keyword. If related to `Applicative`, `pure` is the right keyword
2025-12-16 08:07:38 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 08:12:31 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 08:15:40 +0000Googulator72(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 08:15:49 +0000Googulator90(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 08:17:45 +0000euphores(~SASL_euph@user/euphores) euphores
2025-12-16 08:22:30 +0000LainIwakura(~LainIwaku@user/LainIwakura) LainIwakura
2025-12-16 08:24:09 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-12-16 08:24:33 +0000Sgeo(~Sgeo@user/sgeo) Sgeo
2025-12-16 08:26:42 +0000sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-12-16 08:27:15 +0000weary-traveler(~user@user/user363627) (Ping timeout: 240 seconds)
2025-12-16 08:27:56 +0000weary-traveler(~user@user/user363627) user363627
2025-12-16 08:42:41 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 08:42:54 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 08:58:24 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 09:00:41 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 09:00:54 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 09:03:47 +0000fp1(~Thunderbi@dhcp-86-128.eduroam.aalto.fi) fp
2025-12-16 09:05:06 +0000fp(~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 252 seconds)
2025-12-16 09:05:10 +0000fp1fp
2025-12-16 09:05:17 +0000Googulator72Googulator
2025-12-16 09:06:33 +0000acidjnk(~acidjnk@p200300d6e71719974d985e7e473d8889.dip0.t-ipconnect.de) acidjnk
2025-12-16 09:10:49 +0000 <tomsmeding> gentauro: is it indeed that commit that breaks things for you?
2025-12-16 09:12:46 +0000 <tomsmeding> gentauro: also, if the problem is broken haskell packages, then that still doesn't explain why you get an error without any info
2025-12-16 09:15:07 +0000kuribas(~user@2a02:1808:41:7270:9839:ee7c:6379:63a8) kuribas
2025-12-16 09:15:38 +0000fp1(~Thunderbi@2001:708:20:1406::1370) fp
2025-12-16 09:15:42 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 09:15:43 +0000Googulator18(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 09:16:14 +0000fp(~Thunderbi@dhcp-86-128.eduroam.aalto.fi) (Ping timeout: 260 seconds)
2025-12-16 09:16:14 +0000fp1fp
2025-12-16 09:16:28 +0000chele(~chele@user/chele) chele
2025-12-16 09:18:18 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-12-16 09:18:40 +0000Googulator18Googulator
2025-12-16 09:24:01 +0000sp1ff(~user@2601:1c2:4c00:6820::c593) (Ping timeout: 246 seconds)
2025-12-16 09:28:36 +0000sp1ff(~user@2601:1c2:4c00:6820::c593) sp1ff
2025-12-16 09:30:48 +0000kuribas(~user@2a02:1808:41:7270:9839:ee7c:6379:63a8) (Ping timeout: 260 seconds)
2025-12-16 09:34:33 +0000fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 256 seconds)
2025-12-16 09:42:22 +0000 <gentauro> tomsmeding: jep xD
2025-12-16 09:44:49 +0000 <dminuoso> gentauro: I favour `pure` only, but I learned Haskell post AMPD.
2025-12-16 09:44:54 +0000 <dminuoso> s/AMPD/AMP/
2025-12-16 09:45:05 +0000 <gentauro> but truth to be told, I'm building from GIT (scratch), so I'm not really impacted by that issue. (they have made a simplex-chat-desktop heavy on the UI, but not the simplex-chat-cli, which is what I'm trying to do, but, if I can't build locally, pretty diff to make a pkg)
2025-12-16 09:45:56 +0000trickard_trickard
2025-12-16 09:46:19 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-16 09:47:49 +0000 <dminuoso> [exa]: No, that's precisely the upgrade you get from Monad over Applicative or Selective.
2025-12-16 09:48:12 +0000 <dminuoso> % :t (>>=>)
2025-12-16 09:48:12 +0000 <yahb2> <interactive>:1:1: error: [GHC-88464] ; Variable not in scope: >>=> ; Suggested fix: Perhaps use ‘>>=’ (imported from Prelude)
2025-12-16 09:48:17 +0000 <dminuoso> % :t (>>=)
2025-12-16 09:48:17 +0000 <yahb2> (>>=) :: Monad m => m a -> (a -> m b) -> m b
2025-12-16 09:48:51 +0000 <dminuoso> This describes precisely an effect that depends on the result of a previous effect.
2025-12-16 09:50:26 +0000 <dminuoso> [exa]: *If* your Int is bounded, in theory you could also describe it with Selective of course if you enumerate every possible number in your program.
2025-12-16 09:50:45 +0000 <dminuoso> I'll leave the decision up to you whether you should do that. :-)
2025-12-16 09:51:49 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2025-12-16 09:52:30 +0000 <gentauro> if you parse, lets say encoded bytes over the wire, where the length is encoded in varInt/zigZag/…, you MUST use `>>=` to parse length to ensure correct boundries with upcoming bytes?
2025-12-16 09:52:59 +0000 <gentauro> ex: list of strings
2025-12-16 09:53:09 +0000 <dminuoso> gentauro: I think you could do a kind of recursion trick parsing it with `select` perhaps.
2025-12-16 09:53:20 +0000 <dminuoso> But it would result in downright silly performance.
2025-12-16 09:53:38 +0000fp(~Thunderbi@130.233.70.102) fp
2025-12-16 09:53:41 +0000 <gentauro> makes sense
2025-12-16 09:54:07 +0000fp1(~Thunderbi@wireless-86-50-140-165.open.aalto.fi) fp
2025-12-16 09:55:07 +0000 <dminuoso> This should be a fun excercise, let me try this.
2025-12-16 09:55:30 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-12-16 09:56:30 +0000 <dminuoso> I think you should be able to write `>>= :: (Enum a, Selective f) => f a -> (a -> f b) -> f b`
2025-12-16 09:56:30 +0000chromoblob✌️ ski
2025-12-16 09:57:03 +0000poscat0x04(~poscat@user/poscat) (Remote host closed the connection)
2025-12-16 09:57:08 +0000 <dminuoso> Ah no, not quite.
2025-12-16 09:57:47 +0000 <dminuoso> `bindEither :: (Enum a, Selective f) => f (Either a b) -> (a -> f b) -> f b`
2025-12-16 09:57:49 +0000 <dminuoso> This.
2025-12-16 09:58:05 +0000fp(~Thunderbi@130.233.70.102) (Ping timeout: 250 seconds)
2025-12-16 09:58:07 +0000fp1(~Thunderbi@wireless-86-50-140-165.open.aalto.fi) (Ping timeout: 240 seconds)
2025-12-16 10:00:10 +0000poscat(~poscat@user/poscat) poscat
2025-12-16 10:04:41 +0000humasect_(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-16 10:04:52 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 10:06:28 +0000mangoiv(~mangoiv@user/mangoiv) mangoiv
2025-12-16 10:09:18 +0000humasect_(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 260 seconds)
2025-12-16 10:09:19 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2025-12-16 10:21:15 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 10:21:25 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 246 seconds)
2025-12-16 10:24:26 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-16 10:25:14 +0000trickard(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 10:25:27 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 10:25:35 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2025-12-16 10:28:59 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2025-12-16 10:28:59 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2025-12-16 10:28:59 +0000haritz(~hrtz@user/haritz) haritz
2025-12-16 10:31:20 +0000 <dutchie> I'm having trouble with quoting ghc-options in cabal files. In my .cabal I have: `ghc-options: -Wall -with-rtsopts="-N -I0"` but when I build, I get a warning `Warning: [misplaced-c-opt] Instead of 'ghc-options: -I0"' use 'include-dirs: 0"'` and then my program errors out complaining that the rts option `"-N` is unexpected
2025-12-16 10:31:34 +0000 <dutchie> how can i pass multiple flags to -with-rtsopts?
2025-12-16 10:31:48 +0000 <[exa]> dminuoso: Is that precisely the Monad jump though? I somehow felt that having the integers always finite would degrade the capabilities of the stuff a little (as in, you can't encode actual turing machine into that computation, right?)
2025-12-16 10:31:51 +0000 <tomsmeding> dutchie: you have to put the quotes around the entire thing
2025-12-16 10:31:57 +0000 <tomsmeding> "-with-rtsopts=-N -I0"
2025-12-16 10:32:14 +0000 <dutchie> ah i think that's about the only quotation mode i've not tried lol
2025-12-16 10:32:40 +0000 <dminuoso> [exa]: Like I said, in principle you could recurse over anything enumerable with something like `bindEither :: (Enum a, Selective f) => f (Either a b) -> (a -> f b) -> f b`, but it would result in terrible performance
2025-12-16 10:33:17 +0000 <dutchie> ty, that's sorted it
2025-12-16 10:33:39 +0000 <dminuoso> [exa]: So its not just about being finite, but being enumerable.
2025-12-16 10:33:45 +0000 <[exa]> dminuoso: yeah that is true, I'm more like searching for a theoretical argument
2025-12-16 10:34:51 +0000 <[exa]> as in, not "how to simulate this with selectives" but "how does this allow you to run an arbitrary monad"
2025-12-16 10:34:58 +0000 <dminuoso> [exa]: Selective gives you the power to branch. To find a number, you would have to essentially enumerate that branching until you arrive at a branch that matches that precise number/
2025-12-16 10:35:17 +0000 <dminuoso> [exa]: That is, you enumerate all possible numbers into a parser tree, and with `select` you can navigate one branch at a time.
2025-12-16 10:35:32 +0000 <dminuoso> This is not an arbitrary monad.
2025-12-16 10:35:35 +0000 <dminuoso> Monad is strictly more powerful.
2025-12-16 10:35:44 +0000 <[exa]> ah okay good
2025-12-16 10:35:54 +0000 <dminuoso> Monad can do it without having to enumerate.
2025-12-16 10:36:03 +0000 <dminuoso> So it works on things that are not enumerable.
2025-12-16 10:36:24 +0000 <[exa]> ahhhhhhhhh ok I think I get the whole problem now
2025-12-16 10:36:26 +0000 <[exa]> okay
2025-12-16 10:36:28 +0000 <[exa]> good
2025-12-16 10:36:30 +0000 <[exa]> thanks
2025-12-16 10:37:08 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 10:37:28 +0000 <[exa]> so if this would be a typeclass, it would make sense (not completely a Monad) but it would be more like an efficiency upgrade of Selectives for this exact case, not actual new functionality
2025-12-16 10:37:51 +0000 <dminuoso> [exa]: One good way to think about selective is to imagine that `Applicative` gives you a kind of diamond that acts "in parallel" (but I mean that in a reall loose sense), whereas `Selective` gives you a diamond that acts as a conditional branch .
2025-12-16 10:39:08 +0000 <dminuoso> [exa]: And no, not a separate typeclass
2025-12-16 10:39:24 +0000 <dminuoso> [exa]: The prescribed `bindEither` above should be writable.
2025-12-16 10:39:28 +0000 <dminuoso> With no extra typeclass
2025-12-16 10:39:54 +0000 <tomsmeding> I guess you can formulate it as: with Selective you can have branching on previously-computed values, but the whole branching tree must be known before seeing any values
2025-12-16 10:40:14 +0000 <[exa]> yeah, I wanted this more for the static analysis, the extra action would be somewhat of a kleene star, but you'd know exactly what you need to compute to know how many repetitions are there
2025-12-16 10:40:40 +0000 <tomsmeding> whereas with Monad, the branches can be decided on _after_ seeing values, which corresponds to a possibly infinite branching tree if you'dd need to specify it all statically
2025-12-16 10:40:49 +0000 <dminuoso> tomsmeding: Sure. And with `monad` the parse structure is potentially completely unknown, as it can depend on effect results.
2025-12-16 10:40:58 +0000 <dminuoso> % :t (>>=)
2025-12-16 10:40:59 +0000 <yahb2> (>>=) :: Monad m => m a -> (a -> m b) -> m b
2025-12-16 10:41:02 +0000 <dminuoso> It's literally baked into this type. :)
2025-12-16 10:41:07 +0000 <tomsmeding> yes :)
2025-12-16 10:41:43 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 264 seconds)
2025-12-16 10:41:58 +0000 <dminuoso> Of course, if we applied some black hole theory and cosmology, one could argue that all possible executions are enumeratable - the entropy of the visible universe is finite.
2025-12-16 10:42:03 +0000 <dminuoso> enumerable?
2025-12-16 10:42:10 +0000 <[exa]> I probably just want an actual marker there into the selective tree that tells me "this selection is numeric"
2025-12-16 10:42:33 +0000 <tomsmeding> and give an infinite list of branches?
2025-12-16 10:42:48 +0000 <dminuoso> Finiteness is a red herring.
2025-12-16 10:42:54 +0000 <dminuoso> It's just about enumerability I think?
2025-12-16 10:42:59 +0000 <tomsmeding> is Integer enumerable?
2025-12-16 10:43:09 +0000 <tomsmeding> (ignoring cosmology arguments)
2025-12-16 10:43:30 +0000 <dminuoso> `Enum Integer` is a thing
2025-12-16 10:44:06 +0000 <tomsmeding> but can you simulate `(>>=) @_ @Integer` with Selective?
2025-12-16 10:44:25 +0000 <tomsmeding> (you can simulate `(>>=) @_ @Bool` trivially using Either () ())
2025-12-16 10:44:48 +0000 <dminuoso> Im thinking that perhaps we need at least one bound, or some base case. Enum doesnt seem to have `zero :: Enum a => a`
2025-12-16 10:45:11 +0000 <tomsmeding> you can also simulate `(>>=) @_ @Int`, with a branching tree that has 2^64 leaves, and a cosmological computer
2025-12-16 10:45:18 +0000 <dminuoso> There is `toEnum :: Enum a => Int -> a` but Im not sure about its semantics
2025-12-16 10:45:30 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 10:45:42 +0000Googulator71(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 10:45:44 +0000 <dminuoso> tomsmeding: Even without cosmology arguments, it's very trivial to enumerate over all Integer?
2025-12-16 10:45:48 +0000 <dminuoso> Assuming infinite memory.
2025-12-16 10:45:55 +0000 <dminuoso> Integer is countable
2025-12-16 10:45:58 +0000 <tomsmeding> only if the selective functor itself is lazy, I guess?
2025-12-16 10:46:07 +0000 <tomsmeding> because the branching tree would be infinitely large
2025-12-16 10:46:14 +0000 <dminuoso> It just matters whether its countable.
2025-12-16 10:46:20 +0000 <dminuoso> Or does it?
2025-12-16 10:46:24 +0000 <tomsmeding> well everything is countable
2025-12-16 10:46:25 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 10:46:29 +0000 <dminuoso> Not everything is.
2025-12-16 10:46:34 +0000 <tomsmeding> in computer science, everything is
2025-12-16 10:47:45 +0000 <tomsmeding> so if the question is just whether the thing being branched on is countable, then the difference between Selective and Monad would only be one of performance and memory use
2025-12-16 10:48:03 +0000 <dminuoso> So this is an interesting question.
2025-12-16 10:48:16 +0000 <dminuoso> Is `Enum` the typeclass of things that are countable?
2025-12-16 10:48:21 +0000 <dminuoso> Is Rational Enum?
2025-12-16 10:48:38 +0000 <tomsmeding> Enum is nothing, essentially, as it has no sensible laws and the methods are nonsense too (can you only enumerate things that are Int-large?)
2025-12-16 10:49:23 +0000 <tomsmeding> no, because Rational is at least as large as Integer, and Integer is bigger than Int, and you must define fromEnum
2025-12-16 10:49:38 +0000 <tomsmeding> but that just shows that the Enum class is nonsense, not any kind of enumerability of Rational
2025-12-16 10:49:47 +0000 <tomsmeding> because Rational is very countable indeed
2025-12-16 10:49:53 +0000somemathguy(~somemathg@user/somemathguy) somemathguy
2025-12-16 10:50:22 +0000 <tomsmeding> (Enum is useful as a base for [..] syntax, but that's not under discussion here)
2025-12-16 10:52:09 +0000 <dminuoso> tomsmeding: I think Enum is in a weird state in that it feels like its *meant* to represent things that are countable, since the ability to enumerate seems to align with the mathematical notion of countability. But the [..] and relatedly fromEnum/toEnum make it a somewhat adhoc thing.
2025-12-16 10:52:25 +0000 <tomsmeding> right
2025-12-16 10:53:19 +0000 <tomsmeding> it's actually useful for [..] (apart from not being able to enumerate stuff that's bigger than Int, which is nonsense), and it's _almost_ useful for describing enumerability in general, but then falls short
2025-12-16 10:53:36 +0000 <tomsmeding> it's like Arrow with `arr`, except that Enum actually has some use still
2025-12-16 10:53:43 +0000 <dminuoso> So we would need a kind of `class Countable a => fromNat :: Natural -> a`
2025-12-16 10:54:07 +0000 <tomsmeding> I'd like a mapping in the other direction too with a law saying that they are inverses
2025-12-16 10:54:22 +0000 <haskellbridge> <loonycyborg> I don't see how it represents countability in mathematical sense
2025-12-16 10:54:22 +0000 <haskellbridge> <loonycyborg> it's merely prerequisite
2025-12-16 10:54:31 +0000 <haskellbridge> <loonycyborg> but there are many ways of counting the same thing
2025-12-16 10:54:47 +0000 <dminuoso> loonycyborg: The fromEnum/toEnum are really the same essence.
2025-12-16 10:55:01 +0000Googulator71Googulator
2025-12-16 10:55:01 +0000 <dminuoso> Except it's constrained to Int instead of Natural
2025-12-16 10:55:03 +0000 <haskellbridge> <loonycyborg> that is making a mapping of Thing -> Natural
2025-12-16 10:55:46 +0000 <tomsmeding> (another problem is that fromEnum and toEnum are not declared in the documentation to be inverses of each other, although we can reasonably say that they "obviously" must be)
2025-12-16 10:56:01 +0000 <dminuoso> Being countable really means a one-to-one mapping to ℕ
2025-12-16 10:56:27 +0000 <dminuoso> loonycyborg: It does not matter *how* you count it.
2025-12-16 10:56:38 +0000 <dminuoso> As long as you *can* provide any way to map to ℕ
2025-12-16 10:56:47 +0000 <haskellbridge> <loonycyborg> Enum represents only one way that is deemed useful for whatever reason
2025-12-16 10:58:03 +0000 <lucabtz> dminuoso: countable = finite or 1-1 mapping to N
2025-12-16 10:58:14 +0000 <tomsmeding> countable = injective mapping to N
2025-12-16 10:58:19 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 260 seconds)
2025-12-16 10:58:21 +0000 <lucabtz> if finite there is not 1-1 mapping with N, but still countable
2025-12-16 10:58:21 +0000 <dminuoso> Given that `toEnum, fromEnum` are the minimal methods, and `toEnum` is in principle derivable from `fromEnum`... the loose description in the Haskell report really implies that its something along the lines of Countability.
2025-12-16 10:58:43 +0000arandombit(~arandombi@user/arandombit) arandombit
2025-12-16 10:58:52 +0000 <dminuoso> lucabtz: Yes, Enum lacks the ability to talk about infinite sets.
2025-12-16 10:59:00 +0000 <merijn> and sparse sets
2025-12-16 10:59:14 +0000 <tomsmeding> merijn: we're talking about countability here, not usefulness
2025-12-16 10:59:32 +0000 <dminuoso> But that really goes into the line of "Haskell has Int in a lot of places where, morally, it should use Integer or Natural" instead.
2025-12-16 10:59:34 +0000 <lucabtz> tomsmeding: yeah i suppose dropping surjectivity is the same
2025-12-16 10:59:42 +0000 <dminuoso> The choice of `Int` in most places is because of history and performance.
2025-12-16 11:00:09 +0000 <dminuoso> So if we squint a bit, Enum is meant to be that Countable typeclass...
2025-12-16 11:01:11 +0000 <probie> and also reasonability, `(!!) :: [a] -> Integer -> a` doesn't gain you anything, because you don't have time to walk that very large list (nor enough memory unless it has a cycle)
2025-12-16 11:01:37 +0000 <tomsmeding> walking Int is also not particularly practical
2025-12-16 11:01:52 +0000 <tomsmeding> (on modern 64-bit machines)
2025-12-16 11:02:27 +0000 <dminuoso> probie: That's the other side of it. The [] structure is so pervasive because it both represents control flow *and* data. When its used for data, its a really poor fit because it results in terrible access patterns.
2025-12-16 11:02:52 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 11:02:56 +0000 <dminuoso> So on one hand we favour Int because its much faster due to direct mapping into machine registers, but then we drag those singly linked lists around everywhere.
2025-12-16 11:03:00 +0000 <dminuoso> A weird state we are in.
2025-12-16 11:03:06 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 11:03:29 +0000 <probie> but for Enum, it's quite possible to want `[a..b]` where `fromEnum a - fromEnum b` is small, but `fromEnum a` is bigger than int
2025-12-16 11:03:53 +0000 <dminuoso> probie: Given that `fromEnum/toEnum` are minimal, one could assume that they should not be partial.
2025-12-16 11:04:05 +0000 <dminuoso> But there's so many bottoms flying around in base...
2025-12-16 11:04:42 +0000 <probie> Sorry, I was unclear. I mean for things that "should" be `Enum`, if there weren't too many of them
2025-12-16 11:04:48 +0000 <dminuoso> At least for `fromEnum` an argument could be made that it should behave in a cyclic fashion.
2025-12-16 11:04:59 +0000 <dminuoso> Or no, I meant `toEnum`
2025-12-16 11:05:37 +0000 <haskellbridge> <magic_rb> Singly linked lists make sense in many cases due to laziness, but generally one should use vector yes
2025-12-16 11:06:37 +0000 <probie> as in `Integer` is genuinely a better chouce needed for {to,from}Enum in a way that isn't the case in other places `Int` is used instead (like `(!!)`)
2025-12-16 11:06:38 +0000 <merijn> magic_rb: I don't think "generally you should use vector" is right.
2025-12-16 11:06:51 +0000deptype(~deptype@2406:b400:3a:9d2f:476c:a58e:3471:ff37)
2025-12-16 11:06:53 +0000 <merijn> Don't get me wrong, Vector is *often* right, but I'm not sure I'd ever recommend defaulting to it
2025-12-16 11:07:01 +0000 <probie> Vector requires me to copy the whole thing to "change" a single element. This is often not desirable
2025-12-16 11:07:23 +0000 <dminuoso> I sometimes wish there was a kind of Vector/[] polymorphism, that I could myself decide what I want.
2025-12-16 11:07:29 +0000 <dminuoso> But something without typeclasses
2025-12-16 11:07:34 +0000 <merijn> probie: Vector doesn't always copy the whole thing, and also mutable Vector exists :)
2025-12-16 11:07:48 +0000 <dminuoso> What was that cabal feature along the lines of OCaml functors called again?
2025-12-16 11:07:51 +0000 <haskellbridge> <loonycyborg> in ST monad?
2025-12-16 11:07:51 +0000 <haskellbridge> <magic_rb> ^
2025-12-16 11:07:54 +0000 <merijn> dminuoso: backpack
2025-12-16 11:07:55 +0000 <probie> dminuoso: backpack
2025-12-16 11:07:57 +0000 <haskellbridge> <magic_rb> Yeah vector in ST
2025-12-16 11:08:03 +0000 <dminuoso> Right backpack.
2025-12-16 11:08:17 +0000 <merijn> loonycyborg: Vector has a bunch, there's ST, but also IO
2025-12-16 11:08:26 +0000 <merijn> Depending on your usecase
2025-12-16 11:08:30 +0000 <dminuoso> Yeah if via backpack I could just swap between vector or list for a given package that would be ideal.
2025-12-16 11:08:50 +0000 <dminuoso> Of course it's completely unreasonable for 2 major reasons.
2025-12-16 11:09:06 +0000 <merijn> tbh, I'm a big fan of "just thinking about your data type choices" :p
2025-12-16 11:09:07 +0000 <haskellbridge> <loonycyborg> But still it's procedural state, in haskell you'd want a persistent structure in general. Unless you wanna go all out for a hotspot.
2025-12-16 11:09:30 +0000 <merijn> Vector is very good for lots of things, and List good for lots of other things
2025-12-16 11:09:46 +0000 <dminuoso> merijn: For a library thats tought unless you like to duplicate interfaces. And with duplicated things you get the typical `toLazy/fromLazy` nonsense when passing text between library portions.
2025-12-16 11:10:13 +0000 <haskellbridge> <magic_rb> Generally List is fine if you dont care about performance and arent storing it around or traversing it in any other direction than linearly forward
2025-12-16 11:10:15 +0000 <probie> Vector is very good for lots of things, and GHC does some very heavy lifting to make List good for lots of other things :p
2025-12-16 11:10:42 +0000 <merijn> dminuoso: A library should use whatever's best for said library
2025-12-16 11:10:51 +0000 <merijn> especially since Vector.toList is super cheap
2025-12-16 11:11:06 +0000 <merijn> So someone wanting to pass a vector can easily convert to a list on demand
2025-12-16 11:12:54 +0000 <haskellbridge> <loonycyborg> There's also Seq, and Set and lots of other containers depending on your needs
2025-12-16 11:13:17 +0000 <probie> Let's just cut out the middle man and pass the fold `data List a = forall b . List ((a -> b -> b) -> b -> b)`
2025-12-16 11:13:24 +0000 <dminuoso> Maybe it depends a bit on your problem domain, but in one of our projects there's quite a bit of `pack/unpack`, `fromStrict/ToString` or even combinations going on.
2025-12-16 11:13:43 +0000 <dminuoso> There's just so much impedance mismatching going on when interfacing with more than one library at a time.
2025-12-16 11:13:54 +0000Pixi(~Pixi@user/pixi) Pixi
2025-12-16 11:14:00 +0000 <probie> (to clarify, my above statement is a joke, since that meets even fewer use cases than a list)
2025-12-16 11:14:03 +0000 <dminuoso> And those problems are exactly the same as the above vector/list problems.
2025-12-16 11:14:11 +0000 <haskellbridge> <magic_rb> Sounds to me like things need to get more generic :)
2025-12-16 11:14:31 +0000 <dminuoso> probie: Joke is on you, thats precisely what GHC does behind the scenes for you in a lot of places.
2025-12-16 11:15:21 +0000 <dminuoso> Its what the whole build/foldr fusion works.
2025-12-16 11:15:57 +0000 <dminuoso> Or is that what you were hinting at?
2025-12-16 11:18:48 +0000ljdarj(~Thunderbi@user/ljdarj) (Read error: Connection reset by peer)
2025-12-16 11:20:03 +0000xff0x(~xff0x@2405:6580:b080:900:4560:111e:4edd:d178)
2025-12-16 11:23:05 +0000wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-12-16 11:28:13 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 264 seconds)
2025-12-16 11:28:27 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2025-12-16 11:35:23 +0000trickard_trickard
2025-12-16 11:39:40 +0000Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds)
2025-12-16 11:40:11 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-16 11:40:49 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 11:40:56 +0000Maxdamantus(~Maxdamant@user/maxdamantus) Maxdamantus
2025-12-16 11:45:37 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 264 seconds)
2025-12-16 11:54:12 +0000bggd(~bgg@2a01:e0a:fd5:f510:fc9f:3e03:d92a:8f6)
2025-12-16 11:54:13 +0000bggd(~bgg@2a01:e0a:fd5:f510:fc9f:3e03:d92a:8f6) (Changing host)
2025-12-16 11:54:13 +0000bggd(~bgg@user/bggd) bggd
2025-12-16 11:56:38 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 12:00:43 +0000somemathguy(~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1)
2025-12-16 12:01:10 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 246 seconds)
2025-12-16 12:07:45 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 12:08:29 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-16 12:15:41 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 12:15:48 +0000Googulator67(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 12:20:55 +0000lucabtz(~lucabtz@user/lucabtz) (Ping timeout: 240 seconds)
2025-12-16 12:31:15 +0000latticepolytope(~user@user/isekaijin) isekaijin
2025-12-16 12:32:27 +0000pavonia(~user@user/siracusa) (Ping timeout: 252 seconds)
2025-12-16 12:32:35 +0000LainIwakura(~LainIwaku@user/LainIwakura) (Quit: Client closed)
2025-12-16 12:33:38 +0000lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-16 12:34:07 +0000pabs3(~pabs3@user/pabs3) (Ping timeout: 240 seconds)
2025-12-16 12:35:40 +0000pabs3(~pabs3@user/pabs3) pabs3
2025-12-16 12:40:11 +0000Googulator67(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 12:40:29 +0000Googulator67(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 12:42:21 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 252 seconds)
2025-12-16 12:42:42 +0000 <Leary> [exa], dminuoso: Bit late to the party, but I wrote something vaguely amusing: https://gist.github.com/LSLeary/e108d7a7ee27e0a9e9bee27fe9247910
2025-12-16 12:45:24 +0000pavonia(~user@user/siracusa) siracusa
2025-12-16 12:45:32 +0000Googulator67(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 12:45:41 +0000Googulator67(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 12:48:00 +0000 <[exa]> Leary: that's wonderful
2025-12-16 12:54:37 +0000weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2025-12-16 12:54:54 +0000weary-traveler(~user@user/user363627) user363627
2025-12-16 12:57:08 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2025-12-16 12:58:34 +0000 <kuribas> Can you use lazyness to determine if a graph has loops?
2025-12-16 12:58:40 +0000 <kuribas> I guess no, because it will just loop?
2025-12-16 12:59:39 +0000 <kuribas> For example, Map a [a] -> Map a (Maybe Int), where Nothing means ther is a loop, n means it has n parents.
2025-12-16 13:02:01 +0000 <kuribas> I guess I just need to recurse, and consider visited nodes.
2025-12-16 13:04:52 +0000merijn(~merijn@77.242.116.146) (Quit: reboot)
2025-12-16 13:05:33 +0000Googulator67(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 13:05:51 +0000Googulator67(~Googulato@87-97-86-146.pool.digikabel.hu)
2025-12-16 13:15:12 +0000Googulator67(~Googulato@87-97-86-146.pool.digikabel.hu) (Quit: Client closed)
2025-12-16 13:15:35 +0000Googulator67(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 13:21:17 +0000myxokephale(~myxos@2001:579:8380:f20:f2c2:4b00:b76e:8530) myxokephale
2025-12-16 13:21:22 +0000 <ski> gentauro : yea (although not keywords)
2025-12-16 13:23:31 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 13:23:46 +0000myxos(~myxos@2001:579:8380:f20:bd90:58c1:9ba1:835a) (Ping timeout: 246 seconds)
2025-12-16 13:25:01 +0000Psy-Q(~psy-q@user/psy-q) Psy-Q
2025-12-16 13:29:37 +0000 <kuribas> How can this work without constraints? reachable :: HashSet a -> HashMap a [a] -> HashSet a
2025-12-16 13:29:59 +0000 <kuribas> Does GHC now infer constraints?
2025-12-16 13:32:54 +0000 <[exa]> kuribas: which constraint would be missing there? I guess Hashable, but that might not be needed
2025-12-16 13:33:06 +0000 <[exa]> (depending on what kind of hash table is used ofc)
2025-12-16 13:33:14 +0000 <kuribas> [exa]: HashMap.lookupDefault needs it though?
2025-12-16 13:33:23 +0000 <kuribas> unordered-containers
2025-12-16 13:34:22 +0000 <[exa]> yeah I guess there it doesn't need the actual values, it just follows the hashes
2025-12-16 13:34:39 +0000 <[exa]> use the source tho
2025-12-16 13:35:09 +0000 <kuribas> https://hackage-content.haskell.org/package/unordered-containers-0.2.21/docs/src/Data.HashMap.Inte…
2025-12-16 13:35:22 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 13:41:09 +0000 <tomsmeding> it's the source of reachable that is relevant here, not that of lookupDefault
2025-12-16 13:41:30 +0000 <kuribas> tomsmeding: HashSet.fromList $ HashSet.toList nodes >>= (\n -> HashMap.lookupDefault [] n mapping)
2025-12-16 13:42:42 +0000 <tomsmeding> it's even easier to think about the fromList
2025-12-16 13:43:03 +0000 <tomsmeding> this should definitely incur a 'Hashable a' constraint
2025-12-16 13:43:57 +0000wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-12-16 13:44:13 +0000 <kuribas> Yes, but it doesn't?
2025-12-16 13:44:38 +0000 <kuribas> Or do you mean infer, by incur?
2025-12-16 13:45:09 +0000rekahsoft(~rekahsoft@70.51.99.245) rekahsoft
2025-12-16 13:45:43 +0000Googulator67(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 13:45:46 +0000Googulator54(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 13:52:32 +0000 <[exa]> kuribas: where did you get the `reachable` btw?
2025-12-16 13:52:43 +0000 <kuribas> [exa]: I wrote it
2025-12-16 13:53:25 +0000 <kuribas> Oh, there was another error somewhere else, which took precedence over the instance check apparently...
2025-12-16 13:53:40 +0000 <[exa]> yeah I was wondering
2025-12-16 13:55:56 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-16 14:01:02 +0000jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2025-12-16 14:01:27 +0000jmcantrell_jmcantrell
2025-12-16 14:04:05 +0000cubic_jpg(~cubic_jpg@user/cubic-jpg:13603) cubic_jpg
2025-12-16 14:06:24 +0000 <tomsmeding> kuribas: if you're using HLS, then parse error > name resolution errors in patterns > kind errors > type errors > constraint errors, iirc
2025-12-16 14:06:43 +0000 <tomsmeding> or equivalently when using -fdefer-type-errors, because HLS passes that to GHC
2025-12-16 14:06:52 +0000 <tomsmeding> when not using that flag, the order is a bit more compressed, but there's still an ordering
2025-12-16 14:08:04 +0000 <kuribas> right
2025-12-16 14:09:08 +0000 <tomsmeding> see the "side note" here in the issue description https://gitlab.haskell.org/ghc/ghc/-/issues/26016
2025-12-16 14:09:11 +0000 <tomsmeding> I've complained about it before :p
2025-12-16 14:13:19 +0000jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
2025-12-16 14:16:01 +0000cubic_jpg(~cubic_jpg@user/cubic-jpg:13603) (Quit: Client closed)
2025-12-16 14:16:30 +0000cubic_jpg(~cubic_jpg@user/cubic-jpg:13603) cubic_jpg
2025-12-16 14:17:50 +0000Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) Enrico63
2025-12-16 14:21:31 +0000 <kuribas> Also, for some reason lsp gives me the internal documentation, where there is no docstring...
2025-12-16 14:27:54 +0000somemathguy(~somemathg@user/somemathguy) somemathguy
2025-12-16 14:29:40 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-16 14:34:56 +0000trickard(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 14:37:43 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 14:44:10 +0000spew(~spew@user/spew) spew
2025-12-16 14:49:51 +0000fp(~Thunderbi@130.233.70.102) fp
2025-12-16 14:53:10 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-16 14:54:15 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-16 14:55:39 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 14:56:39 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Client Quit)
2025-12-16 14:56:54 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2025-12-16 14:57:25 +0000spew(~spew@user/spew) (Quit: WeeChat 4.7.2)
2025-12-16 14:59:27 +0000spew(~spew@user/spew) spew
2025-12-16 15:01:38 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 15:03:16 +0000Square2(~Square@user/square) Square
2025-12-16 15:06:27 +0000weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2025-12-16 15:06:43 +0000weary-traveler(~user@user/user363627) user363627
2025-12-16 15:08:03 +0000weary-traveler(~user@user/user363627) (Client Quit)
2025-12-16 15:08:27 +0000weary-traveler(~user@user/user363627) user363627
2025-12-16 15:08:48 +0000tremon(~tremon@83.80.159.219) tremon
2025-12-16 15:09:03 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 15:11:05 +0000deptype_(~deptype@2406:b400:3a:9d2f:476c:a58e:3471:ff37)
2025-12-16 15:11:37 +0000infinity0(~infinity0@pwned.gg) (Ping timeout: 255 seconds)
2025-12-16 15:13:40 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 246 seconds)
2025-12-16 15:13:49 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Ping timeout: 264 seconds)
2025-12-16 15:14:05 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 15:15:18 +0000Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed)
2025-12-16 15:15:50 +0000Googulator98(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 15:15:54 +0000Googulator54(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 15:27:15 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 15:27:40 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-12-16 15:32:11 +0000infinity0(~infinity0@pwned.gg) infinity0
2025-12-16 15:33:03 +0000Pixi`(~Pixi@user/pixi) Pixi
2025-12-16 15:35:43 +0000Pixi(~Pixi@user/pixi) (Ping timeout: 246 seconds)
2025-12-16 15:37:24 +0000j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-12-16 15:43:29 +0000 <kuribas> is it possible to do "pure" memoization, for example using a fix-point combinator?
2025-12-16 15:44:22 +0000 <lucabtz> i saw some libraries that do that
2025-12-16 15:44:32 +0000 <opqdonut> yes, using a lazy self-referential data structure
2025-12-16 15:44:35 +0000 <lucabtz> or claim to do that at least
2025-12-16 15:44:49 +0000 <opqdonut> for example an array, if you can enumerate all the inputt
2025-12-16 15:45:00 +0000j1n37(~j1n37@user/j1n37) j1n37
2025-12-16 15:45:13 +0000 <opqdonut> doing it "sparsely" like you would by mutating a map of values, is harder
2025-12-16 15:46:02 +0000 <opqdonut> the iconic fibonacci list is an example of this kind of memoization with an unbounded domain
2025-12-16 15:47:35 +0000 <opqdonut> a more general-purpose solution might be a trie
2025-12-16 15:47:44 +0000latticepolytope(~user@user/isekaijin) (Ping timeout: 244 seconds)
2025-12-16 15:48:21 +0000latticepolytope(~user@user/isekaijin) isekaijin
2025-12-16 15:48:24 +0000 <opqdonut> (practically people do it using unsafePerformIO, of course)
2025-12-16 15:48:31 +0000 <kuribas> Or parametrize over a monad? Like memoFix :: (forall m.Monad m => (a -> foo) -> a -> m foo) -> (a -> foo)
2025-12-16 15:48:50 +0000 <opqdonut> yeah
2025-12-16 15:48:51 +0000spew(~spew@user/spew) (Read error: Connection reset by peer)
2025-12-16 15:49:15 +0000 <kuribas> (missed an m...)
2025-12-16 15:49:58 +0000 <opqdonut> you can't make the m disappear from the final result tho
2025-12-16 15:50:21 +0000 <kuribas> Why not?
2025-12-16 15:50:43 +0000fgarcia(~lei@user/fgarcia) (Ping timeout: 264 seconds)
2025-12-16 15:51:17 +0000 <opqdonut> if you're relying on the monad sequencing to provide the concept of this-has-been-computed-before-that
2025-12-16 15:52:10 +0000 <kuribas> I can get "(a -> State memo foo)" =~ a -> memo -> (foo, memo), then flip, apply memo, and take the first.
2025-12-16 15:52:42 +0000 <opqdonut> sure, but then the next call won't use the outputted memo
2025-12-16 15:53:12 +0000 <lucabtz> yeah if you use State you have to live in the State monad
2025-12-16 15:53:13 +0000 <opqdonut> (unless you store it somewhere impurely)
2025-12-16 15:53:35 +0000spew(~spew@user/spew) spew
2025-12-16 15:53:38 +0000 <kuribas> yes, just the pure state monad, and I remove it in the end.
2025-12-16 15:53:47 +0000 <lucabtz> to escape the state you will have to provide a initial memo using runState which will be empty
2025-12-16 15:54:07 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-16 15:54:08 +0000 <lucabtz> unless you thread around the memo from different runState calls
2025-12-16 15:56:18 +0000fgarcia(~lei@user/fgarcia) fgarcia
2025-12-16 15:56:35 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-16 15:59:55 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 250 seconds)
2025-12-16 16:01:37 +0000fp(~Thunderbi@130.233.70.102) (Quit: fp)
2025-12-16 16:05:33 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2025-12-16 16:14:07 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 16:14:44 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Client Quit)
2025-12-16 16:15:10 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-12-16 16:15:50 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 16:21:28 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-16 16:22:00 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-16 16:22:35 +0000annamalai(~annamalai@157.32.210.253) (Ping timeout: 240 seconds)
2025-12-16 16:22:54 +0000annamalai(~annamalai@117.246.58.193) annamalai
2025-12-16 16:23:01 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 16:23:15 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 16:24:55 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 245 seconds)
2025-12-16 16:26:29 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 244 seconds)
2025-12-16 16:28:36 +0000chele(~chele@user/chele) (Remote host closed the connection)
2025-12-16 16:32:07 +0000lucabtz(~lucabtz@user/lucabtz) (Quit: Lost terminal)
2025-12-16 16:33:43 +0000Pixi`(~Pixi@user/pixi) (Quit: Leaving)
2025-12-16 16:34:35 +0000latticepolytope(~user@user/isekaijin) (Ping timeout: 240 seconds)
2025-12-16 16:36:30 +0000merijn(~merijn@77.242.116.146) merijn
2025-12-16 16:36:36 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-16 16:37:29 +0000cubic_jpgNikServe
2025-12-16 16:38:07 +0000latticepolytope(~user@user/isekaijin) isekaijin
2025-12-16 16:39:29 +0000Pixi(~Pixi@user/pixi) Pixi
2025-12-16 16:40:15 +0000NikServeNikoChanServv
2025-12-16 16:42:22 +0000NikoChanServvNickSer
2025-12-16 16:43:09 +0000NickSer(~cubic_jpg@user/cubic-jpg:13603) (Quit: Client closed)
2025-12-16 16:43:41 +0000cubic_jpg(~cubic_jpg@user/cubic-jpg:13603) cubic_jpg
2025-12-16 16:48:02 +0000cubic_jpgSnacksSer
2025-12-16 16:48:07 +0000Googulator98Googulator
2025-12-16 16:48:08 +0000bggd(~bgg@user/bggd) (Remote host closed the connection)
2025-12-16 16:48:40 +0000Guest15(~Guest15@31-39-208.wireless.csail.mit.edu)
2025-12-16 16:49:13 +0000annamalai(~annamalai@117.246.58.193) (Ping timeout: 264 seconds)
2025-12-16 16:57:16 +0000weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2025-12-16 16:57:32 +0000weary-traveler(~user@user/user363627) user363627
2025-12-16 16:58:58 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-12-16 16:59:56 +0000 <dminuoso> Leary: Ah yeah, guess I had something like that in mind. The choice of ifS makes it quite readable and expressive.
2025-12-16 17:00:04 +0000SnacksSer(~cubic_jpg@user/cubic-jpg:13603) (Quit: Client closed)
2025-12-16 17:00:19 +0000Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-12-16 17:00:33 +0000cubic_jpg(~cubic_jpg@user/cubic-jpg:13603) cubic_jpg
2025-12-16 17:11:02 +0000ft_(~ft@p4fc2ab42.dip0.t-ipconnect.de) ft
2025-12-16 17:20:01 +0000ft_ft
2025-12-16 17:21:45 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2025-12-16 17:22:44 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 17:23:18 +0000Googulator(~Googulato@87-97-86-146.pool.digikabel.hu)
2025-12-16 17:29:50 +0000sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-12-16 17:30:27 +0000annamalai(~annamalai@117.246.173.168) annamalai
2025-12-16 17:33:08 +0000target_i(~target_i@user/target-i/x-6023099) target_i
2025-12-16 17:40:48 +0000annamalai(~annamalai@117.246.173.168) (Remote host closed the connection)
2025-12-16 17:41:18 +0000thaumavorio_(~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in)
2025-12-16 17:41:38 +0000annamalai(~annamalai@117.246.173.168) annamalai
2025-12-16 17:42:25 +0000Square2(~Square@user/square) (Remote host closed the connection)
2025-12-16 17:42:46 +0000Square2(~Square@user/square) Square
2025-12-16 17:43:19 +0000Guest15(~Guest15@31-39-208.wireless.csail.mit.edu) (Quit: Client closed)
2025-12-16 17:43:39 +0000thaumavorio(~thaumavor@thaumavor.io) thaumavorio
2025-12-16 17:45:42 +0000Googulator(~Googulato@87-97-86-146.pool.digikabel.hu) (Quit: Client closed)
2025-12-16 17:45:49 +0000Googulator25(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 17:54:23 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2025-12-16 17:56:54 +0000cubic_jpg(~cubic_jpg@user/cubic-jpg:13603) (Quit: Client closed)
2025-12-16 17:58:11 +0000Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-12-16 18:05:31 +0000annamalai(~annamalai@117.246.173.168) (Ping timeout: 246 seconds)
2025-12-16 18:05:55 +0000gmg(~user@user/gehmehgeh) (Ping timeout: 252 seconds)
2025-12-16 18:06:01 +0000annamalai(~annamalai@157.32.212.233) annamalai
2025-12-16 18:07:28 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-16 18:08:06 +0000gmg(~user@user/gehmehgeh) gehmehgeh
2025-12-16 18:08:38 +0000larsivi(~larsivi@user/larsivi) larsivi
2025-12-16 18:09:19 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 18:11:19 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 240 seconds)
2025-12-16 18:15:22 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-12-16 18:15:46 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-12-16 18:17:12 +0000kaskal(~kaskal@2a02:8388:1a8b:7d00:dfb3:620:180e:8832) (Quit: ZNC - https://znc.in)
2025-12-16 18:17:32 +0000kaskal(~kaskal@84-115-235-223.cable.dynamic.surfer.at) kaskal
2025-12-16 18:27:28 +0000kimiamania99(~67ff9c12@user/kimiamania) (Quit: PegeLinux)
2025-12-16 18:28:44 +0000kimiamania99(~67ff9c12@user/kimiamania) kimiamania
2025-12-16 18:30:01 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 18:30:14 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 18:31:29 +0000deptype(~deptype@2406:b400:3a:9d2f:476c:a58e:3471:ff37) (Remote host closed the connection)
2025-12-16 18:31:29 +0000deptype_(~deptype@2406:b400:3a:9d2f:476c:a58e:3471:ff37) (Remote host closed the connection)
2025-12-16 18:31:59 +0000trickard_trickard
2025-12-16 18:41:16 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-16 18:41:17 +0000kuribas(~user@2a02:1808:41:1c70:586a:7bf2:33fa:d708) kuribas
2025-12-16 18:46:50 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 18:51:55 +0000Square2(~Square@user/square) (Ping timeout: 240 seconds)
2025-12-16 18:52:25 +0000trickard(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 18:52:39 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 18:53:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 19:04:31 +0000kuribas(~user@2a02:1808:41:1c70:586a:7bf2:33fa:d708) (Ping timeout: 250 seconds)
2025-12-16 19:04:43 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 19:04:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 19:09:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-16 19:11:09 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-16 19:19:15 +0000gmg(~user@user/gehmehgeh) (Ping timeout: 252 seconds)
2025-12-16 19:20:16 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 19:21:50 +0000ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-12-16 19:24:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-12-16 19:28:07 +0000gmg(~user@user/gehmehgeh) gehmehgeh
2025-12-16 19:32:00 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-16 19:33:01 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
2025-12-16 19:33:19 +0000Lord_of_Life_Lord_of_Life
2025-12-16 19:34:40 +0000lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-16 19:35:31 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 19:39:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 19:45:15 +0000latticepolytope(~user@user/isekaijin) (Ping timeout: 240 seconds)
2025-12-16 19:47:45 +0000Googulator25Googulator
2025-12-16 19:53:28 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 19:57:09 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 19:57:33 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 19:57:46 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-16 19:57:48 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 19:59:51 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Quit: WeeChat 4.5.2)
2025-12-16 20:01:53 +0000kst(~krjst@2a0a:4cc0:2000:789a:b827:c6ff:fed6:bb48) (Quit: bye)
2025-12-16 20:02:10 +0000krjst(~krjst@2a0a:4cc0:2000:789a:b827:c6ff:fed6:bb48) krjst
2025-12-16 20:02:34 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2025-12-16 20:06:10 +0000pavonia(~user@user/siracusa) siracusa
2025-12-16 20:06:55 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 20:07:08 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 20:08:51 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 20:10:36 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-16 20:12:01 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Ping timeout: 264 seconds)
2025-12-16 20:13:46 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-16 20:17:38 +0000Guest42(~Guest42@93-159-22-28.cgnat.inetia.pl)
2025-12-16 20:19:40 +0000Guest42(~Guest42@93-159-22-28.cgnat.inetia.pl) (Client Quit)
2025-12-16 20:21:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 20:23:00 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 20:24:14 +0000trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 20:25:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-16 20:36:50 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 20:41:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 20:45:40 +0000Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 20:45:46 +0000Googulator16(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 20:45:50 +0000jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2025-12-16 20:52:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 20:56:48 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 21:07:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 21:12:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 21:13:44 +0000Square2(~Square@user/square) Square
2025-12-16 21:14:19 +0000ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-12-16 21:14:37 +0000ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-12-16 21:15:48 +0000Googulator16(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 21:15:50 +0000Googulator38(~Googulato@87-97-86-146.pool.digikabel.hu)
2025-12-16 21:16:55 +0000ljdarj1ljdarj
2025-12-16 21:21:25 +0000myxos(~myxos@2001:579:8380:f20:b869:f32d:617d:ee68) myxokephale
2025-12-16 21:22:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 21:22:50 +0000target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-12-16 21:24:18 +0000myxokephale(~myxos@2001:579:8380:f20:f2c2:4b00:b76e:8530) (Ping timeout: 252 seconds)
2025-12-16 21:28:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 21:30:21 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Ping timeout: 252 seconds)
2025-12-16 21:31:23 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2025-12-16 21:33:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 21:38:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 21:41:42 +0000arkeet(~arkeet@moriya.ca)
2025-12-16 21:48:54 +0000Square2(~Square@user/square) (Remote host closed the connection)
2025-12-16 21:49:10 +0000Square2(~Square@user/square) Square
2025-12-16 21:49:13 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 21:53:01 +0000lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 255 seconds)
2025-12-16 21:53:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 21:58:04 +0000Everything(~Everythin@172-232-54-192.ip.linodeusercontent.com) Everything
2025-12-16 21:59:47 +0000ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-12-16 22:00:15 +0000_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 244 seconds)
2025-12-16 22:01:43 +0000ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
2025-12-16 22:01:44 +0000ljdarj1ljdarj
2025-12-16 22:04:37 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 22:05:39 +0000_d0t(~{-d0t-}@user/-d0t-/x-7915216) {-d0t-}
2025-12-16 22:06:44 +0000 <haskellbridge> <lucabtz> this is similar to the discussion there was between pure and return. when I have a monad should I use liftM or fmap. similarly liftM2 or liftA2. I would use the M versions but using the other two could make the code more general in case at some point you may realize you can relax the monad to an Applicative
2025-12-16 22:07:15 +0000 <monochrom> :)
2025-12-16 22:09:17 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-16 22:09:26 +0000 <monochrom> I write "instance Functor MyMonad where fmap = liftM" when I'm lazy. :)
2025-12-16 22:12:36 +0000 <monochrom> Although, when teaching, I show coding up fmap for MyMonad directly because it is more basic and a good preparation.
2025-12-16 22:18:12 +0000 <geekosaur> isn't the lazy version `deriving Functor`?
2025-12-16 22:18:26 +0000 <monochrom> Oops heh.
2025-12-16 22:19:34 +0000 <monochrom> OK, "instance Applicative MyMonad where pure = (... this I will code up directly ...); liftA2 = liftM2; (<*>) = ap"
2025-12-16 22:20:56 +0000 <monochrom> Alternatively (pun!), I optimize for fewer import lines! So I use (<*>) to spare importing Control.Monad. :)
2025-12-16 22:21:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 22:21:25 +0000 <monochrom> (And then later I find myself needing foldM so the plan is foiled.)
2025-12-16 22:24:07 +0000ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
2025-12-16 22:25:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-12-16 22:35:29 +0000trickard_trickard
2025-12-16 22:36:28 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 22:40:39 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 22:41:56 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-16 22:50:09 +0000mange(~mange@user/mange) mange
2025-12-16 22:51:38 +0000michalz(~michalz@185.246.207.221) (Remote host closed the connection)
2025-12-16 22:51:51 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 22:56:03 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 22:59:46 +0000lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-16 23:00:48 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds)
2025-12-16 23:06:15 +0000gf32(~gf3@user/gf3) (Ping timeout: 240 seconds)
2025-12-16 23:06:46 +0000gf31(~gf3@user/gf3) gf3
2025-12-16 23:07:14 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 23:11:46 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-16 23:16:07 +0000takuan(~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection)
2025-12-16 23:17:47 +0000tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-16 23:17:56 +0000Sgeo(~Sgeo@user/sgeo) Sgeo
2025-12-16 23:19:09 +0000spew(~spew@user/spew) (Quit: WeeChat 4.7.2)
2025-12-16 23:19:13 +0000lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds)
2025-12-16 23:19:34 +0000spew(~spew@user/spew) spew
2025-12-16 23:21:01 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-12-16 23:22:46 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 23:27:37 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 23:30:11 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-12-16 23:30:13 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Remote host closed the connection)
2025-12-16 23:32:17 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-12-16 23:38:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 23:43:03 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-16 23:51:40 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-16 23:52:01 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Quit: Lost terminal)
2025-12-16 23:52:21 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-12-16 23:52:58 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Client Quit)
2025-12-16 23:53:17 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-12-16 23:55:20 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Client Quit)
2025-12-16 23:55:38 +0000machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-12-16 23:56:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)