| 2026-05-23 00:00:49 +0000 | vetkat | (~vetkat@user/vetkat) (Quit: So long, and thanks for all the fish) |
| 2026-05-23 00:01:51 +0000 | vetkat | (~vetkat@user/vetkat) vetkat |
| 2026-05-23 00:03:26 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-23 00:08:33 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 250 seconds) |
| 2026-05-23 00:19:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 00:23:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-05-23 00:33:29 +0000 | DetourNe- | (~DetourNet@user/DetourNetworkUK) DetourNetworkUK |
| 2026-05-23 00:33:43 +0000 | DetourNetworkUK | (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2026-05-23 00:34:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 00:35:43 +0000 | DetourNe- | DetourNetworkUK |
| 2026-05-23 00:40:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-05-23 00:41:43 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-05-23 00:45:06 +0000 | myxos | (~myxos@67-1-178-42.tcso.qwest.net) (Ping timeout: 248 seconds) |
| 2026-05-23 00:50:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 00:55:28 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 01:05:32 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds) |
| 2026-05-23 01:06:08 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 01:06:17 +0000 | myxos | (~myxos@67-1-178-42.tcso.qwest.net) myxokephale |
| 2026-05-23 01:08:36 +0000 | troojg | (~troojg@user/troojg) troojg |
| 2026-05-23 01:10:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-05-23 01:16:53 +0000 | foul_owl | (~kerry@94.156.149.96) (Ping timeout: 272 seconds) |
| 2026-05-23 01:17:47 +0000 | ncf | (~ncf@monade.li) (Remote host closed the connection) |
| 2026-05-23 01:21:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 01:27:03 +0000 | ncf | (~ncf@monade.li) ncf |
| 2026-05-23 01:28:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-05-23 01:39:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 01:44:46 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 01:52:24 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e508282254f1e55c94a7.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-05-23 01:53:00 +0000 | ncf | (~ncf@monade.li) (Remote host closed the connection) |
| 2026-05-23 01:54:13 +0000 | ncf | (~ncf@monade.li) ncf |
| 2026-05-23 01:55:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 02:00:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-05-23 02:11:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 02:12:57 +0000 | tremon | (~tremon@83.80.159.219) tremon |
| 2026-05-23 02:16:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-05-23 02:26:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 02:27:35 +0000 | puke | (~puke@014136001187.ctinets.com) (*.net *.split) |
| 2026-05-23 02:27:58 +0000 | puke | (~puke@014136001187.ctinets.com) |
| 2026-05-23 02:32:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 251 seconds) |
| 2026-05-23 02:35:15 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:a057:893f:21d0:8f42) |
| 2026-05-23 02:36:39 +0000 | Eoco | (~ian@128.101.131.218) Eoco |
| 2026-05-23 02:38:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 02:42:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 02:48:34 +0000 | xff0x | (~xff0x@ai070051.d.east.v6connect.net) (Ping timeout: 265 seconds) |
| 2026-05-23 02:51:19 +0000 | Inline | (~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
| 2026-05-23 02:53:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 02:54:20 +0000 | rainbyte | (~rainbyte@181.47.219.3) (Quit: rainbyte) |
| 2026-05-23 02:55:15 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:a057:893f:21d0:8f42) (Quit: ricardomaps) |
| 2026-05-23 02:55:37 +0000 | xff0x | (~xff0x@2405:6580:b080:900:31a:40c3:3c58:e32) |
| 2026-05-23 02:58:03 +0000 | rainbyte | (~rainbyte@181.47.219.3) rainbyte |
| 2026-05-23 02:58:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 263 seconds) |
| 2026-05-23 03:02:21 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-05-23 03:04:14 +0000 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2026-05-23 03:06:34 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 245 seconds) |
| 2026-05-23 03:09:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 03:10:06 +0000 | myxos | (~myxos@67-1-178-42.tcso.qwest.net) (Ping timeout: 256 seconds) |
| 2026-05-23 03:16:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 03:19:37 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 2026-05-23 03:24:42 +0000 | m | (~travltux@user/travltux) (Quit: WeeChat 4.7.2) |
| 2026-05-23 03:27:08 +0000 | m | (~travltux@user/travltux) travltux |
| 2026-05-23 03:27:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 03:32:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-05-23 03:51:43 +0000 | myxos | (~myxos@67-1-178-42.tcso.qwest.net) myxokephale |
| 2026-05-23 04:03:25 +0000 | machinedgod | (~machinedg@d172-219-48-230.abhsia.telus.net) (Remote host closed the connection) |
| 2026-05-23 04:04:34 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-05-23 04:04:45 +0000 | machinedgod | (~machinedg@172.219.48.230) machinedgod |
| 2026-05-23 04:04:51 +0000 | machinedgod | (~machinedg@172.219.48.230) (Client Quit) |
| 2026-05-23 04:06:33 +0000 | troojg | (~troojg@user/troojg) (Ping timeout: 248 seconds) |
| 2026-05-23 04:15:22 +0000 | spew | (~spew@user/spew) (Quit: nyaa~) |
| 2026-05-23 04:25:32 +0000 | Jacqueline__ | (uid751191@id-751191.helmsley.irccloud.com) |
| 2026-05-23 04:38:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 04:43:47 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 04:54:37 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 04:59:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 05:02:43 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-05-23 05:10:26 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 05:15:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 05:24:56 +0000 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2026-05-23 05:26:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 05:29:25 +0000 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 276 seconds) |
| 2026-05-23 05:31:12 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-05-23 05:38:54 +0000 | euphores | (~SASL_euph@user/euphores) euphores |
| 2026-05-23 05:38:59 +0000 | dibblego | (~dibblego@116.255.1.119) |
| 2026-05-23 05:38:59 +0000 | dibblego | (~dibblego@116.255.1.119) (Changing host) |
| 2026-05-23 05:38:59 +0000 | dibblego | (~dibblego@haskell/developer/dibblego) dibblego |
| 2026-05-23 05:39:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 05:43:48 +0000 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 253 seconds) |
| 2026-05-23 05:44:54 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 05:46:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-05-23 05:47:40 +0000 | dibblego | (~dibblego@116.255.1.119) |
| 2026-05-23 05:47:40 +0000 | dibblego | (~dibblego@116.255.1.119) (Changing host) |
| 2026-05-23 05:47:40 +0000 | dibblego | (~dibblego@haskell/developer/dibblego) dibblego |
| 2026-05-23 05:49:04 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 245 seconds) |
| 2026-05-23 05:51:35 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 05:53:25 +0000 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-05-23 05:57:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 06:03:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 06:13:24 +0000 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 263 seconds) |
| 2026-05-23 06:13:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 06:15:20 +0000 | dibblego | (~dibblego@116-255-1-119.ip4.superloop.au) |
| 2026-05-23 06:15:21 +0000 | dibblego | (~dibblego@116-255-1-119.ip4.superloop.au) (Changing host) |
| 2026-05-23 06:15:21 +0000 | dibblego | (~dibblego@haskell/developer/dibblego) dibblego |
| 2026-05-23 06:18:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 06:29:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 06:34:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-05-23 06:40:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 06:44:36 +0000 | metabulation | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 2026-05-23 06:45:18 +0000 | Jacqueline__ | (uid751191@id-751191.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 2026-05-23 06:46:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 253 seconds) |
| 2026-05-23 06:55:07 +0000 | ss4 | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2026-05-23 06:56:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 07:01:27 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-05-23 07:12:29 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 07:12:58 +0000 | Inline | (~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) Inline |
| 2026-05-23 07:17:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 253 seconds) |
| 2026-05-23 07:20:07 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 264 seconds) |
| 2026-05-23 07:22:56 +0000 | Googulator | (~Googulato@84-236-52-41.pool.digikabel.hu) (Quit: Client closed) |
| 2026-05-23 07:23:09 +0000 | Googulator | (~Googulato@84-236-52-41.pool.digikabel.hu) |
| 2026-05-23 07:27:44 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-05-23 07:28:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 07:30:08 +0000 | poscat0x04 | (~poscat@user/poscat) (Remote host closed the connection) |
| 2026-05-23 07:33:04 +0000 | poscat | (~poscat@user/poscat) poscat |
| 2026-05-23 07:35:14 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-05-23 07:40:22 +0000 | enoq | (~enoq@2a05:1141:1fd:3b00:5934:e936:8f0a:3520) enoq |
| 2026-05-23 07:41:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 07:42:08 +0000 | <enoq> | been looking at kotlin conf talks and came across a value semantics talk; basically instead of lenses or deeply nested copies, the compiler takes care of that and is faster than writing mutating code by hand |
| 2026-05-23 07:42:15 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 07:42:35 +0000 | <enoq> | applied optimizations include flattening pointers |
| 2026-05-23 07:43:03 +0000 | <enoq> | made me think: what if lenses were actually built into the compiler |
| 2026-05-23 07:47:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-05-23 07:56:55 +0000 | tusko | (~uwu@user/tusko) (Quit: Lost terminal) |
| 2026-05-23 07:57:44 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 07:58:34 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Quit: tnt1) |
| 2026-05-23 07:59:27 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 08:02:44 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 08:07:11 +0000 | ss4 | wootehfoot |
| 2026-05-23 08:14:15 +0000 | xff0x | (~xff0x@2405:6580:b080:900:31a:40c3:3c58:e32) (Ping timeout: 272 seconds) |
| 2026-05-23 08:14:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 08:14:51 +0000 | xff0x | (~xff0x@2405:6580:b080:900:dc8c:f72a:135a:db02) |
| 2026-05-23 08:19:25 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-05-23 08:19:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 08:21:57 +0000 | enoq | (~enoq@2a05:1141:1fd:3b00:5934:e936:8f0a:3520) (Remote host closed the connection) |
| 2026-05-23 08:29:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 08:34:47 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 08:42:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 08:44:41 +0000 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2026-05-23 08:47:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-05-23 08:55:29 +0000 | Googulator | (~Googulato@84-236-52-41.pool.digikabel.hu) (Quit: Client closed) |
| 2026-05-23 08:55:44 +0000 | Googulator | (~Googulato@84-236-52-41.pool.digikabel.hu) |
| 2026-05-23 08:55:45 +0000 | divlamir | (~divlamir@user/divlamir) divlamir |
| 2026-05-23 08:58:03 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e5081bf32954ce73307a.dip0.t-ipconnect.de) |
| 2026-05-23 08:58:44 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 09:00:33 +0000 | acidjnk_new | (~acidjnk@p200300d6e700e570753f3d38cea48d7a.dip0.t-ipconnect.de) |
| 2026-05-23 09:00:44 +0000 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2026-05-23 09:02:56 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-05-23 09:03:14 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e5081bf32954ce73307a.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-05-23 09:04:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 09:04:52 +0000 | jle` | (~jle`@2603:8001:3b00:11::1fae) (Quit: WeeChat 4.8.1) |
| 2026-05-23 09:06:59 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 245 seconds) |
| 2026-05-23 09:08:21 +0000 | jle` | (~jle`@23.240.67.73) jle` |
| 2026-05-23 09:26:05 +0000 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 2026-05-23 09:39:29 +0000 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
| 2026-05-23 09:42:28 +0000 | target_i | (~target_i@user/target-i/x-6023099) target_i |
| 2026-05-23 09:43:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 09:44:11 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-05-23 09:48:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-05-23 09:55:31 +0000 | <Rembane> | Are the performance properties inherent to the lenses or could it also work to make the building blocks the lenses are made of that are already parts of the compiler have those optimizations? |
| 2026-05-23 09:56:47 +0000 | <jaror> | I don't think it is specific to lenses. It is just in general in Haskell if you only update a small part of a large datastructure you still have to pay for reallocating the "spine" |
| 2026-05-23 09:58:40 +0000 | <jaror> | Value semantics avoids this by giving each function a fresh copy of the whole value, so each function gets ownership of all its arguments and can freely mutate them. |
| 2026-05-23 09:59:46 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 10:00:05 +0000 | <jaror> | This copying has generally been considered too expensive in FP languages. Languages like Koka and Roc did experiment with a form of opportunistic mutation through reference counting. |
| 2026-05-23 10:01:43 +0000 | DetourNetworkUK | (~DetourNet@user/DetourNetworkUK) (Read error: Software caused connection abort) |
| 2026-05-23 10:02:30 +0000 | DetourNetworkUK | (~DetourNet@user/DetourNetworkUK) DetourNetworkUK |
| 2026-05-23 10:04:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-05-23 10:04:52 +0000 | <Rembane> | Got it, this all seems very reasonable. |
| 2026-05-23 10:05:21 +0000 | <Rembane> | It would be interesting to do some work on opportunistic mutation in Haskell. |
| 2026-05-23 10:07:04 +0000 | <Rembane> | And since it is an intersting idea people have already done some work on it: https://www.microsoft.com/en-us/research/wp-content/uploads/2023/05/fbip.pdf |
| 2026-05-23 10:09:51 +0000 | <jaror> | Yeah that seems like a promising approach |
| 2026-05-23 10:15:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 10:22:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-05-23 10:23:13 +0000 | <jaror> | I think laziness does make it quite a bit harder though |
| 2026-05-23 10:26:07 +0000 | <jaror> | Also quite a restriction: |
| 2026-05-23 10:26:08 +0000 | <jaror> | We enforce this in our calculus by only |
| 2026-05-23 10:26:08 +0000 | <jaror> | allowing top-level functions (rather than arbitrary closures) as arguments in our fully in-place |
| 2026-05-23 10:26:08 +0000 | <jaror> | calculus, effectively making it second-order. |
| 2026-05-23 10:27:34 +0000 | karenw | (~karenw@user/karenw) (Quit: Deep into that darkness peering...) |
| 2026-05-23 10:32:57 +0000 | puke | (~puke@014136001187.ctinets.com) (*.net *.split) |
| 2026-05-23 10:33:21 +0000 | puke | (~puke@014136001187.ctinets.com) |
| 2026-05-23 10:33:37 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 10:38:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 10:44:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 10:50:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 270 seconds) |
| 2026-05-23 10:50:08 +0000 | <[exa]> | jaror: does the vector-simple have any portability implications/improvements? |
| 2026-05-23 10:50:27 +0000 | <jaror> | I'm not sure what portability problems there are with vector |
| 2026-05-23 10:51:04 +0000 | <jaror> | vector-simple does use GHC's primops extensively |
| 2026-05-23 10:51:04 +0000 | <[exa]> | I mean, not directly (you depend on GHC :D ) but would it be easier to implement the necessary compiler tooling for this in a hypothetical new compiler or so? |
| 2026-05-23 10:51:59 +0000 | <jaror> | Yes I think it would be easier to adapt to other compilers |
| 2026-05-23 10:52:07 +0000 | <[exa]> | anyway the package looks Ok to me, I'd recommend switching to completely 3rd-person narrative in the readme ("theirs" and "ours" vs "vector" and "vector-simple") |
| 2026-05-23 10:52:36 +0000 | <jaror> | vector relies a lot of GHC's optimizations in addition to just the primops they use |
| 2026-05-23 10:52:55 +0000 | <jaror> | s/a lot of/a lot on/ |
| 2026-05-23 10:53:49 +0000 | <[exa]> | also would be great if you could provide exact numbers on overhead (there's like 2+n words estimate written down now, would be great to have exact numbers in hand together with what actual `vector` overhead looks like) |
| 2026-05-23 10:54:19 +0000 | <jaror> | 2+n should be exact |
| 2026-05-23 10:54:36 +0000 | <[exa]> | "much faster to build from scratch" -- you mean rewrite by hand, or build with ghc? |
| 2026-05-23 10:55:11 +0000 | <[exa]> | (btw apologies for a bit of reviewer mood here ^ :D it's good, there's just always so many tiny things to clarify) |
| 2026-05-23 10:55:13 +0000 | <jaror> | build with ghc, perhaps "compile if not cached" is a better description |
| 2026-05-23 10:55:35 +0000 | <jaror> | Yeah, I appreciate the feedback |
| 2026-05-23 10:55:37 +0000 | <[exa]> | ah yes then write "compile" and perhaps point to lack of dependencies |
| 2026-05-23 10:56:39 +0000 | <[exa]> | btw as far as I get it the main use-case for users is for programs that have lots of tiny vectors, right? I'd throw that into the main description. |
| 2026-05-23 10:58:26 +0000 | <jaror> | I don't think that's specifically the main use case. I think this will be my go-to package for anything but the case where I need large mutable arrays. |
| 2026-05-23 10:59:07 +0000 | <[exa]> | Rembane: re "performance properties of lenses" -- I somehow got the feeling that prolens exploited stuff inherent to compilers in a weird way ( (->) is a profunctor that is used there instead of Identity, thus it saves a level of wrapery over the plain (->) that ghc is very good at handling of). Thought it might be relevant to have a look there. |
| 2026-05-23 10:59:09 +0000 | <jaror> | I now often use lists where I think I really should use vectors/arrays instead, but there is no lightweight simple array/vector package. |
| 2026-05-23 10:59:45 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-05-23 10:59:45 +0000 | <int-e> | Vector has, let me think, a tag, two indices, a length, a size, n indices, ceil(n/1024) extra words (assuming 8 byte words) |
| 2026-05-23 11:00:31 +0000 | <jaror> | a length and a size? |
| 2026-05-23 11:00:48 +0000 | <[exa]> | afaik as with reserve() from C |
| 2026-05-23 11:00:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 11:01:11 +0000 | <int-e> | wait, it's worse, isn't it? (Mutable)Array# can't be unpacked, so there's a pointer and another tag? |
| 2026-05-23 11:01:43 +0000 | <jaror> | It's just: |
| 2026-05-23 11:01:43 +0000 | <jaror> | data Vector a = Vector {-# UNPACK #-} !Int |
| 2026-05-23 11:01:43 +0000 | <jaror> | {-# UNPACK #-} !Int |
| 2026-05-23 11:01:43 +0000 | <jaror> | {-# UNPACK #-} !(Array a) |
| 2026-05-23 11:02:16 +0000 | <[exa]> | that's the simple vector or the vector vector? |
| 2026-05-23 11:02:34 +0000 | <jaror> | So two ints for the slicing and an unpacked `Array` which is just the length and the total size for the card table (indeed) and then n + ceil(n/1024) |
| 2026-05-23 11:02:40 +0000 | <jaror> | that's the normal vector |
| 2026-05-23 11:02:44 +0000 | <int-e> | Array is data Array a = Array { array#: Array# a } and Array# a has that size and length and elements and a card table |
| 2026-05-23 11:03:03 +0000 | <jaror> | Oh, won't that be unpacked twice? |
| 2026-05-23 11:03:38 +0000 | <jaror> | Yeah, I guess |
| 2026-05-23 11:03:47 +0000 | <int-e> | No, for that it would have to be unpacked into the Array type. And that wouldn't work with the GC which treats Array# (= a frozen mutable array) specially. |
| 2026-05-23 11:04:14 +0000 | <jaror> | You can unpack Array#, I believe |
| 2026-05-23 11:04:24 +0000 | <jaror> | GHC is not warning me about it at least |
| 2026-05-23 11:05:08 +0000 | <int-e> | That just means it doesn't explicitly hate the pragma. I don't think it *can* actually unpack it. |
| 2026-05-23 11:05:17 +0000 | <jaror> | Oh annoying |
| 2026-05-23 11:05:34 +0000 | <jaror> | I saw this old note and thought something must have happened by now: https://gitlab.haskell.org/ghc/ghc/-/wikis/unpacking-arrays |
| 2026-05-23 11:05:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 11:08:53 +0000 | <jaror> | I'm also now realizing that perhaps vector is not the best name since it seems to be more associated with dynamically resizable or at least slice-able arrays |
| 2026-05-23 11:13:37 +0000 | Square | (~Square@user/square) Square |
| 2026-05-23 11:16:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 11:17:52 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-05-23 11:21:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 11:24:55 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-05-23 11:28:56 +0000 | <[exa]> | jaror: chunk! |
| 2026-05-23 11:29:19 +0000 | <[exa]> | the lack of chunky packages is disturbing |
| 2026-05-23 11:30:49 +0000 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-05-23 11:31:39 +0000 | <jaror> | Chunk sounds like it should be part of a larger structure. |
| 2026-05-23 11:31:44 +0000 | <int-e> | jaror: I guess the right way to check this is to look at the CMM for `data Array = Array !(Array# Int)` and the same with {-# UNPACK #-} added and see that in both cases, the constructors heap representation is the same (one tag, one pointer). |
| 2026-05-23 11:32:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 11:32:37 +0000 | <int-e> | The reason why I was quite sure though is that support for this would have to manifest in the GC, but all the array traversal is tied to the tags for MutableArray#/Array#. |
| 2026-05-23 11:33:28 +0000 | <jaror> | Yeah, I now also found https://gitlab.haskell.org/ghc/ghc/-/issues/24802 which is about ByteArray# but that's still open too |
| 2026-05-23 11:33:48 +0000 | <jaror> | I am convinced |
| 2026-05-23 11:36:44 +0000 | <int-e> | It's interesting that it doesn't warn about using UNPACK on strict unlifted fields, even though it has no effect for those: data X = X {-# UNPACK #-} !Int# |
| 2026-05-23 11:37:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-05-23 11:37:38 +0000 | <jaror> | I think it can have effect on unlifted fields, but of course not on unboxed fields indeed. |
| 2026-05-23 11:37:56 +0000 | <jaror> | with UnliftedDatatypes I mean |
| 2026-05-23 11:38:02 +0000 | <jaror> | those should be unpackable |
| 2026-05-23 11:38:39 +0000 | <jaror> | I think I actually opened an issue that it did warn that I didn't have a ! on an unlifted field |
| 2026-05-23 11:39:06 +0000 | <jaror> | https://gitlab.haskell.org/ghc/ghc/-/issues/20204 |
| 2026-05-23 11:40:49 +0000 | <int-e> | It's funny that there's no mention of garbage collection in #24802 |
| 2026-05-23 11:44:24 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-05-23 11:44:52 +0000 | <int-e> | I guess the narrow case of data Array a = Array (Array# a) could be handled by not introducing a new tag for the constructor. That wouldn't help you if you want to later unpack `Array` into some other constructor. |
| 2026-05-23 11:45:47 +0000 | <jaror> | With data-elevator, I think you can do newtype Array a = Array (Lazy (Array# a)) |
| 2026-05-23 11:46:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 11:46:30 +0000 | <jaror> | And Lazy is also a newtype |
| 2026-05-23 11:47:57 +0000 | <int-e> | Anyway, just to state this point in isolation: Right now, every variable-sized heap object (really just the various arrays, plus some RTS internal things (captured stack frames, I guess?)) has its own special case in the garbage collection functions. To unpack those into other constructors that would have to be generalized. |
| 2026-05-23 11:48:22 +0000 | <jaror> | Yes, that makes sense |
| 2026-05-23 11:53:08 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-05-23 12:03:51 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-05-23 12:04:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 12:08:39 +0000 | weary-traveler | (~user@user/user363627) (Quit: Konversation terminated!) |
| 2026-05-23 12:08:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2026-05-23 12:19:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 12:24:31 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-05-23 12:24:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 12:26:58 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Quit: tnt1) |
| 2026-05-23 12:27:38 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 12:27:50 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-05-23 12:29:36 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Client Quit) |
| 2026-05-23 12:30:05 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 12:31:55 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Client Quit) |
| 2026-05-23 12:33:25 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-05-23 12:33:26 +0000 | Digitteknohippie | (~user@user/digit) Digit |
| 2026-05-23 12:33:55 +0000 | Digit | (~user@user/digit) (Ping timeout: 272 seconds) |
| 2026-05-23 12:34:46 +0000 | emilym | (~Thunderbi@user/emilym) (Remote host closed the connection) |
| 2026-05-23 12:35:03 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-05-23 12:37:41 +0000 | <jaror> | Maybe I can just define it as data Vector a = V0 | V1 !a | V2 !a !a | Vn (Array# a), then it is always at smaller or equal in size to lists |
| 2026-05-23 12:37:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 12:42:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-05-23 12:47:28 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 12:49:18 +0000 | Digitteknohippie | Digit |
| 2026-05-23 12:52:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 13:02:47 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-23 13:06:20 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 2026-05-23 13:06:21 +0000 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 2026-05-23 13:06:21 +0000 | haritz | (~hrtz@user/haritz) haritz |
| 2026-05-23 13:06:50 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-05-23 13:08:00 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-05-23 13:08:43 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-05-23 13:18:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 13:21:00 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 245 seconds) |
| 2026-05-23 13:23:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 13:34:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 13:40:44 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-05-23 13:42:13 +0000 | nattkyrro | (~serenity@user/nattkyrro) nattkyrro |
| 2026-05-23 13:48:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 13:53:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 13:58:50 +0000 | cyclemaniac | (~cyclemani@2a02:8071:881:2d20:c1c7:793e:b89b:1589) |
| 2026-05-23 14:03:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 14:06:21 +0000 | synchromesh | (~john@2406:5a00:247e:1500:29d7:765d:2d71:9db7) (Read error: Connection reset by peer) |
| 2026-05-23 14:06:57 +0000 | synchromesh | (~john@2406:5a00:247e:1500:bc22:e610:8777:fdc1) synchromesh |
| 2026-05-23 14:08:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 247 seconds) |
| 2026-05-23 14:19:35 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-23 14:21:39 +0000 | cyclemaniac | (~cyclemani@2a02:8071:881:2d20:c1c7:793e:b89b:1589) (Quit: Client closed) |
| 2026-05-23 14:21:51 +0000 | cyclemaniac | (~cyclemani@2a02:8071:881:2d20:c1c7:793e:b89b:1589) |
| 2026-05-23 14:24:27 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-05-23 14:27:25 +0000 | hsw | (~hsw@112-104-8-95.adsl.dynamic.seed.net.tw) (Remote host closed the connection) |
| 2026-05-23 14:27:43 +0000 | hsw | (~hsw@112-104-8-95.adsl.dynamic.seed.net.tw) hsw |
| 2026-05-23 14:30:04 +0000 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds) |
| 2026-05-23 14:31:58 +0000 | ec | (~ec@gateway/tor-sasl/ec) ec |
| 2026-05-23 14:35:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 14:35:54 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-05-23 14:37:32 +0000 | tusko | (~uwu@user/tusko) (Remote host closed the connection) |
| 2026-05-23 14:37:32 +0000 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 2026-05-23 14:37:32 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-05-23 14:37:32 +0000 | califax | (~califax@user/califx) (Remote host closed the connection) |
| 2026-05-23 14:37:39 +0000 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
| 2026-05-23 14:37:51 +0000 | califax | (~califax@user/califx) califx |
| 2026-05-23 14:37:53 +0000 | chexum | (~quassel@gateway/tor-sasl/chexum) chexum |
| 2026-05-23 14:38:03 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-05-23 14:38:33 +0000 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 2026-05-23 14:38:56 +0000 | ec | (~ec@gateway/tor-sasl/ec) ec |
| 2026-05-23 14:39:50 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-05-23 14:40:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 14:43:14 +0000 | tusko | (~uwu@user/tusko) (Read error: Connection reset by peer) |
| 2026-05-23 14:46:32 +0000 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-05-23 14:48:28 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-05-23 14:49:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 14:50:23 +0000 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-05-23 14:54:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-05-23 14:59:05 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2026-05-23 15:04:17 +0000 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 2026-05-23 15:04:42 +0000 | ec | (~ec@gateway/tor-sasl/ec) ec |
| 2026-05-23 15:10:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 15:17:08 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-05-23 15:27:37 +0000 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-05-23 15:31:16 +0000 | jreicher | (~joelr@user/jreicher) jreicher |
| 2026-05-23 15:44:37 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 15:50:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 15:51:58 +0000 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2026-05-23 15:55:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 15:59:42 +0000 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
| 2026-05-23 16:04:01 +0000 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2026-05-23 16:04:13 +0000 | gmg | (~user@user/gehmehgeh) (Client Quit) |
| 2026-05-23 16:05:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 16:07:25 +0000 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 252 seconds) |
| 2026-05-23 16:08:03 +0000 | chexum | (~quassel@gateway/tor-sasl/chexum) chexum |
| 2026-05-23 16:10:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 263 seconds) |
| 2026-05-23 16:21:17 +0000 | pfc | (~pfc@user/pfc) pfc |
| 2026-05-23 16:21:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 16:26:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 16:27:56 +0000 | rekahsoft | (~rekahsoft@70.51.99.119) rekahsoft |
| 2026-05-23 16:28:37 +0000 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2026-05-23 16:34:38 +0000 | Square | (~Square@user/square) (Remote host closed the connection) |
| 2026-05-23 16:35:03 +0000 | Square | (~Square@user/square) Square |
| 2026-05-23 16:36:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 16:41:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 16:45:47 +0000 | Jacqueline__ | (uid751191@id-751191.helmsley.irccloud.com) |
| 2026-05-23 16:47:03 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 2026-05-23 16:48:23 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-05-23 16:48:43 +0000 | ouilemur | (~jgmerritt@user/ouilemur) (Quit: WeeChat 4.9.0) |
| 2026-05-23 16:49:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 16:50:26 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-05-23 16:51:39 +0000 | Pozyomka_ | (~pyon@user/pyon) (Quit: brb) |
| 2026-05-23 16:54:19 +0000 | Square | (~Square@user/square) (Ping timeout: 264 seconds) |
| 2026-05-23 16:54:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 17:01:22 +0000 | tomsmeding | (~tomsmedin@user/tomsmeding) (Quit: ZNC 1.10.2 - https://znc.in) |
| 2026-05-23 17:01:40 +0000 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-05-23 17:01:40 +0000 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-05-23 17:02:05 +0000 | tomsmeding | (~tomsmedin@user/tomsmeding) tomsmeding |
| 2026-05-23 17:03:20 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-05-23 17:03:23 +0000 | <[exa]> | traverse_ in Prelude when????// |
| 2026-05-23 17:05:26 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 17:05:39 +0000 | <monochrom> | Is mapM_ not good enough? |
| 2026-05-23 17:06:05 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-05-23 17:10:07 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 2026-05-23 17:12:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 249 seconds) |
| 2026-05-23 17:13:24 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-05-23 17:16:37 +0000 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-05-23 17:19:44 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Quit: tnt1) |
| 2026-05-23 17:20:25 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 17:20:31 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-05-23 17:23:27 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-23 17:26:57 +0000 | bggd | (~bgg@2a01:e0a:fd5:f510:4224:8b9e:1684:708d) |
| 2026-05-23 17:26:57 +0000 | bggd | (~bgg@2a01:e0a:fd5:f510:4224:8b9e:1684:708d) (Changing host) |
| 2026-05-23 17:26:57 +0000 | bggd | (~bgg@user/bggd) bggd |
| 2026-05-23 17:28:09 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-05-23 17:29:24 +0000 | tusko | (~uwu@user/tusko) (Quit: Lost terminal) |
| 2026-05-23 17:33:06 +0000 | FirefoxDeHuk | (~FirefoxDe@user/FirefoxDeHuk) FirefoxDeHuk |
| 2026-05-23 17:33:47 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Quit: tnt1) |
| 2026-05-23 17:35:36 +0000 | FirefoxDeHuk | (~FirefoxDe@user/FirefoxDeHuk) (Client Quit) |
| 2026-05-23 17:38:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 17:39:00 +0000 | FirefoxDeHuk | (~FirefoxDe@user/FirefoxDeHuk) FirefoxDeHuk |
| 2026-05-23 17:39:36 +0000 | FirefoxDeHuk | (~FirefoxDe@user/FirefoxDeHuk) (Write error: Broken pipe) |
| 2026-05-23 17:41:08 +0000 | nitrix | (~nitrix@user/meow/nitrix) (Ping timeout: 244 seconds) |
| 2026-05-23 17:41:24 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-05-23 17:45:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 17:47:18 +0000 | <davean> | monochrom: since when does anyone have a monad? |
| 2026-05-23 17:47:29 +0000 | <davean> | You must be rich |
| 2026-05-23 17:48:32 +0000 | <monochrom> | heh |
| 2026-05-23 17:49:03 +0000 | monochrom | has a sugar monad daddy! |
| 2026-05-23 17:50:23 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-05-23 17:51:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 17:51:33 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-05-23 17:52:38 +0000 | <Clint> | but what does a sugar monad transformer do |
| 2026-05-23 17:54:10 +0000 | <davean> | It pays for your gas at every step of doing what it tells you to |
| 2026-05-23 17:56:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 273 seconds) |
| 2026-05-23 17:59:39 +0000 | <[exa]> | monochrom: yeah it's not like I wouldn't had a mapM_ byt everyone keeps telling me to traverse instead of mapM yet here we are with no traverse_ |
| 2026-05-23 18:00:27 +0000 | <[exa]> | bonus points for its very clear occurrence in Data.Travers...oh wait |
| 2026-05-23 18:00:53 +0000 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 2026-05-23 18:02:19 +0000 | <__monty__> | Sell me on traverse. |
| 2026-05-23 18:03:53 +0000 | <monochrom> | Heh yeah traverse_ does not even need Traversable, only Foldable, so it goes to... Data.Foldable! |
| 2026-05-23 18:04:25 +0000 | <davean> | "As part of the Digital Library's transition to Open Access" wait, can I stop hatting the ACM maybe finally? |
| 2026-05-23 18:04:43 +0000 | <davean> | Sorry, I went to pull up a citation for __monty__ and ... now distracted |
| 2026-05-23 18:04:54 +0000 | <monochrom> | Were it named "foldWithApplicative" you would not be looking for it in Data.Traversable! Names are lies! |
| 2026-05-23 18:05:07 +0000 | <monochrom> | There are lies, damn lies, and meaningful identifiers. |
| 2026-05-23 18:05:10 +0000 | <[exa]> | davean: ACM has been kinda improving it lately, they had the free access links since forever and now it's pretty much full open |
| 2026-05-23 18:05:27 +0000 | <[exa]> | davean: sensible reflection on the fact that the computer people will simply pirate the papers otherwise |
| 2026-05-23 18:05:30 +0000 | <davean> | [exa]: Not when it would have made a life-changing difference for me they didn't! |
| 2026-05-23 18:05:41 +0000 | <monochrom> | Yes you should hate ACM less. :) |
| 2026-05-23 18:06:11 +0000 | <davean> | When I was in elementry school, destitute, and actually trying to learn they were all like "Only profesionals get to learn stuff! Keep everyone out!" |
| 2026-05-23 18:06:27 +0000 | <davean> | And I'll probably never forgive them gatekeeping that knowleg |
| 2026-05-23 18:06:40 +0000 | <davean> | but maybe I can stop refusing to be involved in anything they touch |
| 2026-05-23 18:06:47 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-23 18:07:26 +0000 | <[exa]> | like, at least compared to the amount of horsepoop originating from certain unnamed other publishers that I have to interact with, ACM is just great |
| 2026-05-23 18:07:31 +0000 | <davean> | The ACM did a lot of active damage ot my life |
| 2026-05-23 18:08:26 +0000 | <[exa]> | anyway yeah 10 years ago the paper availability was not great |
| 2026-05-23 18:08:58 +0000 | <davean> | 10 years ago it was GREAT |
| 2026-05-23 18:09:07 +0000 | <davean> | 10 years ago was SO MUCH BETTER |
| 2026-05-23 18:09:12 +0000 | nitrix | (~nitrix@user/meow/nitrix) nitrix |
| 2026-05-23 18:09:43 +0000 | <[exa]> | as in, compared to 20 years ago? |
| 2026-05-23 18:09:47 +0000 | <davean> | You could actually get the papers 10 years ago and they wouldn't kick out out like they were some sort of occult priesthood you had to do initation rights to talk to |
| 2026-05-23 18:10:01 +0000 | <davean> | The 90s really |
| 2026-05-23 18:10:10 +0000 | <davean> | They were DEEPLY evil in the 90s |
| 2026-05-23 18:10:25 +0000 | <[exa]> | yeah that was abysmal, "become a university library pls" |
| 2026-05-23 18:10:46 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-05-23 18:11:06 +0000 | <davean> | The amount my life would be better if the ACM hadn't existed in the 90s is immense |
| 2026-05-23 18:11:36 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-05-23 18:12:32 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-05-23 18:15:33 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-05-23 18:22:44 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 18:27:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 18:30:56 +0000 | ouilemur | (~jgmerritt@user/ouilemur) ouilemur |
| 2026-05-23 18:33:36 +0000 | karenw | (~karenw@user/karenw) (Ping timeout: 252 seconds) |
| 2026-05-23 18:38:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 18:42:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 18:53:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 18:55:23 +0000 | Jacqueline__ | (uid751191@id-751191.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 2026-05-23 18:58:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 19:04:40 +0000 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2026-05-23 19:08:58 +0000 | Square | (~Square@user/square) Square |
| 2026-05-23 19:09:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 19:14:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-05-23 19:15:46 +0000 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-05-23 19:19:08 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:379:6b8f:6819:999a) |
| 2026-05-23 19:20:39 +0000 | michalz | (~michalz@185.246.207.200) |
| 2026-05-23 19:25:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 19:32:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 267 seconds) |
| 2026-05-23 19:43:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 19:48:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-05-23 19:56:23 +0000 | dostoyevsky2 | (~sck@user/dostoyevsky2) (Quit: leaving) |
| 2026-05-23 19:59:09 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-23 19:59:44 +0000 | dostoyevsky2 | (~sck@user/dostoyevsky2) dostoyevsky2 |
| 2026-05-23 20:02:40 +0000 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: ksdvksd) |
| 2026-05-23 20:04:21 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-05-23 20:07:22 +0000 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
| 2026-05-23 20:16:29 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 20:20:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 243 seconds) |
| 2026-05-23 20:26:56 +0000 | DetourNe- | (~DetourNet@user/DetourNetworkUK) DetourNetworkUK |
| 2026-05-23 20:27:54 +0000 | DetourNetworkUK | (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2026-05-23 20:29:09 +0000 | DetourNe- | DetourNetworkUK |
| 2026-05-23 20:30:00 +0000 | pavonia | (~user@user/siracusa) siracusa |
| 2026-05-23 20:31:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 20:33:40 +0000 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-05-23 20:36:15 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-05-23 20:37:06 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 266 seconds) |
| 2026-05-23 20:40:13 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-05-23 20:47:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 20:50:17 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-05-23 20:52:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-05-23 20:57:37 +0000 | DetourNe- | (~DetourNet@user/DetourNetworkUK) DetourNetworkUK |
| 2026-05-23 20:57:40 +0000 | DetourNetworkUK | (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2026-05-23 20:59:50 +0000 | DetourNe- | DetourNetworkUK |
| 2026-05-23 21:03:26 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-23 21:10:21 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-05-23 21:15:27 +0000 | jcarpenter2 | (~lol@2603:3016:1e01:b9c0:2d67:5cab:fe49:9b31) (Ping timeout: 246 seconds) |
| 2026-05-23 21:21:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 21:26:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-05-23 21:27:46 +0000 | michalz | (~michalz@185.246.207.200) (Remote host closed the connection) |
| 2026-05-23 21:34:40 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 276 seconds) |
| 2026-05-23 21:35:13 +0000 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection) |
| 2026-05-23 21:37:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-05-23 21:41:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-05-23 21:49:45 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds) |
| 2026-05-23 21:50:45 +0000 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |