2025/12/19

2025-12-19 00:03:11 +0100lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-19 00:07:29 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 00:09:59 +0100infinity0(~infinity0@pwned.gg) infinity0
2025-12-19 00:12:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 00:20:52 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-12-19 00:20:55 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-12-19 00:24:08 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 00:24:21 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 00:25:19 +0100xff0x(~xff0x@2405:6580:b080:900:ea01:4fbc:9554:a780) (Ping timeout: 250 seconds)
2025-12-19 00:29:09 +0100tromp(~textual@2001:1c00:3487:1b00:388e:400a:f906:df4a) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-19 00:30:01 +0100xff0x(~xff0x@2405:6580:b080:900:ea01:4fbc:9554:a780)
2025-12-19 00:40:23 +0100lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds)
2025-12-19 00:41:39 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-19 00:51:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 00:56:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 01:00:31 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds)
2025-12-19 01:07:05 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 01:07:35 +0100lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-19 01:12:01 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-19 01:14:29 +0100olivial(~benjaminl@user/benjaminl) (Ping timeout: 260 seconds)
2025-12-19 01:17:46 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds)
2025-12-19 01:20:04 +0100haskellbridge(~hackager@96.28.224.214) (Remote host closed the connection)
2025-12-19 01:20:44 +0100haskellbridge(~hackager@96.28.224.214) hackager
2025-12-19 01:20:44 +0100ChanServ+v haskellbridge
2025-12-19 01:22:54 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 01:27:31 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-19 01:28:28 +0100lbseale(~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2025-12-19 01:29:12 +0100lbseale(~quassel@user/ep1ctetus) ep1ctetus
2025-12-19 01:30:06 +0100olivial(~benjaminl@user/benjaminl) benjaminl
2025-12-19 01:38:24 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds)
2025-12-19 01:38:38 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 01:42:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 01:45:51 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 01:46:05 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 01:48:10 +0100xff0x(~xff0x@2405:6580:b080:900:ea01:4fbc:9554:a780) (Ping timeout: 246 seconds)
2025-12-19 01:48:50 +0100Pozyomka(~pyon@user/pyon) (Read error: Connection reset by peer)
2025-12-19 01:54:00 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 01:58:44 +0100somemathguy(~somemathg@user/somemathguy) somemathguy
2025-12-19 01:58:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 01:59:00 +0100driib3180(~driib@vmi931078.contaboserver.net) driib
2025-12-19 02:00:54 +0100driib3180(~driib@vmi931078.contaboserver.net) (Client Quit)
2025-12-19 02:09:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 02:10:07 +0100driib3180(~driib@vmi931078.contaboserver.net) driib
2025-12-19 02:10:51 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 02:15:01 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-19 02:21:24 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 02:24:36 +0100divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2025-12-19 02:24:59 +0100divlamir(~divlamir@user/divlamir) divlamir
2025-12-19 02:25:37 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 02:25:55 +0100omidmash8(~omidmash@user/omidmash) omidmash
2025-12-19 02:28:33 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 260 seconds)
2025-12-19 02:28:33 +0100omidmash8omidmash
2025-12-19 02:28:42 +0100Tuplanolla(~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) (Quit: Leaving.)
2025-12-19 02:29:09 +0100trickard_trickard
2025-12-19 02:30:26 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-19 02:36:01 +0100lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds)
2025-12-19 02:41:23 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 02:46:39 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-19 02:49:44 +0100weary-traveler(~user@user/user363627) user363627
2025-12-19 02:57:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 02:58:24 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-12-19 02:59:24 +0100mange(~mange@user/mange) mange
2025-12-19 03:03:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 03:05:44 +0100pabs3(~pabs3@user/pabs3) (Quit: Don't rest until all the world is paved in moss and greenery.)
2025-12-19 03:06:30 +0100pabs3(~pabs3@user/pabs3) pabs3
2025-12-19 03:11:49 +0100jj(~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) (Ping timeout: 246 seconds)
2025-12-19 03:15:13 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 03:20:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-19 03:26:51 +0100jj(~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) omentic
2025-12-19 03:31:00 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 03:35:38 +0100acidjnk(~acidjnk@p200300d6e7171981f0c6dc9689540cc0.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2025-12-19 03:35:57 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-19 03:36:14 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-19 03:36:19 +0100talismanick(~user@2601:644:8502:d340::cd3d) (Ping timeout: 246 seconds)
2025-12-19 03:46:48 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 03:51:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-19 03:51:54 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-19 03:54:18 +0100lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-19 03:54:44 +0100Square(~Square4@user/square) Square
2025-12-19 03:55:34 +0100GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Ping timeout: 246 seconds)
2025-12-19 03:58:31 +0100Square2(~Square@user/square) (Ping timeout: 240 seconds)
2025-12-19 03:58:43 +0100lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds)
2025-12-19 04:02:35 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 04:07:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-19 04:09:12 +0100jj(~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) (Remote host closed the connection)
2025-12-19 04:18:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 04:23:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-19 04:27:36 +0100trickard(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 04:27:50 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 04:32:11 +0100mange(~mange@user/mange) (Remote host closed the connection)
2025-12-19 04:34:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 04:36:22 +0100RMSBach(~RMSBach@2603:6013:9b00:a7c8:e7e5:f272:eb86:ddf) (Ping timeout: 255 seconds)
2025-12-19 04:37:31 +0100td_(~td@i53870911.versanet.de) (Ping timeout: 250 seconds)
2025-12-19 04:38:35 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 04:39:14 +0100td_(~td@i53870930.versanet.de)
2025-12-19 04:45:51 +0100GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2025-12-19 04:55:08 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 04:55:22 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 05:08:43 +0100qqe(~qqq@185.54.20.98) (Quit: Lost terminal)
2025-12-19 05:20:51 +0100Googulator4(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 05:21:12 +0100Googulator73(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 05:25:08 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 05:27:53 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 05:31:06 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2025-12-19 05:36:35 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-12-19 05:43:03 +0100cheater(~AdminUser@2a02:8388:a180:3500:2936:d5c0:ce56:944) (Changing host)
2025-12-19 05:43:03 +0100cheater(~AdminUser@user/cheater) cheater
2025-12-19 05:43:04 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-19 05:47:31 +0100poscat(~poscat@user/poscat) poscat
2025-12-19 05:48:55 +0100poscat0x04(~poscat@user/poscat) (Ping timeout: 240 seconds)
2025-12-19 05:50:45 +0100Googulator80(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 05:50:47 +0100Googulator4(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 05:54:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 05:57:09 +0100somemathguy(~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1)
2025-12-19 06:01:31 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-19 06:11:15 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds)
2025-12-19 06:12:26 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 06:17:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-19 06:20:41 +0100Googulator19(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 06:20:45 +0100Googulator80(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 06:25:21 +0100spew(~spew@user/spew) (Quit: nyaa~)
2025-12-19 06:28:13 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 06:33:33 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-19 06:35:48 +0100jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.8.1)
2025-12-19 06:37:56 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-12-19 06:44:01 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 06:45:26 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-19 06:47:46 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 246 seconds)
2025-12-19 06:48:21 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-19 06:48:27 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-19 06:48:52 +0100michalz(~michalz@185.246.207.221)
2025-12-19 06:50:39 +0100Googulator67(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 06:50:42 +0100Googulator19(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 06:52:43 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 255 seconds)
2025-12-19 06:53:31 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-19 06:59:34 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 07:03:11 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2025-12-19 07:04:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-19 07:07:24 +0100j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-12-19 07:07:27 +0100j1n37-(~j1n37@user/j1n37) j1n37
2025-12-19 07:08:31 +0100takuan(~takuan@d8D86B9E9.access.telenet.be)
2025-12-19 07:08:46 +0100haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-12-19 07:13:50 +0100jj(~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) omentic
2025-12-19 07:18:29 +0100tessier(~tessier@ec2-184-72-149-67.compute-1.amazonaws.com) (Remote host closed the connection)
2025-12-19 07:21:56 +0100 <Axman6> @unmtl ExceptT err (ReaderT conf IO) a
2025-12-19 07:21:56 +0100 <lambdabot> conf -> IO (Either err a)
2025-12-19 07:22:14 +0100 <Axman6> @ unmtl ReaderT conf (ExceptT err IO) a
2025-12-19 07:22:17 +0100 <Axman6> @unmtl ReaderT conf (ExceptT err IO) a
2025-12-19 07:22:17 +0100 <lambdabot> conf -> IO (Either err a)
2025-12-19 07:24:37 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds)
2025-12-19 07:30:51 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 07:31:09 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Ping timeout: 252 seconds)
2025-12-19 07:33:16 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-19 07:37:03 +0100trickard_trickard
2025-12-19 07:37:31 +0100larsivi(~larsivi@user/larsivi) (Ping timeout: 264 seconds)
2025-12-19 07:37:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-19 07:41:06 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-19 07:41:31 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-19 07:42:01 +0100Eoco_(~ian@128.101.131.218) (Ping timeout: 246 seconds)
2025-12-19 07:42:24 +0100remexre(~remexre@user/remexre) (Ping timeout: 260 seconds)
2025-12-19 07:44:06 +0100Eoco(~ian@128.101.131.218) Eoco
2025-12-19 07:46:13 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 244 seconds)
2025-12-19 07:48:17 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds)
2025-12-19 07:48:25 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-19 07:48:54 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 07:50:00 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-19 07:50:19 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-19 07:51:16 +0100remexre(~remexre@user/remexre) remexre
2025-12-19 07:53:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 07:55:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 08:00:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 08:08:39 +0100annamalai(~annamalai@157.32.125.111) (Ping timeout: 260 seconds)
2025-12-19 08:08:53 +0100 <Axman6> Is there a good reason to pick one of these over the other?
2025-12-19 08:20:44 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 08:20:44 +0100Googulator67(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 08:20:54 +0100Googulator67(~Googulato@80-95-87-105.pool.digikabel.hu)
2025-12-19 08:23:59 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2025-12-19 08:25:23 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-19 08:28:36 +0100 <int-e> I don't know; the second one may save the compiler a tiny bit of work when simplifying >>= ?
2025-12-19 08:30:22 +0100 <int-e> (there's no behavioral difference)
2025-12-19 08:31:28 +0100larsivi(~larsivi@user/larsivi) larsivi
2025-12-19 08:36:34 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 08:38:35 +0100FANTOM(~fantom@90.244.161.115) (Ping timeout: 240 seconds)
2025-12-19 08:41:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-19 08:44:40 +0100annamalai(~annamalai@2409:4042:2312:1f01::15d4:c8a5) annamalai
2025-12-19 08:51:10 +0100shaeto(~Shaeto@94.25.234.244)
2025-12-19 08:51:12 +0100FANTOM(~fantom@90.244.161.115)
2025-12-19 08:51:28 +0100Square2(~Square@user/square) Square
2025-12-19 08:52:16 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 08:52:52 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
2025-12-19 08:54:49 +0100Square(~Square4@user/square) (Ping timeout: 246 seconds)
2025-12-19 08:56:58 +0100bliminse(~bliminse@user/bliminse) (Quit: leaving)
2025-12-19 08:58:15 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 240 seconds)
2025-12-19 09:00:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 09:00:29 +0100tomboy64(~tomboy64@user/tomboy64) tomboy64
2025-12-19 09:05:55 +0100 <Axman6> yeah, I was wondering if there was a performance difference between the two
2025-12-19 09:08:22 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-19 09:12:11 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 09:13:03 +0100tromp(~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
2025-12-19 09:16:52 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-19 09:17:01 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 265 seconds)
2025-12-19 09:20:47 +0100Googulator67(~Googulato@80-95-87-105.pool.digikabel.hu) (Quit: Client closed)
2025-12-19 09:20:50 +0100Googulator29(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 09:24:38 +0100chele(~chele@user/chele) chele
2025-12-19 09:24:55 +0100bairyn(~bairyn@MAIL.DIGITALKINGDOM.ORG) (Ping timeout: 246 seconds)
2025-12-19 09:26:20 +0100ByronJohnson(~bairyn@MAIL.DIGITALKINGDOM.ORG) ByronJohnson
2025-12-19 09:27:53 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 09:28:31 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-12-19 09:29:35 +0100shaeto(~Shaeto@94.25.234.244) (Ping timeout: 265 seconds)
2025-12-19 09:30:27 +0100bliminse(~bliminse@user/bliminse) bliminse
2025-12-19 09:31:08 +0100tomboy64(~tomboy64@user/tomboy64) tomboy64
2025-12-19 09:31:28 +0100shaeto(~Shaeto@78.37.15.179)
2025-12-19 09:32:38 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-19 09:36:08 +0100shaeto(~Shaeto@78.37.15.179) (Ping timeout: 260 seconds)
2025-12-19 09:37:45 +0100shaeto(~Shaeto@94.25.234.244)
2025-12-19 09:41:49 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-19 09:43:17 +0100tromp(~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-19 09:43:17 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 09:47:57 +0100tromp(~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
2025-12-19 09:48:03 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-19 09:50:48 +0100Googulator22(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 09:50:48 +0100Googulator29(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 09:57:23 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 10:00:24 +0100tema(~tema@93.175.2.131)
2025-12-19 10:02:05 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2025-12-19 10:03:35 +0100Square2(~Square@user/square) (Ping timeout: 240 seconds)
2025-12-19 10:04:06 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-12-19 10:05:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 10:11:45 +0100euphores(~SASL_euph@user/euphores) euphores
2025-12-19 10:15:56 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-19 10:20:48 +0100Googulator71(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 10:20:48 +0100Googulator22(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 10:21:51 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-19 10:21:58 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Read error: Connection reset by peer)
2025-12-19 10:22:44 +0100 <probie> Axman6: I think the only way to accurately answer that question is to benchmark it
2025-12-19 10:36:23 +0100cafkafk(~cafkafk@fsf/member/cafkafk) cafkafk
2025-12-19 10:37:13 +0100cafkafk(~cafkafk@fsf/member/cafkafk) (Client Quit)
2025-12-19 10:43:27 +0100 <haskellbridge> <Liamzee> hmmm, playing around with Haskell-To-Rust FFI. Why are we claiming this is black magic again?
2025-12-19 10:44:18 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-12-19 10:48:11 +0100 <merijn> Who is claiming what is black magic?
2025-12-19 10:49:29 +0100 <haskellbridge> <Liamzee> I just heard from humans that Haskell-Rust FFI is a pita. This seems easy, doable, and fun, at least at the hello world stage.
2025-12-19 10:49:46 +0100 <haskellbridge> <Morj> What are you using for it?
2025-12-19 10:49:59 +0100 <haskellbridge> <Morj> Rust-to-haskell-via-c is a pain in the ass on both sides
2025-12-19 10:50:32 +0100 <haskellbridge> <Liamzee> I just generated a libffitest.a file from Cargo, dumped it into my cabal init folder
2025-12-19 10:50:33 +0100Googulator71(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 10:50:42 +0100Googulator71(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 10:50:46 +0100 <haskellbridge> <Liamzee> under cbits, then direct called with ccall
2025-12-19 10:51:11 +0100 <haskellbridge> <Liamzee> but ccall is old and iirc suspect, so i shuffled the cabal around a bit more, added a libffitest.h header in C
2025-12-19 10:51:25 +0100 <haskellbridge> <Liamzee> swapped to capi
2025-12-19 10:51:50 +0100 <haskellbridge> <Liamzee> also I made sure there was #[unsafe(nomangle)] annotations and the extern "C" declaration.
2025-12-19 10:52:08 +0100 <haskellbridge> <Morj> You are quite tolerant to pain I see
2025-12-19 10:52:38 +0100 <merijn> The Haskell FFI to C is pretty comfy imo, I would assume Rust's is too, so I wouldn't expect it to be particularly painful
2025-12-19 10:52:48 +0100 <merijn> Liamzee: ccall is not all all suspect
2025-12-19 10:52:55 +0100 <haskellbridge> <Morj> Also «easy, doable, and /fun/», really?
2025-12-19 10:53:00 +0100 <haskellbridge> <Liamzee> Morj: this isn't that painful, 5 minutes
2025-12-19 10:53:17 +0100 <haskellbridge> <Liamzee> I'm sure once it gets into sophisticated memory handling it's going to become nightmarish, especially under concurrent conditions
2025-12-19 10:53:38 +0100 <haskellbridge> <Morj> Mm, in my experience it's about the same nightmare as binding to c++ code
2025-12-19 10:53:46 +0100 <merijn> Liamzee: ccall is just the tradiational C ABI, with all limitations of that (i.e. no access to CPP, etc)
2025-12-19 10:53:53 +0100 <merijn> Morj: No, C++ is infinitely worse
2025-12-19 10:53:55 +0100 <haskellbridge> <Morj> In general rust's typical approaches to memory are very similar to c++
2025-12-19 10:54:12 +0100 <haskellbridge> <Morj> Hm, you think? Why?
2025-12-19 10:54:37 +0100 <merijn> Because C++ doesn't have any ABI defined at all
2025-12-19 10:54:37 +0100 <haskellbridge> <Liamzee> the worst part right now is that Cabal can't do this on its own, not without a custom Setup.hs
2025-12-19 10:54:46 +0100 <merijn> Liamzee: What?
2025-12-19 10:54:53 +0100 <merijn> What do you need a custom setup.hs for?
2025-12-19 10:55:00 +0100 <haskellbridge> <Morj> I mean «modern» c++ with smart pointers and stuff. If we're talking c++ with manual memory management, that's terrible, but that's also terrible to use from c++
2025-12-19 10:55:04 +0100 <haskellbridge> <Liamzee> ? I had to generate a static build artifact from Cargo
2025-12-19 10:55:06 +0100 <haskellbridge> <Liamzee> then copy paste
2025-12-19 10:55:27 +0100 <haskellbridge> <Morj> "ABI" - yes, but you do the same thing and export unmangled functions with C abi in c++
2025-12-19 10:55:27 +0100 <merijn> Liamzee: Oh, cabal not being able to call cargo, yeah that's true
2025-12-19 10:55:50 +0100 <haskellbridge> <Liamzee> I read that Rust has cbindgen
2025-12-19 10:56:06 +0100 <haskellbridge> <Liamzee> I promised someone and I'll probably break the promise, to go give them FFI parquet support
2025-12-19 10:56:10 +0100raym(~ray@user/raym) (Ping timeout: 245 seconds)
2025-12-19 10:56:36 +0100 <haskellbridge> <Liamzee> so I took a look at Apache Arrow, and noped the hell out, am now considering whether I can do parquet-rs instead
2025-12-19 10:58:07 +0100 <merijn> Liamzee: FWIW cabal is pretty well-behaved when you call it from, e.g. a Makefile
2025-12-19 10:58:37 +0100 <merijn> I basically had a C++ + haskell project where I just had a makefile calling cabal to deal with building the haskell bits
2025-12-19 10:58:54 +0100haritz(~hrtz@140.228.70.141)
2025-12-19 10:58:54 +0100haritz(~hrtz@140.228.70.141) (Changing host)
2025-12-19 10:58:54 +0100haritz(~hrtz@user/haritz) haritz
2025-12-19 10:59:58 +0100 <merijn> Liamzee: Anyway, I would generally *prefer* ccall over capi unless I specifically needed capi, for for example accessing CPP macros
2025-12-19 11:01:43 +0100 <haskellbridge> <Liamzee> i mean if i'm just doing things with Rust artifacts
2025-12-19 11:01:51 +0100 <haskellbridge> <Liamzee> I can probably live with ccall, right?
2025-12-19 11:02:32 +0100 <haskellbridge> <Liamzee> still, so exciting, Haskell being a driver for Rust has been a dream of mine for years. I just thought it was black magic that required being at Serokell or Well-Typed to pull off
2025-12-19 11:03:11 +0100raym(~ray@user/raym) raym
2025-12-19 11:03:28 +0100 <merijn> Liamzee: The main difference is "ccall" directly generates code calling stuff according to C ABI. CAPI has GHC generating and compiling a C wrapper (using a C compiler) then calling that wrapper.Which is how it can access, e.g. CPP values, because the CPP is substituted in the generated C wrapper
2025-12-19 11:03:39 +0100 <merijn> But that C wrapper is extra indirection
2025-12-19 11:04:32 +0100 <haskellbridge> <Morj> What serokell or well-typed are writing is even more magic, where they want to automatically interoperate between haskell and rust types, and not have to write foreign imports and exports
2025-12-19 11:04:38 +0100 <haskellbridge> <Liamzee> yup, i see the problem now, apparently GHCRTS and Rust will fight over ownership?
2025-12-19 11:05:06 +0100 <merijn> Liamzee: You'll just have to manually and explicitly manage ownership
2025-12-19 11:05:48 +0100 <haskellbridge> <Liamzee> But the problem is that I can't do it all from the Haskell side, no? I'd have to go into the rust, manually edit stuff so it doesn't take ownership. Ugh.
2025-12-19 11:06:46 +0100 <merijn> Liamzee: I mean, in the haskell FFI you can manually do 'malloc' to get a pointer that doesn't get freed by Haskell in which case Rust can take ownership
2025-12-19 11:08:39 +0100 <haskellbridge> <Morj> Rust also doesn't have a stable abi, so the functions you export from rust are only going to have C compatible arguments, which are all Copy, so the ownership semantics happen a layer deeper
2025-12-19 11:09:31 +0100 <haskellbridge> <Liamzee> I mean in the Parquet case, this is looking as though it'd likely be a disaster, maybe I would have to go through the 2 million line Apache Arrow instead :(
2025-12-19 11:09:47 +0100 <haskellbridge> <Liamzee> precisely, you DON'T want to copy
2025-12-19 11:10:23 +0100 <haskellbridge> <Morj> Like, if you have two functions: one accepting a Box<T>, and another &T - they both will be exported as accepting _const T, and_const T is safe to copy
2025-12-19 11:10:45 +0100 <haskellbridge> <Morj> Oops, my matrix client might have eaten the asterisks as the formatting
2025-12-19 11:11:03 +0100 <haskellbridge> <Morj> *const T in both mentions
2025-12-19 11:20:43 +0100Googulator71(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 11:20:46 +0100Googulator50(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 11:20:48 +0100 <merijn> I can't imagine Rust not supporting a non-copying pointer in unsafe
2025-12-19 11:21:09 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-12-19 11:22:42 +0100 <merijn> Something like this SO answer? https://stackoverflow.com/questions/54849928/how-can-one-force-rust-to-take-ownership-of-memory-al…
2025-12-19 11:25:08 +0100 <merijn> Similarly relevant? https://www.reddit.com/r/rust/comments/17r7hf6/comment/k8h4hpw/
2025-12-19 11:30:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2025-12-19 11:36:33 +0100tema(~tema@93.175.2.131) (Ping timeout: 272 seconds)
2025-12-19 11:47:30 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2025-12-19 11:50:44 +0100Googulator23(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 11:50:49 +0100Googulator50(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 11:53:31 +0100tromp(~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-19 11:55:15 +0100trickard(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 11:55:28 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 11:55:42 +0100tromp(~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
2025-12-19 12:01:52 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds)
2025-12-19 12:03:56 +0100mari-estel(~mari-este@user/mari-estel) mari-estel
2025-12-19 12:04:47 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-19 12:06:53 +0100trickard_trickard
2025-12-19 12:07:39 +0100lucabtz(~lucabtz@user/lucabtz) (Ping timeout: 244 seconds)
2025-12-19 12:18:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 12:20:49 +0100Googulator24(~Googulato@80-95-87-105.pool.digikabel.hu)
2025-12-19 12:20:50 +0100Googulator23(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 12:21:35 +0100trickard(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 12:21:49 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 12:23:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 12:31:23 +0100lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-19 12:35:33 +0100lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds)
2025-12-19 12:36:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 12:41:37 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-19 12:42:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-19 12:45:36 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-19 12:46:42 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-19 12:51:34 +0100acidjnk(~acidjnk@p200300d6e71719757debcd23ed4a65e1.dip0.t-ipconnect.de) acidjnk
2025-12-19 13:05:51 +0100Googulator54(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 13:05:54 +0100Googulator24(~Googulato@80-95-87-105.pool.digikabel.hu) (Quit: Client closed)
2025-12-19 13:07:22 +0100mari-estel(~mari-este@user/mari-estel) ()
2025-12-19 13:12:18 +0100kmein(~weechat@user/kmein) (Quit: ciao kakao)
2025-12-19 13:14:34 +0100kmein(~weechat@user/kmein) kmein
2025-12-19 13:21:14 +0100tromp(~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-19 13:26:11 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 13:26:25 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 13:28:32 +0100fp(~Thunderbi@2001:708:20:1406::1370) fp
2025-12-19 13:35:54 +0100Googulator87(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 13:35:56 +0100Googulator54(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 14:02:51 +0100internatetional(~nate@2404:c0:2029:708e:1:0:dce8:227d) internatetional
2025-12-19 14:05:15 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds)
2025-12-19 14:05:30 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-19 14:10:52 +0100trickard_trickard
2025-12-19 14:13:05 +0100xff0x(~xff0x@2405:6580:b080:900:2d2a:a485:c072:ffd2)
2025-12-19 14:15:20 +0100trickard(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 14:15:34 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 14:16:21 +0100 <haskellbridge> <Morj> Clueless me running nix profile upgrade on a friday, and being hit with https://github.com/NixOS/nixpkgs/issues/467614
2025-12-19 14:22:54 +0100hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Read error: Connection reset by peer)
2025-12-19 14:23:13 +0100hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw
2025-12-19 14:23:52 +0100confusedalex(~confuseda@user/confusedalex) (Remote host closed the connection)
2025-12-19 14:24:20 +0100Igloo(~ian@81.2.99.210) (Quit: BIAW)
2025-12-19 14:25:34 +0100somemathguy(~somemathg@user/somemathguy) somemathguy
2025-12-19 14:30:23 +0100deptype(~deptype@2406:b400:3a:2dd5:52e4:b3c5:3fcb:69bd)
2025-12-19 14:33:07 +0100fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 265 seconds)
2025-12-19 14:33:58 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-19 14:34:22 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-19 14:35:00 +0100fp(~Thunderbi@2001:708:150:10::7e06) fp
2025-12-19 14:35:32 +0100Googulator87(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 14:35:46 +0100Googulator87(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 14:36:21 +0100deptype_(~deptype@2406:b400:3a:2dd5:52e4:b3c5:3fcb:69bd)
2025-12-19 14:40:21 +0100tromp(~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
2025-12-19 14:49:20 +0100EvanR_(~EvanR@user/evanr) EvanR
2025-12-19 14:50:07 +0100EvanR(~EvanR@user/evanr) (Ping timeout: 264 seconds)
2025-12-19 14:51:51 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds)
2025-12-19 14:52:41 +0100fp(~Thunderbi@2001:708:150:10::7e06) (Remote host closed the connection)
2025-12-19 14:57:47 +0100lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-19 15:01:08 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2025-12-19 15:01:55 +0100lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 240 seconds)
2025-12-19 15:09:06 +0100tromp(~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-19 15:17:46 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-19 15:17:59 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-19 15:20:28 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2025-12-19 15:20:40 +0100jmcantrell_jmcantrell
2025-12-19 15:25:28 +0100tromp(~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
2025-12-19 15:31:40 +0100mari-estel(~mari-este@user/mari-estel) mari-estel
2025-12-19 15:35:39 +0100Googulator7(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 15:35:45 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 250 seconds)
2025-12-19 15:35:53 +0100Googulator87(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 15:38:26 +0100lbseale(~quassel@user/ep1ctetus) (Quit: No Ping reply in 180 seconds.)
2025-12-19 15:39:51 +0100lbseale(~quassel@user/ep1ctetus) ep1ctetus
2025-12-19 15:48:13 +0100fp(~Thunderbi@2001:708:150:10::7e06) fp
2025-12-19 15:50:25 +0100Googulator61(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 15:54:37 +0100internatetional(~nate@2404:c0:2029:708e:1:0:dce8:227d) (Quit: CoreIRC for Android - www.coreirc.com)
2025-12-19 15:54:57 +0100Googulator7(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Ping timeout: 272 seconds)
2025-12-19 15:55:49 +0100 <yin> is the mechanism that prevents me from writing (join bimap fromList) the DMR?
2025-12-19 15:57:35 +0100 <yin> when applied to something like (Map Char,Map Int)
2025-12-19 15:59:08 +0100 <merijn> :t bimap
2025-12-19 15:59:29 +0100 <merijn> hmm, lambdabot is dead?
2025-12-19 15:59:46 +0100 <merijn> I forgot, what was yahb's prompt?
2025-12-19 15:59:49 +0100 <lambdabot> Bifunctor p => (a -> b) -> (c -> d) -> p a c -> p b d
2025-12-19 15:59:57 +0100 <merijn> oh just super slow
2025-12-19 16:00:21 +0100 <merijn> :t join bimap
2025-12-19 16:00:22 +0100 <lambdabot> Bifunctor p => (a -> b) -> p a a -> p b b
2025-12-19 16:00:33 +0100 <merijn> :t join
2025-12-19 16:00:34 +0100 <lambdabot> Monad m => m (m a) -> m a
2025-12-19 16:01:42 +0100 <merijn> That's not DMR at all
2025-12-19 16:02:09 +0100 <merijn> That's just the fact that join is resulting in constraints that 'a = c' and 'b = d'
2025-12-19 16:03:04 +0100 <yin> oh right
2025-12-19 16:03:38 +0100 <yin> so i need to write (bimap fromList fromList)
2025-12-19 16:03:41 +0100 <yin> shame
2025-12-19 16:03:52 +0100 <merijn> honestly, that's approximately 500% more readable anyway
2025-12-19 16:04:13 +0100 <merijn> And, like, literally only 4 characters longer than the join one
2025-12-19 16:04:52 +0100 <mari-estel> :t both
2025-12-19 16:04:53 +0100 <lambdabot> Bitraversable r => Traversal (r a a) (r b b) a b
2025-12-19 16:05:28 +0100RMSBach(~RMSBach@24.210.9.182) RMSBach
2025-12-19 16:05:52 +0100Googulator17(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 16:05:56 +0100Googulator61(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 16:06:44 +0100 <yin> sure, in this simplified instance
2025-12-19 16:06:51 +0100 <yin> this is what i'm writting https://paste.jrvieira.com/1766156784921
2025-12-19 16:07:06 +0100 <yin> (join bimap) is a very common pattern for me
2025-12-19 16:07:10 +0100 <yin> oh well
2025-12-19 16:10:00 +0100fp(~Thunderbi@2001:708:150:10::7e06) (Ping timeout: 252 seconds)
2025-12-19 16:10:58 +0100 <Leary> What's "the DMR"?
2025-12-19 16:11:50 +0100 <yin> mari-estel: is that a Lens thing?
2025-12-19 16:12:04 +0100 <yin> Leary: https://wiki.haskell.org/index.php?title=Monomorphism_restriction
2025-12-19 16:12:23 +0100 <mari-estel> arrow thing, i believe
2025-12-19 16:12:37 +0100 <merijn> Leary: Dread Monomorphism Restriction
2025-12-19 16:12:44 +0100 <merijn> @quote dmr
2025-12-19 16:12:45 +0100 <lambdabot> No quotes match. Whoa.
2025-12-19 16:12:45 +0100 <yin> Leary: "D" is for "Dreaded"
2025-12-19 16:13:02 +0100 <merijn> @quote dreaded
2025-12-19 16:13:03 +0100 <lambdabot> liyang says: <fragamus> how can I upgrade bytestring? I tried to use cabal but it complains <liyang> Ah, the dreaded monochrom restriction.
2025-12-19 16:13:28 +0100 <mari-estel> :D
2025-12-19 16:13:43 +0100 <merijn> hmm, not quite what I was looking for
2025-12-19 16:15:04 +0100 <Leary> Okay, I guess I've heard that turn of phrase. Never seen it reduced to DMR though, only MMR. DMMR might be clearer.
2025-12-19 16:21:33 +0100annamalai(~annamalai@2409:4042:2312:1f01::15d4:c8a5) (Ping timeout: 252 seconds)
2025-12-19 16:21:35 +0100larsivi(~larsivi@user/larsivi) (Ping timeout: 245 seconds)
2025-12-19 16:21:49 +0100annamalai(~annamalai@157.32.137.200) annamalai
2025-12-19 16:25:44 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-12-19 16:27:35 +0100ski. o O ( `join (,) (length :: (exists a. [a]) -> Int) :: ([a0] -> Int,[a1] -> Int)' )
2025-12-19 16:35:43 +0100 <lucabtz> this is only slightly related but somthing i find confusing with nomenclature is that a monomorphic function and a monomorphism (in the categorical sense) have nothing to do with each other in haskell
2025-12-19 16:35:43 +0100Googulator17(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-19 16:35:50 +0100Googulator17(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-19 16:37:39 +0100 <merijn> Why is that confusing?
2025-12-19 16:38:37 +0100 <merijn> The introduction of category theory vocabulary (i.e. monad and friends) was a rather later addition to Haskell, so most of the nomenclature is (mostly) unrelated to category theory
2025-12-19 16:39:27 +0100 <merijn> From a type theory persepctive monomorphic is just the antonym of polymorphic
2025-12-19 16:39:47 +0100 <lucabtz> it's confusing because for example holomorphism is the property associated to a holomorphic function in complex analysys, while monomorphism has nothing to do with a monomorphic function
2025-12-19 16:40:02 +0100weary-traveler(~user@user/user363627) user363627
2025-12-19 16:40:14 +0100 <lucabtz> yeah the names make sense, the collision is just unfortunate
2025-12-19 16:44:39 +0100somemathguy(~somemathg@user/somemathguy) (Ping timeout: 250 seconds)
2025-12-19 16:50:16 +0100ttybitnik(~ttybitnik@user/wolper) ttybitnik
2025-12-19 16:52:19 +0100milan2(~milan@88.212.61.169)
2025-12-19 16:54:41 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-12-19 17:06:18 +0100 <yin> we can't have a single word for everything
2025-12-19 17:07:37 +0100 <yin> monomorphic just means "single form" so the mistake is to use the term alone without context
2025-12-19 17:08:16 +0100 <yin> i remember being confused when i learned about monadic functions in array languages
2025-12-19 17:08:42 +0100ouilemur(~jgmerritt@user/ouilemur) (Ping timeout: 246 seconds)
2025-12-19 17:09:13 +0100acarrico(~acarrico@2001:18b0:c000:7433:aee:5563:d876:718f) (Ping timeout: 256 seconds)
2025-12-19 17:09:41 +0100somemathguy(~somemathg@user/somemathguy) somemathguy
2025-12-19 17:10:53 +0100 <lucabtz> yin: well technically we can have a single word for everything if we assume everything is numerable
2025-12-19 17:10:58 +0100 <lucabtz> *countable
2025-12-19 17:11:21 +0100 <lucabtz> but i agree it is not doable in practise
2025-12-19 17:11:48 +0100 <lucabtz> and yeah i was reading something about APL and i found monadic to be a confusing term too
2025-12-19 17:12:49 +0100 <yin> it doesn't help that we also have different terms for the same things
2025-12-19 17:13:53 +0100 <lucabtz> yeah sure
2025-12-19 17:14:11 +0100 <yin> not to get too metaphysical but i don't think these concepts are countable because they're buckets dividing reality into arbitrary chunks
2025-12-19 17:14:14 +0100 <lucabtz> however the same term for different things is worse
2025-12-19 17:14:46 +0100 <lucabtz> yin yes and no if you consider each real number to be something inside the everything
2025-12-19 17:15:23 +0100 <yin> that's a categorical problem
2025-12-19 17:15:54 +0100 <yin> ;)
2025-12-19 17:16:14 +0100 <lucabtz> though it is a practical problem, generally we have words for numbers, but clearly we can't name all the real ones
2025-12-19 17:16:24 +0100 <lucabtz> we just found names for a few significant ones
2025-12-19 17:16:58 +0100 <merijn> You can if you're an ultra-finitist
2025-12-19 17:17:31 +0100spew(~spew@user/spew) spew
2025-12-19 17:19:35 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-12-19 17:20:30 +0100 <milan2> Hello, sorry to interupt you guyz. :) Do you know if short-circuit foldl' is possible?
2025-12-19 17:21:46 +0100 <geekosaur> it's not AIUI
2025-12-19 17:23:20 +0100 <milan2> geekosaur: Sorry, if you replied to me I don't know what AIUI means.
2025-12-19 17:24:13 +0100 <geekosaur> "as I understand it"
2025-12-19 17:24:45 +0100 <merijn> > foldl' f z [a,b,c]
2025-12-19 17:24:47 +0100 <lambdabot> f (f (f z a) b) c
2025-12-19 17:24:51 +0100 <geekosaur> foldr's function is given a thunk representing the rest of the list, which it can choose to not evaluate and thereby short circuit. foldl/foldl' isn't
2025-12-19 17:25:00 +0100 <merijn> Define short-circuit
2025-12-19 17:25:13 +0100 <merijn> You can certainly short-circuit, but not without walking the entire list
2025-12-19 17:25:35 +0100 <merijn> oh, wait, no, it's foldl'
2025-12-19 17:25:38 +0100 <merijn> brainfart :)
2025-12-19 17:26:05 +0100 <yin> milan2: foldl' evaluates the accumulator to whnk, foldl doesn't. but both necessarily traverse the complete list
2025-12-19 17:26:31 +0100 <yin> s/whnk/whnf
2025-12-19 17:27:31 +0100 <milan2> Yeah got it.. but foldl should be able to short-circuit. I just have to write "correct" folding function for it.
2025-12-19 17:28:31 +0100 <yin> milan2: how do you figure?
2025-12-19 17:28:34 +0100lucabtz(~lucabtz@user/lucabtz) (Quit: Lost terminal)
2025-12-19 17:29:26 +0100 <milan2> I was reading web and I understood it that it can? I might be able to find link.
2025-12-19 17:29:45 +0100 <merijn> milan2: Look at my example above :)
2025-12-19 17:29:51 +0100 <merijn> > foldl f z [a,b,c]
2025-12-19 17:29:52 +0100 <lambdabot> f (f (f z a) b) c
2025-12-19 17:31:10 +0100 <milan2> If we look only on c we might be able to short-circuit?
2025-12-19 17:31:33 +0100 <milan2> Thus no need for evaluating first argument?
2025-12-19 17:31:40 +0100chele(~chele@user/chele) (Remote host closed the connection)
2025-12-19 17:32:37 +0100 <merijn> Right, but how do you do that without traversing the entire list? ;)
2025-12-19 17:33:15 +0100 <merijn> So you can short-circuit in skipping some evaluation of `f`, but you *have* to walk the list
2025-12-19 17:33:25 +0100 <milan2> I probably can't so this will not work on infinite lists.
2025-12-19 17:33:46 +0100 <merijn> What are you actually trying to do?
2025-12-19 17:34:16 +0100 <milan2> Advent of Code 2015 day 1 part 2 broke me :(
2025-12-19 17:35:10 +0100 <milan2> Like we need definitelly left fold, and we need to stop counting as soon as we count -1.
2025-12-19 17:35:55 +0100 <yin> > foldl' const 0 [undefined]
2025-12-19 17:35:57 +0100 <lambdabot> 0
2025-12-19 17:36:07 +0100 <yin> > foldl' const 0 (repeat ())
2025-12-19 17:36:24 +0100 <lambdabot> Terminated
2025-12-19 17:36:45 +0100 <yin> ironically, because it wouldn't terminate
2025-12-19 17:37:02 +0100 <sprout> use scan
2025-12-19 17:38:36 +0100 <yin> fun to see that i can press ctrl-c to halt `foldl const 0 (repeat ())` in ghci but not foldl'
2025-12-19 17:38:46 +0100 <sprout> scan will give you a list of numbers, and you can terminate when you hit -1
2025-12-19 17:39:20 +0100 <merijn> 2025 you mean? :p
2025-12-19 17:39:31 +0100 <yin> sprout: scanr, which is foldr in disguise
2025-12-19 17:39:48 +0100 <milan2> sprout: So scan hmmm... or maybe custom self recursive function.
2025-12-19 17:40:14 +0100 <merijn> Avoiding spoilers, my implementation relied on mapAccumL
2025-12-19 17:40:17 +0100 <merijn> :t mapAccumL
2025-12-19 17:40:18 +0100 <lambdabot> Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b)
2025-12-19 17:40:21 +0100 <milan2> merijn: I started from begining.