| 2025-12-18 00:02:00 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 00:06:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 00:09:58 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) (Ping timeout: 255 seconds) |
| 2025-12-18 00:12:48 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) |
| 2025-12-18 00:17:48 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 00:22:13 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2025-12-18 00:22:31 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-18 00:25:40 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 246 seconds) |
| 2025-12-18 00:26:43 +0100 | anpad | (~pandeyan@user/anpad) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2025-12-18 00:29:23 +0100 | anpad | (~pandeyan@user/anpad) anpad |
| 2025-12-18 00:33:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 00:34:24 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-18 00:35:53 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 2025-12-18 00:35:53 +0100 | ljdarj1 | ljdarj |
| 2025-12-18 00:38:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 00:38:44 +0100 | Square | (~Square4@user/square) Square |
| 2025-12-18 00:41:25 +0100 | Square2 | (~Square@user/square) (Ping timeout: 246 seconds) |
| 2025-12-18 00:49:23 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 00:53:09 +0100 | tromp | (~textual@2001:1c00:3487:1b00:681b:ee7b:c126:c8ee) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-18 00:53:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 00:56:09 +0100 | <c_wraith> | Um. Why is mapAccumL's strictness like that? (you can only ensure that the state value is evaluated at each step by connecting it to the mapped value and ensuring you you examine all the mapped values before the final state) |
| 2025-12-18 00:58:51 +0100 | mange | (~mange@user/mange) mange |
| 2025-12-18 01:00:54 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-18 01:04:05 +0100 | xff0x | (~xff0x@2405:6580:b080:900:1f37:fc57:df55:8ce4) (Quit: xff0x) |
| 2025-12-18 01:05:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 01:10:31 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-18 01:10:34 +0100 | xff0x | (~xff0x@ai083123.d.east.v6connect.net) |
| 2025-12-18 01:14:50 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Read error: Connection reset by peer) |
| 2025-12-18 01:20:38 +0100 | Googulator | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 01:20:52 +0100 | Googulator | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 01:20:58 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 01:28:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-18 01:37:16 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds) |
| 2025-12-18 01:39:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 01:39:05 +0100 | jle` | (~jle`@2603:8001:3b00:11:a23f:f454:6842:2ec4) (Ping timeout: 245 seconds) |
| 2025-12-18 01:39:54 +0100 | jle` | (~jle`@2603:8001:3b00:11:19da:f73a:84bb:c3b2) jle` |
| 2025-12-18 01:43:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 01:50:45 +0100 | Googulator | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 01:50:50 +0100 | Googulator60 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 01:59:57 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) |
| 2025-12-18 01:59:57 +0100 | Pozyomka | (~pyon@user/pyon) (Read error: Connection reset by peer) |
| 2025-12-18 02:04:43 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) (Ping timeout: 255 seconds) |
| 2025-12-18 02:07:35 +0100 | Tuplanolla | (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Ping timeout: 240 seconds) |
| 2025-12-18 02:10:03 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) |
| 2025-12-18 02:18:43 +0100 | xff0x | (~xff0x@ai083123.d.east.v6connect.net) (Ping timeout: 246 seconds) |
| 2025-12-18 02:20:42 +0100 | Googulator60 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 02:20:46 +0100 | Googulator58 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 02:24:33 +0100 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2025-12-18 02:25:00 +0100 | divlamir | (~divlamir@user/divlamir) divlamir |
| 2025-12-18 02:26:56 +0100 | omidmash9 | (~omidmash@user/omidmash) omidmash |
| 2025-12-18 02:28:22 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-18 02:29:28 +0100 | omidmash | (~omidmash@user/omidmash) (Ping timeout: 260 seconds) |
| 2025-12-18 02:29:28 +0100 | omidmash9 | omidmash |
| 2025-12-18 02:44:16 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds) |
| 2025-12-18 02:45:03 +0100 | spew | (~spew@user/spew) (Ping timeout: 244 seconds) |
| 2025-12-18 02:50:43 +0100 | Googulator56 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 02:50:46 +0100 | Googulator58 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 02:50:53 +0100 | spew | (~spew@user/spew) spew |
| 2025-12-18 02:58:57 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) |
| 2025-12-18 03:02:55 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-18 03:06:55 +0100 | trickard | (~trickard@cpe-81-98-47-163.wireline.com.au) (Ping timeout: 240 seconds) |
| 2025-12-18 03:08:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 03:09:38 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 03:13:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-18 03:17:49 +0100 | acidjnk | (~acidjnk@p200300d6e7171931a1bb0b767d660e96.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 2025-12-18 03:19:55 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds) |
| 2025-12-18 03:20:38 +0100 | Googulator46 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 03:21:03 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2025-12-18 03:21:19 +0100 | Googulator56 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 03:21:56 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-18 03:24:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 03:24:05 +0100 | trickard_ | trickard |
| 2025-12-18 03:25:29 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-18 03:28:22 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-18 03:36:44 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Quit: leaving) |
| 2025-12-18 03:39:25 +0100 | trickard | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-18 03:39:33 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 03:39:39 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 03:44:25 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-18 03:45:52 +0100 | trickard_ | trickard |
| 2025-12-18 03:47:57 +0100 | jj | (~apropos@d154-20-120-135.bchsia.telus.net) omentic |
| 2025-12-18 03:48:38 +0100 | jj | (~apropos@d154-20-120-135.bchsia.telus.net) (Remote host closed the connection) |
| 2025-12-18 03:54:37 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds) |
| 2025-12-18 03:55:18 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 04:00:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-18 04:02:16 +0100 | jj | (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) omentic |
| 2025-12-18 04:03:02 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2025-12-18 04:10:16 +0100 | jmcantrell | (~weechat@user/jmcantrell) (WeeChat 4.8.1) |
| 2025-12-18 04:10:44 +0100 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-18 04:10:50 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 04:15:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 04:20:05 +0100 | somemathguy | (~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1) |
| 2025-12-18 04:26:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 04:31:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 04:38:15 +0100 | td_ | (~td@i5387090B.versanet.de) (Ping timeout: 240 seconds) |
| 2025-12-18 04:40:30 +0100 | td_ | (~td@i53870911.versanet.de) |
| 2025-12-18 04:41:21 +0100 | spew | (~spew@user/spew) (Quit: nyaa~) |
| 2025-12-18 04:42:23 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 04:47:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-18 04:50:12 +0100 | omidmash | (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat) |
| 2025-12-18 04:54:38 +0100 | omidmash | (~omidmash@user/omidmash) omidmash |
| 2025-12-18 04:57:37 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-18 04:58:12 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 04:58:55 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds) |
| 2025-12-18 04:59:10 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-18 05:00:21 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Client Quit) |
| 2025-12-18 05:01:16 +0100 | xff0x_ | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2025-12-18 05:03:00 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-18 05:03:55 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 264 seconds) |
| 2025-12-18 05:06:09 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-18 05:10:15 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds) |
| 2025-12-18 05:13:48 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 05:20:33 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-18 05:20:53 +0100 | Googulator53 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 05:21:15 +0100 | Googulator46 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 05:22:35 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 2025-12-18 05:26:25 +0100 | ystael | (~ystael@user/ystael) (Ping timeout: 264 seconds) |
| 2025-12-18 05:31:51 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 05:34:39 +0100 | ystael | (~ystael@user/ystael) ystael |
| 2025-12-18 05:36:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-18 05:36:53 +0100 | AlexNoo_ | (~AlexNoo@5.139.232.96) |
| 2025-12-18 05:37:45 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-18 05:39:15 +0100 | AlexZenon | (~alzenon@178.34.161.6) (Ping timeout: 252 seconds) |
| 2025-12-18 05:39:55 +0100 | AlexNoo | (~AlexNoo@178.34.161.6) (Ping timeout: 240 seconds) |
| 2025-12-18 05:44:18 +0100 | AlexZenon | (~alzenon@5.139.232.96) |
| 2025-12-18 05:45:35 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Remote host closed the connection) |
| 2025-12-18 05:47:30 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-18 05:47:37 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 05:53:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 05:58:06 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Remote host closed the connection) |
| 2025-12-18 06:00:13 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-18 06:05:00 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 06:06:47 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2025-12-18 06:09:11 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 2025-12-18 06:09:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-18 06:10:27 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-18 06:20:46 +0100 | Googulator53 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 06:20:46 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 06:20:51 +0100 | Googulator94 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 06:21:03 +0100 | mechanov | (~kianbrode@76.127.143.150) |
| 2025-12-18 06:23:18 +0100 | lbseale | (~quassel@user/ep1ctetus) (Ping timeout: 256 seconds) |
| 2025-12-18 06:24:36 +0100 | mechanov | (~kianbrode@76.127.143.150) () |
| 2025-12-18 06:25:07 +0100 | raym | (~ray@user/raym) (Ping timeout: 246 seconds) |
| 2025-12-18 06:25:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 06:28:08 +0100 | lbseale | (~quassel@user/ep1ctetus) ep1ctetus |
| 2025-12-18 06:28:08 +0100 | Googulator94 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 06:28:23 +0100 | Googulator94 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 06:28:34 +0100 | mechanov_ | (~mechanov_@user/mechanov-:31724) mechanov_ |
| 2025-12-18 06:30:44 +0100 | mechanov_ | (~mechanov_@user/mechanov-:31724) (Client Quit) |
| 2025-12-18 06:31:05 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-18 06:32:10 +0100 | raym | (~ray@user/raym) raym |
| 2025-12-18 06:35:43 +0100 | Square | (~Square4@user/square) (Ping timeout: 240 seconds) |
| 2025-12-18 06:36:33 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 06:38:01 +0100 | jj | (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) (Remote host closed the connection) |
| 2025-12-18 06:39:02 +0100 | Axman6 | (~Axman6@user/axman6) (*.net *.split) |
| 2025-12-18 06:39:02 +0100 | superbil | (~superbil@114-32-231-70.hinet-ip.hinet.net) (*.net *.split) |
| 2025-12-18 06:39:37 +0100 | mange | (~mange@user/mange) (Quit: Quittin' time!) |
| 2025-12-18 06:40:44 +0100 | jj | (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) omentic |
| 2025-12-18 06:41:23 +0100 | superbil | (~superbil@114-32-231-70.hinet-ip.hinet.net) superbil |
| 2025-12-18 06:41:25 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-18 06:50:41 +0100 | Googulator94 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 06:50:46 +0100 | Googulator8 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 06:51:57 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 06:58:31 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 06:59:19 +0100 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2025-12-18 07:03:16 +0100 | werneta | (~werneta@71.83.160.242) werneta |
| 2025-12-18 07:03:42 +0100 | michalz | (~michalz@185.246.207.193) |
| 2025-12-18 07:09:59 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 07:14:39 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-18 07:16:54 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.8.1) |
| 2025-12-18 07:17:48 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-18 07:17:50 +0100 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2025-12-18 07:20:39 +0100 | Googulator60 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 07:20:48 +0100 | Googulator8 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 07:25:47 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 07:31:04 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-18 07:36:09 +0100 | itaipu | (~itaipu@168.121.97.28) (Ping timeout: 265 seconds) |
| 2025-12-18 07:37:19 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-18 07:40:53 +0100 | Axman6 | (~Axman6@user/axman6) Axman6 |
| 2025-12-18 07:41:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 07:45:27 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-18 07:46:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 07:50:40 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 07:55:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2025-12-18 07:55:46 +0100 | itaipu | (~itaipu@168.121.97.28) itaipu |
| 2025-12-18 08:00:35 +0100 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
| 2025-12-18 08:05:37 +0100 | karenw | (~karenw@user/karenw) (Ping timeout: 255 seconds) |
| 2025-12-18 08:06:28 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 08:07:51 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 08:08:32 +0100 | hiredman | (~hiredman@frontier1.downey.family) (Ping timeout: 265 seconds) |
| 2025-12-18 08:11:53 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-18 08:12:29 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 250 seconds) |
| 2025-12-18 08:15:59 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 08:17:32 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2025-12-18 08:17:53 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2025-12-18 08:20:16 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 244 seconds) |
| 2025-12-18 08:22:16 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 08:22:53 +0100 | annamalai | (~annamalai@2409:4042:2319:cd57::21e0:60a5) (Ping timeout: 250 seconds) |
| 2025-12-18 08:27:05 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-18 08:28:09 +0100 | humasect_ | (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-18 08:29:44 +0100 | trickard | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-18 08:29:58 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 08:30:01 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds) |
| 2025-12-18 08:33:17 +0100 | werneta | (~werneta@71.83.160.242) (Remote host closed the connection) |
| 2025-12-18 08:38:03 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 08:39:37 +0100 | annamalai | (~annamalai@157.32.125.111) annamalai |
| 2025-12-18 08:42:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-12-18 08:47:10 +0100 | humasect_ | humasect |
| 2025-12-18 08:51:42 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 08:51:47 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 08:56:14 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 260 seconds) |
| 2025-12-18 08:56:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-18 09:00:35 +0100 | <probie> | Is there a good way to union recursive types? My current approach is https://play.haskell.org/saved/DFZQfeiw but is there a better way to do this? |
| 2025-12-18 09:03:19 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds) |
| 2025-12-18 09:03:58 +0100 | lucabtz | (~lucabtz@user/lucabtz) lucabtz |
| 2025-12-18 09:04:08 +0100 | milan2 | (~milan@88.212.61.169) |
| 2025-12-18 09:05:57 +0100 | <opqdonut> | yeah you take the union of the f-algebras and then fix, that's what I would've done |
| 2025-12-18 09:07:17 +0100 | <opqdonut> | I probably would've written the union out as a datatype if there are only 1-2 cases |
| 2025-12-18 09:07:30 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 09:07:45 +0100 | <opqdonut> | I mean, 1-2 applications of the OneOf' pattern |
| 2025-12-18 09:07:57 +0100 | <opqdonut> | but that's just a stylistic change |
| 2025-12-18 09:09:59 +0100 | chele | (~chele@user/chele) chele |
| 2025-12-18 09:10:09 +0100 | trickard_ | trickard |
| 2025-12-18 09:11:19 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2025-12-18 09:12:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 09:18:08 +0100 | karenw | (~karenw@user/karenw) (Ping timeout: 244 seconds) |
| 2025-12-18 09:20:41 +0100 | Googulator60 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 09:20:48 +0100 | Googulator43 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 09:23:00 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2025-12-18 09:23:11 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
| 2025-12-18 09:23:55 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-18 09:26:48 +0100 | acidjnk | (~acidjnk@p200300d6e7171981f0c6dc9689540cc0.dip0.t-ipconnect.de) acidjnk |
| 2025-12-18 09:41:26 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 09:45:40 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 246 seconds) |
| 2025-12-18 09:48:16 +0100 | tromp | (~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl) |
| 2025-12-18 09:50:45 +0100 | Googulator77 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 09:50:50 +0100 | Googulator43 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 09:51:37 +0100 | sp1ff` | (~user@2601:1c2:4c00:55a0::59db) (Ping timeout: 246 seconds) |
| 2025-12-18 10:03:20 +0100 | milan2 | (~milan@88.212.61.169) (Quit: WeeChat 4.5.2) |
| 2025-12-18 10:07:55 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2025-12-18 10:09:58 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 10:16:31 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 10:20:41 +0100 | Googulator36 | (~Googulato@80-95-87-105.pool.digikabel.hu) |
| 2025-12-18 10:20:46 +0100 | Googulator77 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 10:22:05 +0100 | sp1ff` | (~user@2601:1c2:4701:900::327f) |
| 2025-12-18 10:35:55 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-18 10:44:48 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2025-12-18 10:46:29 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2025-12-18 10:46:57 +0100 | Googulator36 | (~Googulato@80-95-87-105.pool.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 10:47:13 +0100 | Googulator36 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 10:47:30 +0100 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 2025-12-18 10:47:30 +0100 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 2025-12-18 10:47:30 +0100 | haritz | (~hrtz@user/haritz) haritz |
| 2025-12-18 10:48:27 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 10:48:59 +0100 | troydm | (~troydm@user/troydm) troydm |
| 2025-12-18 10:50:53 +0100 | Googulator95 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 10:51:17 +0100 | Googulator36 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Client Quit) |
| 2025-12-18 10:52:52 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
| 2025-12-18 10:56:58 +0100 | trickard | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-18 10:57:11 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 10:59:45 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 11:01:07 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
| 2025-12-18 11:10:12 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-18 11:13:39 +0100 | xff0x_ | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
| 2025-12-18 11:20:16 +0100 | Googulator95 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 11:20:31 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 246 seconds) |
| 2025-12-18 11:20:33 +0100 | Googulator95 | (~Googulato@80-95-87-105.pool.digikabel.hu) |
| 2025-12-18 11:22:03 +0100 | trickard_ | trickard |
| 2025-12-18 11:35:29 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-18 11:35:30 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Read error: Connection reset by peer) |
| 2025-12-18 11:38:11 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Remote host closed the connection) |
| 2025-12-18 11:46:51 +0100 | trickard | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-18 11:47:05 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 11:57:08 +0100 | AlexNoo_ | AlexNoo |
| 2025-12-18 11:57:08 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-18 11:58:25 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-18 12:06:08 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 12:07:11 +0100 | somemathguy | (~somemathg@user/somemathguy) somemathguy |
| 2025-12-18 12:11:04 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 260 seconds) |
| 2025-12-18 12:18:55 +0100 | xff0x | (~xff0x@2405:6580:b080:900:e22e:72a9:5af7:ae26) |
| 2025-12-18 12:19:54 +0100 | troydm | (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 2025-12-18 12:20:30 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-18 12:20:43 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 12:25:39 +0100 | karenw | (~karenw@user/karenw) (Ping timeout: 260 seconds) |
| 2025-12-18 12:26:14 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 2025-12-18 12:31:12 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds) |
| 2025-12-18 12:31:30 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-18 12:31:43 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 12:38:10 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 12:38:13 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-18 12:43:49 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 12:44:31 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-18 12:45:29 +0100 | fp | (~Thunderbi@wireless-86-50-140-165.open.aalto.fi) fp |
| 2025-12-18 12:48:15 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 245 seconds) |
| 2025-12-18 12:56:49 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 13:01:49 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 2025-12-18 13:02:17 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 13:04:26 +0100 | jackneill__ | (~Jackneill@178-164-234-79.pool.digikabel.hu) |
| 2025-12-18 13:06:35 +0100 | Jackneill_ | (~Jackneill@178-164-177-109.pool.digikabel.hu) (Ping timeout: 240 seconds) |
| 2025-12-18 13:12:31 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 246 seconds) |
| 2025-12-18 13:12:36 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 13:23:10 +0100 | GoldsteinQ | (~goldstein@goldstein.rs) (Quit: ZNC 1.9.1 - https://znc.in) |
| 2025-12-18 13:26:12 +0100 | GoldsteinQ | (~goldstein@goldstein.lol) |
| 2025-12-18 13:26:44 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 13:35:52 +0100 | Googulator52 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 13:36:22 +0100 | Googulator95 | (~Googulato@80-95-87-105.pool.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 13:39:42 +0100 | tromp | (~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-18 13:45:52 +0100 | trickard_ | trickard |
| 2025-12-18 13:46:49 +0100 | lucabtz | (~lucabtz@user/lucabtz) (Ping timeout: 264 seconds) |
| 2025-12-18 13:46:50 +0100 | fp | (~Thunderbi@wireless-86-50-140-165.open.aalto.fi) (Remote host closed the connection) |
| 2025-12-18 13:47:54 +0100 | lucabtz | (~lucabtz@user/lucabtz) lucabtz |
| 2025-12-18 13:49:54 +0100 | pabs3 | (~pabs3@user/pabs3) (Ping timeout: 244 seconds) |
| 2025-12-18 13:52:04 +0100 | lucabtz | (~lucabtz@user/lucabtz) (Ping timeout: 244 seconds) |
| 2025-12-18 13:52:57 +0100 | lucabtz | (~lucabtz@user/lucabtz) lucabtz |
| 2025-12-18 13:54:49 +0100 | fp | (~Thunderbi@wireless-86-50-140-165.open.aalto.fi) fp |
| 2025-12-18 13:58:39 +0100 | fp | (~Thunderbi@wireless-86-50-140-165.open.aalto.fi) (Remote host closed the connection) |
| 2025-12-18 14:01:11 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 256 seconds) |
| 2025-12-18 14:06:20 +0100 | pabs3 | (~pabs3@user/pabs3) pabs3 |
| 2025-12-18 14:18:06 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
| 2025-12-18 14:18:33 +0100 | fp | (~Thunderbi@2001:708:150:10::7e06) fp |
| 2025-12-18 14:21:03 +0100 | fp | (~Thunderbi@2001:708:150:10::7e06) (Remote host closed the connection) |
| 2025-12-18 14:22:57 +0100 | fp1 | (~Thunderbi@2001:708:20:1406::10c5) fp |
| 2025-12-18 14:24:58 +0100 | qqe | (~qqq@185.54.20.98) |
| 2025-12-18 14:25:14 +0100 | fp1 | fp |
| 2025-12-18 14:27:46 +0100 | tromp | (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) |
| 2025-12-18 14:27:48 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 252 seconds) |
| 2025-12-18 14:28:33 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2025-12-18 14:29:50 +0100 | Googulator52 | Googulator |
| 2025-12-18 14:30:15 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-18 14:40:44 +0100 | Googulator | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 14:40:51 +0100 | Googulator72 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 14:48:29 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) |
| 2025-12-18 14:48:37 +0100 | merijn | (~merijn@77.242.116.146) (Quit: restart) |
| 2025-12-18 14:49:20 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 14:51:32 +0100 | smeik5005 | (~smeik5005@2a06:93c1:301:3:914d:b7d0:703d:161b) |
| 2025-12-18 14:56:23 +0100 | tromp | (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-18 15:01:26 +0100 | comerijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 15:01:47 +0100 | smeik5005 | (~smeik5005@2a06:93c1:301:3:914d:b7d0:703d:161b) (Ping timeout: 265 seconds) |
| 2025-12-18 15:04:09 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 250 seconds) |
| 2025-12-18 15:04:12 +0100 | lambda_gibbon | (~lambda_gi@2603:7080:ee00:37d8:d8ae:76cb:bbd3:c656) (Ping timeout: 265 seconds) |
| 2025-12-18 15:20:46 +0100 | shaeto | (~Shaeto@94.25.234.244) |
| 2025-12-18 15:25:16 +0100 | shaeto | (~Shaeto@94.25.234.244) (Ping timeout: 255 seconds) |
| 2025-12-18 15:27:03 +0100 | shaeto | (~Shaeto@94.25.234.244) |
| 2025-12-18 15:28:42 +0100 | shaeto_ | (~Shaeto@94.25.234.244) |
| 2025-12-18 15:31:34 +0100 | shaeto | (~Shaeto@94.25.234.244) (Ping timeout: 255 seconds) |
| 2025-12-18 15:31:38 +0100 | shaeto__ | (~Shaeto@94.25.234.244) |
| 2025-12-18 15:32:52 +0100 | shaeto | (~Shaeto@78.37.15.179) |
| 2025-12-18 15:33:28 +0100 | shaeto_ | (~Shaeto@94.25.234.244) (Ping timeout: 260 seconds) |
| 2025-12-18 15:35:43 +0100 | shaeto__ | (~Shaeto@94.25.234.244) (Ping timeout: 240 seconds) |
| 2025-12-18 15:36:31 +0100 | itaipu | (~itaipu@168.121.97.28) (Ping timeout: 240 seconds) |
| 2025-12-18 15:36:41 +0100 | shaeto_ | (~Shaeto@78.37.15.179) |
| 2025-12-18 15:37:25 +0100 | shaeto | (~Shaeto@78.37.15.179) (Ping timeout: 255 seconds) |
| 2025-12-18 15:37:25 +0100 | <shaeto_> | hi, question, how to see code produced by "deriving (Eq, Ord)" for Peano numbers ? is it pure recursive or some hack for performance ? |
| 2025-12-18 15:37:46 +0100 | <tomsmeding> | the deriving-generated code is generally not very clever |
| 2025-12-18 15:38:31 +0100 | <tomsmeding> | shaeto_: you can pass -ddump-deriv to GHC to have deriving-generated code printed to stderr; an easy way to do this for a single module is to put {-# OPTIONS -ddump-deriv #-} at the top of the file |
| 2025-12-18 15:38:54 +0100 | <tomsmeding> | https://downloads.haskell.org/ghc/latest/docs/users_guide/flags.html#compiler-debugging-options |
| 2025-12-18 15:40:00 +0100 | <shaeto_> | @tomsmeding thank you, will try, i just want to understand it for learning purposes |
| 2025-12-18 15:40:00 +0100 | <lambdabot> | Unknown command, try @list |
| 2025-12-18 15:40:14 +0100 | <tomsmeding> | (we generally don't use @ on irc) |
| 2025-12-18 15:40:52 +0100 | itaipu | (~itaipu@168.121.97.28) itaipu |
| 2025-12-18 15:41:16 +0100 | __monty__ | (~toonn@user/toonn) toonn |
| 2025-12-18 15:41:27 +0100 | <shaeto_> | tomsmeding: thank you |
| 2025-12-18 15:49:42 +0100 | carbolymer_ | (~carbolyme@delirium.systems) () |
| 2025-12-18 15:49:54 +0100 | carbolymer | (carbolymer@delirium.systems) carbolymer |
| 2025-12-18 15:50:20 +0100 | itaipu | (~itaipu@168.121.97.28) (Ping timeout: 245 seconds) |
| 2025-12-18 15:58:53 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2025-12-18 16:01:07 +0100 | itaipu | (~itaipu@168.121.97.28) itaipu |
| 2025-12-18 16:08:08 +0100 | shaeto | (~Shaeto@94.25.234.244) |
| 2025-12-18 16:11:03 +0100 | shaeto_ | (~Shaeto@78.37.15.179) (Ping timeout: 244 seconds) |
| 2025-12-18 16:17:11 +0100 | fp | (~Thunderbi@2001:708:20:1406::10c5) (Quit: fp) |
| 2025-12-18 16:20:00 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
| 2025-12-18 16:20:42 +0100 | tromp | (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) |
| 2025-12-18 16:40:31 +0100 | somemathguy | (~somemathg@user/somemathguy) (Ping timeout: 264 seconds) |
| 2025-12-18 16:44:22 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) |
| 2025-12-18 16:53:28 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2025-12-18 16:53:47 +0100 | comerijn | (~merijn@77.242.116.146) (Ping timeout: 250 seconds) |
| 2025-12-18 16:56:54 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 17:00:08 +0100 | somemathguy | (~somemathg@user/somemathguy) somemathguy |
| 2025-12-18 17:00:10 +0100 | qqe | (~qqq@185.54.20.98) (Quit: Lost terminal) |
| 2025-12-18 17:02:12 +0100 | somemathguy | (~somemathg@user/somemathguy) (Client Quit) |
| 2025-12-18 17:07:38 +0100 | merijn | (~merijn@77.242.116.146) (Quit: leaving) |
| 2025-12-18 17:22:53 +0100 | polux | (~polux@51-15-169-172.rev.poneytelecom.eu) (Remote host closed the connection) |
| 2025-12-18 17:23:37 +0100 | hiredman | (~hiredman@frontier1.downey.family) hiredman |
| 2025-12-18 17:29:32 +0100 | polux | (~polux@51-15-169-172.rev.poneytelecom.eu) polux |
| 2025-12-18 17:29:40 +0100 | lucabtz | (~lucabtz@user/lucabtz) (Quit: Lost terminal) |
| 2025-12-18 17:30:30 +0100 | tromp | (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-18 17:31:32 +0100 | Square2 | (~Square@user/square) Square |
| 2025-12-18 17:32:52 +0100 | tromp | (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) |
| 2025-12-18 17:40:27 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-18 17:44:48 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2025-12-18 18:00:08 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
| 2025-12-18 18:02:30 +0100 | <machinedgod> | Hi everyone. Does anyone here have a bit of experience with linear-base and LinearTypes? I can't seem to figure out how to get projection functions on my datatypes to be linear. |
| 2025-12-18 18:03:10 +0100 | <machinedgod> | Second issue: when I hide prelude and import Prelude.Linear - it seems like I lose ability to derive stock classes easily. Is this correct or I'm doing it wrong? |
| 2025-12-18 18:05:24 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 256 seconds) |
| 2025-12-18 18:14:44 +0100 | <tomsmeding> | machinedgod: I've never used Prelude.Linear, but I've used linear-base a bit; can you give a small code snippet showing precisely what projection functions you want? |
| 2025-12-18 18:15:24 +0100 | jbob | (~jbob@172.59.173.118) |
| 2025-12-18 18:16:09 +0100 | jbob | (~jbob@172.59.173.118) (Client Quit) |
| 2025-12-18 18:18:35 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2025-12-18 18:20:14 +0100 | <machinedgod> | tomsmeding: Hey, thank you for replying! What I meant was, sorry for misusing a wrong term - a record selector function. Basically, a datatype with a named field - I would presume those auto-genned functions would be linear, when LinearTypes are enabled? |
| 2025-12-18 18:27:49 +0100 | <tomsmeding> | aparently not! |
| 2025-12-18 18:28:20 +0100 | <tomsmeding> | machinedgod: ah, see point 6 here https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/linear_types.html#limitations |
| 2025-12-18 18:28:40 +0100 | <tomsmeding> | ah no that's not quite your question |
| 2025-12-18 18:31:46 +0100 | <tomsmeding> | machinedgod: the constructor of a data type _is_ linear by default, unless you explicitly make it not so using GADTSyntax |
| 2025-12-18 18:31:58 +0100 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
| 2025-12-18 18:33:41 +0100 | <tomsmeding> | on reflection, yes, that bullet in the limitations _is_ your questoin |
| 2025-12-18 18:33:47 +0100 | <tomsmeding> | *question |
| 2025-12-18 18:40:12 +0100 | spew | (~spew@user/spew) spew |
| 2025-12-18 18:41:14 +0100 | <machinedgod> | tomsmeding: Aye, that's a good answer! Thank you, I did check the user manual and I did look into limitations - but I misread the part about records. |
| 2025-12-18 18:42:20 +0100 | <machinedgod> | I am attempting to find a correct, uh... 'meta pattern' to use linear types. Its mainly to get some experience in usage. Do you maybe know what could I look at? |
| 2025-12-18 18:43:15 +0100 | <tomsmeding> | I'm not sure. I used it once for a very specific purpose, and it worked fine for that, but there are still a lot of rough edges, I think |
| 2025-12-18 18:43:40 +0100 | <tomsmeding> | decide what exactly you want to do with linearity, and find ways to accomplish that, is what I would say |
| 2025-12-18 18:43:52 +0100 | <tomsmeding> | making your whole program "linear" is not really a thing |
| 2025-12-18 18:48:38 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds) |
| 2025-12-18 18:49:04 +0100 | <machinedgod> | You're reading my mind :) One good advice I've gotten was to separate observation from mutation, and to add 'authority' tokens which have linear access. That's what I'm going to attempt to do, and see how far I get. |
| 2025-12-18 18:49:51 +0100 | <machinedgod> | But yeah, I honestly don't really have a clear goal on what do I want to accomplish - I have a toy project specifically crafted just so that I could toy around with lineary and 'real' problems and see what is doable, what isn't and what are the pros/cons. I've done the same thing when datakinds became a thing :) |
| 2025-12-18 18:51:14 +0100 | <tomsmeding> | "authority tokens" sound like a design pattern to simplify writing APIs that use linearity to enforce certain invariants. That still requires you to have an idea beforehand what invariants you want to enforce, exactly :) |
| 2025-12-18 18:51:30 +0100 | <tomsmeding> | I think that if you know that, it'll become clearer how to use linearity to accomplish that |
| 2025-12-18 18:51:34 +0100 | <tomsmeding> | (and if it doesn't, come back) |
| 2025-12-18 18:52:14 +0100 | <tomsmeding> | this is not to discourage you from experimenting, by the way! :) |
| 2025-12-18 18:55:43 +0100 | <machinedgod> | tomsmeding: Oh, I didn't feel like you're being discouraging, quite the oppoosite! You're here, spending time of your life to consult me for free - if that isn't practical encouraging, I don't know what is :) and, I am taking your advice to heart, I've just poured myself another cup of coffee, and rather than typing more code, I'm gonna sit, look at it and think for a bit |
| 2025-12-18 18:55:57 +0100 | <machinedgod> | Thank you, both for time and knowledge! |
| 2025-12-18 18:56:07 +0100 | <tomsmeding> | nice, have fun :) |
| 2025-12-18 18:56:27 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 2025-12-18 19:00:47 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) |
| 2025-12-18 19:01:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 19:06:21 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-12-18 19:15:32 +0100 | trickard | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-18 19:15:44 +0100 | trickard | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 19:17:13 +0100 | merijn | (~merijn@62.45.136.136) merijn |
| 2025-12-18 19:17:21 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
| 2025-12-18 19:17:25 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds) |
| 2025-12-18 19:17:29 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-18 19:17:48 +0100 | jmcantrell_ | jmcantrell |
| 2025-12-18 19:19:38 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: bbl) |
| 2025-12-18 19:21:54 +0100 | merijn | (~merijn@62.45.136.136) (Ping timeout: 256 seconds) |
| 2025-12-18 19:29:50 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-18 19:30:38 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
| 2025-12-18 19:32:32 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 19:39:06 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-18 19:42:18 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
| 2025-12-18 19:44:36 +0100 | acidjnk | (~acidjnk@p200300d6e7171981f0c6dc9689540cc0.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 2025-12-18 19:50:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 19:54:24 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
| 2025-12-18 19:55:20 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-12-18 19:55:37 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-18 19:59:27 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
| 2025-12-18 19:59:27 +0100 | ljdarj1 | ljdarj |
| 2025-12-18 20:02:37 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 20:04:15 +0100 | tromp | (~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-18 20:07:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 20:14:50 +0100 | acidjnk | (~acidjnk@p200300d6e7171981f0c6dc9689540cc0.dip0.t-ipconnect.de) acidjnk |
| 2025-12-18 20:18:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 20:19:06 +0100 | talismanick | (~user@2601:644:8502:d340::cd3d) talismanick |
| 2025-12-18 20:20:21 +0100 | Tuplanolla | (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) Tuplanolla |
| 2025-12-18 20:20:55 +0100 | weary-traveler | (~user@user/user363627) user363627 |
| 2025-12-18 20:22:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 20:26:50 +0100 | shaeto | (~Shaeto@94.25.234.244) (Quit: WeeChat 4.1.1) |
| 2025-12-18 20:27:37 +0100 | shaeto | (~Shaeto@94.25.234.244) |
| 2025-12-18 20:28:19 +0100 | shaeto | (~Shaeto@94.25.234.244) (Client Quit) |
| 2025-12-18 20:28:52 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 244 seconds) |
| 2025-12-18 20:29:51 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2025-12-18 20:32:20 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2025-12-18 20:32:56 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 2025-12-18 20:33:40 +0100 | Lord_of_Life_ | Lord_of_Life |
| 2025-12-18 20:34:11 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 20:39:08 +0100 | pavonia | (~user@user/siracusa) siracusa |
| 2025-12-18 20:39:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-18 20:49:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 20:51:21 +0100 | lockna | (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) |
| 2025-12-18 20:51:55 +0100 | lockna | (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) (Remote host closed the connection) |
| 2025-12-18 20:52:10 +0100 | lockna | (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) |
| 2025-12-18 20:52:12 +0100 | l0ckna | (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) |
| 2025-12-18 20:52:45 +0100 | lockna | (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) (Remote host closed the connection) |
| 2025-12-18 20:55:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-18 21:03:39 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 21:08:39 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-18 21:12:58 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-18 21:14:10 +0100 | <haskellbridge> | <Liamzee> is the real reason people don't want to use Haskell as an orchestrator that Haskell concurrency + FFI is cursed? |
| 2025-12-18 21:15:39 +0100 | <monochrom> | Is Haskell concurrency + FFI cursed? |
| 2025-12-18 21:15:51 +0100 | <haskellbridge> | <Liamzee> I mean you can always blame C etc for it |
| 2025-12-18 21:16:03 +0100 | <haskellbridge> | <Liamzee> From experienced production devs: is it cursed? |
| 2025-12-18 21:16:33 +0100 | <haskellbridge> | <Liamzee> I've been trying to build a wrapper around the tinyfiledialogs library, and it turns out that traverse_ forkIO, on Macos, at least, will cause the script runner to jam buffers |
| 2025-12-18 21:16:47 +0100 | <monochrom> | I am not interested in blaming C, or blaming anything, at least for now. |
| 2025-12-18 21:17:36 +0100 | <monochrom> | Have you heard of forkOS? |
| 2025-12-18 21:17:36 +0100 | <haskellbridge> | <Liamzee> So, now I'm thinking no-inline unsafePerformIO global locks. ??? |
| 2025-12-18 21:17:42 +0100 | <haskellbridge> | <Liamzee> yes, I've used it. |
| 2025-12-18 21:18:17 +0100 | <haskellbridge> | <Liamzee> Still, if I'm trying to build a library wrapper, I can't control whether the end user is using forkIO or forkOS |
| 2025-12-18 21:18:23 +0100 | qqe | (~qqq@185.54.20.98) |
| 2025-12-18 21:19:17 +0100 | <monochrom> | You can assume that the end user has made the correct choice between forkIO and forkOS. |
| 2025-12-18 21:19:27 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 21:19:28 +0100 | <int-e> | C libraries don't control from which threads they're called either |
| 2025-12-18 21:20:41 +0100 | Googulator75 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 21:21:06 +0100 | <monochrom> | If you want tight control on which thread does what, the technique of "worker thread pool" has been well known for decades. |
| 2025-12-18 21:21:38 +0100 | Googulator72 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 21:21:47 +0100 | omidmash | (~omidmash@user/omidmash) (Quit: Ping timeout (120 seconds)) |
| 2025-12-18 21:21:53 +0100 | <monochrom> | And is particularly sweet in Haskell because Haskell has a much better API for sending messages to worker threads and/or pools. |
| 2025-12-18 21:22:00 +0100 | omidmash | (~omidmash@user/omidmash) omidmash |
| 2025-12-18 21:22:35 +0100 | <monochrom> | (How better? You can send a f**king IO action as a message too. It doesn't even need to be data!) |
| 2025-12-18 21:22:55 +0100 | <monochrom> | (It's what gtk2hs does.) |
| 2025-12-18 21:23:31 +0100 | <int-e> | And fwiw, as FFIs go Haskell's is actually pretty nice, especially considering how old it is. |
| 2025-12-18 21:24:07 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 21:24:08 +0100 | <int-e> | Other languages had you write dozens of lines of marshalling code by hand for the most trivial functions. |
| 2025-12-18 21:26:53 +0100 | <haskellbridge> | <Liamzee> Honestly, I just had AI tell me that FFI + Haskell green threads / concurrency model is seriously difficult, especially if the wrapped library has global state |
| 2025-12-18 21:27:03 +0100 | <haskellbridge> | <Liamzee> I mean, I can leave it unsafe, but I guess I put a premium on child safety |
| 2025-12-18 21:27:15 +0100 | <monochrom> | "AI" |
| 2025-12-18 21:27:18 +0100 | <haskellbridge> | <Liamzee> I'm asking here beceause AI hallucinates and is a bullshit machine, so I'd rather ask real humans |
| 2025-12-18 21:27:34 +0100 | <monochrom> | Public LLMs are only as good as Internet trash. |
| 2025-12-18 21:28:45 +0100 | <monochrom> | Hutton already explained why Haskell anything is seriously difficult. |
| 2025-12-18 21:29:02 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
| 2025-12-18 21:29:27 +0100 | <monochrom> | Programming is seriously difficult. Haskell is just being honest about it. Other languages try to sugar-coat it. |
| 2025-12-18 21:31:11 +0100 | <haskellbridge> | <Liamzee> I mean the explanation is that other languages with their concurrency / FFI model is intended to be childsafe, i.e, it deliberately brain damages the concurrency + FFI model to avoid the overhead of childsafe-ing on the library designer side, but locks every user into the childsafe model, even when it's unnecessary |
| 2025-12-18 21:31:15 +0100 | <monochrom> | But Haskell solutions have been well-known for decades for concurrently FFI-ing to C libs with global states and/or thread-local states. |
| 2025-12-18 21:32:28 +0100 | <haskellbridge> | <Liamzee> the objective remark seems to be: Haskell concurrency + FFI is not childsafe (defined as, being brain-dead robust). It's the responsibility of the library builder to make it such. Or would you contest that? |
| 2025-12-18 21:34:51 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2025-12-18 21:35:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 21:35:40 +0100 | <monochrom> | Which languages are childsafe? |
| 2025-12-18 21:36:01 +0100 | <int-e> | brainfuck |
| 2025-12-18 21:36:46 +0100 | l0ckna | (~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) (Quit: Leaving) |
| 2025-12-18 21:36:57 +0100 | <haskellbridge> | <Liamzee> The AI comment was: "every language with worse concurrency", i.e, Py is an example because of how hard concurrency is, and Go is apparently another example. |
| 2025-12-18 21:38:22 +0100 | <sprout> | Liamzee: that wasn't what the AI stated. and FFI-ing into something that isn't threadsafe of course is going to give you problems, no matter the language |
| 2025-12-18 21:38:23 +0100 | <monochrom> | As a first-order approximation: Mutex is not childsafe unless used under Haskell's bracket idiom or Python's recent "with" idiom or C++'s RAII idiom. That immediately cuts down the candidates to just 4: Haskell, Python, C++, maybe Rust. |
| 2025-12-18 21:39:08 +0100 | <monochrom> | However, none of those 4 force you to use those safe idioms. That further cuts down the candidates to 0. |
| 2025-12-18 21:40:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-18 21:41:03 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-18 21:41:03 +0100 | <haskellbridge> | <Liamzee> Does Py etc use blocking FFI? |
| 2025-12-18 21:41:11 +0100 | <haskellbridge> | <Liamzee> Go? |
| 2025-12-18 21:43:13 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds) |
| 2025-12-18 21:43:13 +0100 | ljdarj1 | ljdarj |
| 2025-12-18 21:43:20 +0100 | <sprout> | Liamzee: your AI gave you a statement of fact that is true for any language |
| 2025-12-18 21:43:44 +0100 | <sprout> | whether it's exceptionally difficult for Haskell is debatable |
| 2025-12-18 21:46:11 +0100 | michalz | (~michalz@185.246.207.193) (Remote host closed the connection) |
| 2025-12-18 21:47:53 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
| 2025-12-18 21:48:52 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) |
| 2025-12-18 21:50:43 +0100 | Googulator75 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-18 21:50:51 +0100 | Googulator73 | (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-18 21:51:00 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 21:54:01 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds) |
| 2025-12-18 21:55:46 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-18 22:04:40 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 22:11:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 22:14:49 +0100 | dolio | (~dolio@130.44.140.168) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2025-12-18 22:16:48 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-18 22:22:13 +0100 | dolio | (~dolio@130.44.140.168) dolio |
| 2025-12-18 22:22:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 22:27:42 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-18 22:37:42 +0100 | <haskellbridge> | <Liamzee> The example I was tossed was green threads (virtual threads) in FFI |
| 2025-12-18 22:38:04 +0100 | <haskellbridge> | <Liamzee> But either case, is it worth trying to specialize in the concurrency + FFI combo? |
| 2025-12-18 22:38:30 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 22:39:09 +0100 | <haskellbridge> | <Liamzee> Until SIMD support in GHC becomes fully mature, it'll be very difficult to compete with Rust, and the simplest way might simply be to FFI to C/C++/Rust in the interim. FFI on its own is relatively easy, concurrency in Haskell is also easy, but once you mix FFI and concurrency, whether it's Haskell specific or not, it becomes a bit more of a headache. |
| 2025-12-18 22:43:22 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-18 22:46:23 +0100 | gabiruh_ | (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
| 2025-12-18 22:46:47 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) gabiruh |
| 2025-12-18 22:51:02 +0100 | trickard | (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-18 22:51:16 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 22:54:18 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 22:55:35 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) (Ping timeout: 240 seconds) |
| 2025-12-18 22:56:33 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-18 22:58:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-18 23:01:03 +0100 | <haskellbridge> | <loonycyborg> I'm pretty sure that haskell is one of the most safe environments to do threading, because having to be explicit about effects also makes it easier to see when synchronization is needed. |
| 2025-12-18 23:03:36 +0100 | <haskellbridge> | <loonycyborg> And immutable structures don't need synchronization. |
| 2025-12-18 23:05:44 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 256 seconds) |
| 2025-12-18 23:09:08 +0100 | trickard_ | (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-18 23:09:16 +0100 | lambda_gibbon | (~lambda_gi@208.83.175.39) |
| 2025-12-18 23:10:05 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 23:15:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-18 23:15:35 +0100 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 2025-12-18 23:17:49 +0100 | xff0x | (~xff0x@2405:6580:b080:900:e22e:72a9:5af7:ae26) (Ping timeout: 244 seconds) |
| 2025-12-18 23:22:01 +0100 | xff0x | (~xff0x@2405:6580:b080:900:ea01:4fbc:9554:a780) |
| 2025-12-18 23:25:53 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 23:30:37 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-18 23:38:16 +0100 | vetkat | (~vetkat@user/vetkat) (Read error: Connection reset by peer) |
| 2025-12-18 23:38:40 +0100 | vetkat | (~vetkat@user/vetkat) vetkat |
| 2025-12-18 23:41:41 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-18 23:43:10 +0100 | infinity0 | (~infinity0@pwned.gg) (Quit: WeeChat 4.7.2) |
| 2025-12-18 23:44:56 +0100 | infinity0 | (~infinity0@pwned.gg) infinity0 |
| 2025-12-18 23:48:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |