Home liberachat/#haskell: Logs Calendar

Logs on 2025-12-19 (liberachat/#haskell)

00:00:31 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds)
00:07:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:07:35 lambda_gibbon joins (~lambda_gi@208.83.175.39)
00:12:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
00:14:29 × olivial quits (~benjaminl@user/benjaminl) (Ping timeout: 260 seconds)
00:17:46 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds)
00:20:04 × haskellbridge quits (~hackager@96.28.224.214) (Remote host closed the connection)
00:20:44 haskellbridge joins (~hackager@96.28.224.214)
00:20:44 ChanServ sets mode +v haskellbridge
00:22:54 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:27:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
00:28:28 × lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
00:29:12 lbseale joins (~quassel@user/ep1ctetus)
00:30:06 olivial joins (~benjaminl@user/benjaminl)
00:38:24 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds)
00:38:38 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:42:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
00:45:51 × trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
00:46:05 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
00:48:10 × xff0x quits (~xff0x@2405:6580:b080:900:ea01:4fbc:9554:a780) (Ping timeout: 246 seconds)
00:48:50 × Pozyomka quits (~pyon@user/pyon) (Read error: Connection reset by peer)
00:54:00 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:58:44 somemathguy joins (~somemathg@user/somemathguy)
00:58:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
00:59:00 driib3180 joins (~driib@vmi931078.contaboserver.net)
01:00:54 × driib3180 quits (~driib@vmi931078.contaboserver.net) (Client Quit)
01:09:49 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:10:07 driib3180 joins (~driib@vmi931078.contaboserver.net)
01:10:51 × trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
01:15:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
01:21:24 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
01:24:36 × divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer)
01:24:59 divlamir joins (~divlamir@user/divlamir)
01:25:37 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:25:55 omidmash8 joins (~omidmash@user/omidmash)
01:28:33 × omidmash quits (~omidmash@user/omidmash) (Ping timeout: 260 seconds)
01:28:33 omidmash8 is now known as omidmash
01:28:42 × Tuplanolla quits (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) (Quit: Leaving.)
01:29:09 trickard_ is now known as trickard
01:30:26 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
01:36:01 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds)
01:41:23 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:46:39 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
01:49:44 weary-traveler joins (~user@user/user363627)
01:57:10 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:58:24 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:59:24 mange joins (~mange@user/mange)
02:03:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
02:05:44 × pabs3 quits (~pabs3@user/pabs3) (Quit: Don't rest until all the world is paved in moss and greenery.)
02:06:30 pabs3 joins (~pabs3@user/pabs3)
02:11:49 × jj quits (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) (Ping timeout: 246 seconds)
02:15:13 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:20:25 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
02:26:51 jj joins (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net)
02:31:00 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:35:38 × acidjnk quits (~acidjnk@p200300d6e7171981f0c6dc9689540cc0.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
02:35:57 peterbecich joins (~Thunderbi@71.84.33.135)
02:36:14 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
02:36:19 × talismanick quits (~user@2601:644:8502:d340::cd3d) (Ping timeout: 246 seconds)
02:46:48 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:51:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
02:51:54 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
02:54:18 lambda_gibbon joins (~lambda_gi@208.83.175.39)
02:54:44 Square joins (~Square4@user/square)
02:55:34 × GdeVolpiano quits (~GdeVolpia@user/GdeVolpiano) (Ping timeout: 246 seconds)
02:58:31 × Square2 quits (~Square@user/square) (Ping timeout: 240 seconds)
02:58:43 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds)
03:02:35 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:07:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
03:09:12 × jj quits (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net) (Remote host closed the connection)
03:18:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:23:04 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
03:27:36 × trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
03:27:50 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
03:32:11 × mange quits (~mange@user/mange) (Remote host closed the connection)
03:34:07 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:36:22 × RMSBach quits (~RMSBach@2603:6013:9b00:a7c8:e7e5:f272:eb86:ddf) (Ping timeout: 255 seconds)
03:37:31 × td_ quits (~td@i53870911.versanet.de) (Ping timeout: 250 seconds)
03:38:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
03:39:14 td_ joins (~td@i53870930.versanet.de)
03:45:51 GdeVolpiano joins (~GdeVolpia@user/GdeVolpiano)
03:55:08 × trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
03:55:22 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
04:08:43 × qqe quits (~qqq@185.54.20.98) (Quit: Lost terminal)
04:20:51 Googulator4 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
04:21:12 × Googulator73 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
04:25:08 × trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
04:27:53 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
04:31:06 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
04:36:35 Lycurgus joins (~juan@user/Lycurgus)
04:43:03 × cheater quits (~AdminUser@2a02:8388:a180:3500:2936:d5c0:ce56:944) (Changing host)
04:43:03 cheater joins (~AdminUser@user/cheater)
04:43:04 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
04:47:31 poscat joins (~poscat@user/poscat)
04:48:55 × poscat0x04 quits (~poscat@user/poscat) (Ping timeout: 240 seconds)
04:50:45 Googulator80 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
04:50:47 × Googulator4 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
04:54:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:57:09 × somemathguy quits (~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1)
05:01:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
05:11:15 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds)
05:12:26 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:17:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
05:20:41 Googulator19 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
05:20:45 × Googulator80 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
05:25:21 × spew quits (~spew@user/spew) (Quit: nyaa~)
05:28:13 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:33:33 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
05:35:48 × jmcantrell quits (~weechat@user/jmcantrell) (Quit: WeeChat 4.8.1)
05:37:56 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
05:44:01 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:45:26 peterbecich joins (~Thunderbi@71.84.33.135)
05:47:46 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 246 seconds)
05:48:21 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
05:48:27 chromoblob joins (~chromoblo@user/chromob1ot1c)
05:48:52 michalz joins (~michalz@185.246.207.221)
05:50:39 Googulator67 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
05:50:42 × Googulator19 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
05:52:43 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 255 seconds)
05:53:31 chromoblob joins (~chromoblo@user/chromob1ot1c)
05:59:34 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:03:11 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
06:04:24 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:07:24 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
06:07:27 j1n37- joins (~j1n37@user/j1n37)
06:08:31 takuan joins (~takuan@d8D86B9E9.access.telenet.be)
06:08:46 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
06:13:50 jj joins (~apropos@node-1w7jr9pqogh9vahu1mvneock5.ipv6.telus.net)
06:18:29 × tessier quits (~tessier@ec2-184-72-149-67.compute-1.amazonaws.com) (Remote host closed the connection)
06:21:56 <Axman6> @unmtl ExceptT err (ReaderT conf IO) a
06:21:56 <lambdabot> conf -> IO (Either err a)
06:22:14 <Axman6> @ unmtl ReaderT conf (ExceptT err IO) a
06:22:17 <Axman6> @unmtl ReaderT conf (ExceptT err IO) a
06:22:17 <lambdabot> conf -> IO (Either err a)
06:24:37 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds)
06:30:51 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:31:09 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Ping timeout: 252 seconds)
06:33:16 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
06:37:03 trickard_ is now known as trickard
06:37:31 × larsivi quits (~larsivi@user/larsivi) (Ping timeout: 264 seconds)
06:37:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
06:41:06 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
06:41:31 chromoblob joins (~chromoblo@user/chromob1ot1c)
06:42:01 × Eoco_ quits (~ian@128.101.131.218) (Ping timeout: 246 seconds)
06:42:24 × remexre quits (~remexre@user/remexre) (Ping timeout: 260 seconds)
06:44:06 Eoco joins (~ian@128.101.131.218)
06:46:13 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 244 seconds)
06:48:17 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds)
06:48:25 chromoblob joins (~chromoblo@user/chromob1ot1c)
06:48:54 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:50:00 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
06:50:19 chromoblob joins (~chromoblo@user/chromob1ot1c)
06:51:16 remexre joins (~remexre@user/remexre)
06:53:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
06:55:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:00:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
07:08:39 × annamalai quits (~annamalai@157.32.125.111) (Ping timeout: 260 seconds)
07:08:53 <Axman6> Is there a good reason to pick one of these over the other?
07:20:44 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:20:44 × Googulator67 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
07:20:54 Googulator67 joins (~Googulato@80-95-87-105.pool.digikabel.hu)
07:23:59 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
07:25:23 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
07:28:36 <int-e> I don't know; the second one may save the compiler a tiny bit of work when simplifying >>= ?
07:30:22 <int-e> (there's no behavioral difference)
07:31:28 larsivi joins (~larsivi@user/larsivi)
07:36:34 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:38:35 × FANTOM quits (~fantom@90.244.161.115) (Ping timeout: 240 seconds)
07:41:25 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
07:44:40 annamalai joins (~annamalai@2409:4042:2312:1f01::15d4:c8a5)
07:51:10 shaeto joins (~Shaeto@94.25.234.244)
07:51:12 FANTOM joins (~fantom@90.244.161.115)
07:51:28 Square2 joins (~Square@user/square)
07:52:16 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:52:52 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
07:54:49 × Square quits (~Square4@user/square) (Ping timeout: 246 seconds)
07:56:58 × bliminse quits (~bliminse@user/bliminse) (Quit: leaving)
07:58:15 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 240 seconds)
08:00:15 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
08:00:29 tomboy64 joins (~tomboy64@user/tomboy64)
08:05:55 <Axman6> yeah, I was wondering if there was a performance difference between the two
08:08:22 lucabtz joins (~lucabtz@user/lucabtz)
08:12:11 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:13:03 tromp joins (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
08:16:52 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
08:17:01 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 265 seconds)
08:20:47 × Googulator67 quits (~Googulato@80-95-87-105.pool.digikabel.hu) (Quit: Client closed)
08:20:50 Googulator29 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
08:24:38 chele joins (~chele@user/chele)
08:24:55 × bairyn quits (~bairyn@MAIL.DIGITALKINGDOM.ORG) (Ping timeout: 246 seconds)
08:26:20 ByronJohnson joins (~bairyn@MAIL.DIGITALKINGDOM.ORG)
08:27:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:28:31 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
08:29:35 × shaeto quits (~Shaeto@94.25.234.244) (Ping timeout: 265 seconds)
08:30:27 bliminse joins (~bliminse@user/bliminse)
08:31:08 tomboy64 joins (~tomboy64@user/tomboy64)
08:31:28 shaeto joins (~Shaeto@78.37.15.179)
08:32:38 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
08:36:08 × shaeto quits (~Shaeto@78.37.15.179) (Ping timeout: 260 seconds)
08:37:45 shaeto joins (~Shaeto@94.25.234.244)
08:41:49 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
08:43:17 × tromp quits (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:43:17 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:47:57 tromp joins (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
08:48:03 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
08:50:48 Googulator22 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
08:50:48 × Googulator29 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
08:57:23 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
09:00:24 tema joins (~tema@93.175.2.131)
09:02:05 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
09:03:35 × Square2 quits (~Square@user/square) (Ping timeout: 240 seconds)
09:04:06 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:05:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
09:11:45 euphores joins (~SASL_euph@user/euphores)
09:15:56 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
09:20:48 Googulator71 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
09:20:48 × Googulator22 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
09:21:51 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
09:21:58 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Read error: Connection reset by peer)
09:22:44 <probie> Axman6: I think the only way to accurately answer that question is to benchmark it
09:36:23 cafkafk joins (~cafkafk@fsf/member/cafkafk)
09:37:13 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Client Quit)
09:43:27 <haskellbridge> <Liamzee> hmmm, playing around with Haskell-To-Rust FFI. Why are we claiming this is black magic again?
09:44:18 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:48:11 <merijn> Who is claiming what is black magic?
09:49:29 <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.
09:49:46 <haskellbridge> <Morj> What are you using for it?
09:49:59 <haskellbridge> <Morj> Rust-to-haskell-via-c is a pain in the ass on both sides
09:50:32 <haskellbridge> <Liamzee> I just generated a libffitest.a file from Cargo, dumped it into my cabal init folder
09:50:33 × Googulator71 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
09:50:42 Googulator71 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
09:50:46 <haskellbridge> <Liamzee> under cbits, then direct called with ccall
09:51:11 <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
09:51:25 <haskellbridge> <Liamzee> swapped to capi
09:51:50 <haskellbridge> <Liamzee> also I made sure there was #[unsafe(nomangle)] annotations and the extern "C" declaration.
09:52:08 <haskellbridge> <Morj> You are quite tolerant to pain I see
09:52:38 <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
09:52:48 <merijn> Liamzee: ccall is not all all suspect
09:52:55 <haskellbridge> <Morj> Also «easy, doable, and /fun/», really?
09:53:00 <haskellbridge> <Liamzee> Morj: this isn't that painful, 5 minutes
09:53:17 <haskellbridge> <Liamzee> I'm sure once it gets into sophisticated memory handling it's going to become nightmarish, especially under concurrent conditions
09:53:38 <haskellbridge> <Morj> Mm, in my experience it's about the same nightmare as binding to c++ code
09:53:46 <merijn> Liamzee: ccall is just the tradiational C ABI, with all limitations of that (i.e. no access to CPP, etc)
09:53:53 <merijn> Morj: No, C++ is infinitely worse
09:53:55 <haskellbridge> <Morj> In general rust's typical approaches to memory are very similar to c++
09:54:12 <haskellbridge> <Morj> Hm, you think? Why?
09:54:37 <merijn> Because C++ doesn't have any ABI defined at all
09:54:37 <haskellbridge> <Liamzee> the worst part right now is that Cabal can't do this on its own, not without a custom Setup.hs
09:54:46 <merijn> Liamzee: What?
09:54:53 <merijn> What do you need a custom setup.hs for?
09:55:00 <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++
09:55:04 <haskellbridge> <Liamzee> ? I had to generate a static build artifact from Cargo
09:55:06 <haskellbridge> <Liamzee> then copy paste
09:55:27 <haskellbridge> <Morj> "ABI" - yes, but you do the same thing and export unmangled functions with C abi in c++
09:55:27 <merijn> Liamzee: Oh, cabal not being able to call cargo, yeah that's true
09:55:50 <haskellbridge> <Liamzee> I read that Rust has cbindgen
09:56:06 <haskellbridge> <Liamzee> I promised someone and I'll probably break the promise, to go give them FFI parquet support
09:56:10 × raym quits (~ray@user/raym) (Ping timeout: 245 seconds)
09:56:36 <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
09:58:07 <merijn> Liamzee: FWIW cabal is pretty well-behaved when you call it from, e.g. a Makefile
09:58:37 <merijn> I basically had a C++ + haskell project where I just had a makefile calling cabal to deal with building the haskell bits
09:58:54 haritz joins (~hrtz@140.228.70.141)
09:58:54 × haritz quits (~hrtz@140.228.70.141) (Changing host)
09:58:54 haritz joins (~hrtz@user/haritz)
09:59:58 <merijn> Liamzee: Anyway, I would generally *prefer* ccall over capi unless I specifically needed capi, for for example accessing CPP macros
10:01:43 <haskellbridge> <Liamzee> i mean if i'm just doing things with Rust artifacts
10:01:51 <haskellbridge> <Liamzee> I can probably live with ccall, right?
10:02:32 <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
10:03:11 raym joins (~ray@user/raym)
10:03:28 <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
10:03:39 <merijn> But that C wrapper is extra indirection
10:04:32 <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
10:04:38 <haskellbridge> <Liamzee> yup, i see the problem now, apparently GHCRTS and Rust will fight over ownership?
10:05:06 <merijn> Liamzee: You'll just have to manually and explicitly manage ownership
10:05:48 <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.
10:06:46 <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
10:08:39 <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
10:09:31 <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 :(
10:09:47 <haskellbridge> <Liamzee> precisely, you DON'T want to copy
10:10:23 <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
10:10:45 <haskellbridge> <Morj> Oops, my matrix client might have eaten the asterisks as the formatting
10:11:03 <haskellbridge> <Morj> *const T in both mentions
10:20:43 × Googulator71 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
10:20:46 Googulator50 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
10:20:48 <merijn> I can't imagine Rust not supporting a non-copying pointer in unsafe
10:21:09 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
10:22:42 <merijn> Something like this SO answer? https://stackoverflow.com/questions/54849928/how-can-one-force-rust-to-take-ownership-of-memory-allocated-other-than-by-its-s/54858033#54858033
10:25:08 <merijn> Similarly relevant? https://www.reddit.com/r/rust/comments/17r7hf6/comment/k8h4hpw/
10:30:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
10:36:33 × tema quits (~tema@93.175.2.131) (Ping timeout: 272 seconds)
10:47:30 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
10:50:44 Googulator23 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
10:50:49 × Googulator50 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
10:53:31 × tromp quits (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:55:15 × trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
10:55:28 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
10:55:42 tromp joins (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
11:01:52 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds)
11:03:56 mari-estel joins (~mari-este@user/mari-estel)
11:04:47 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
11:06:53 trickard_ is now known as trickard
11:07:39 × lucabtz quits (~lucabtz@user/lucabtz) (Ping timeout: 244 seconds)
11:18:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
11:20:49 Googulator24 joins (~Googulato@80-95-87-105.pool.digikabel.hu)
11:20:50 × Googulator23 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
11:21:35 × trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
11:21:49 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
11:23:15 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
11:31:23 lambda_gibbon joins (~lambda_gi@208.83.175.39)
11:35:33 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 244 seconds)
11:36:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
11:41:37 lucabtz joins (~lucabtz@user/lucabtz)
11:42:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
11:45:36 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
11:46:42 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
11:51:34 acidjnk joins (~acidjnk@p200300d6e71719757debcd23ed4a65e1.dip0.t-ipconnect.de)
12:05:51 Googulator54 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
12:05:54 × Googulator24 quits (~Googulato@80-95-87-105.pool.digikabel.hu) (Quit: Client closed)
12:07:22 × mari-estel quits (~mari-este@user/mari-estel) ()
12:12:18 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
12:14:34 kmein joins (~weechat@user/kmein)
12:21:14 × tromp quits (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:26:11 × trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
12:26:25 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
12:28:32 fp joins (~Thunderbi@2001:708:20:1406::1370)
12:35:54 Googulator87 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
12:35:56 × Googulator54 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
13:02:51 internatetional joins (~nate@2404:c0:2029:708e:1:0:dce8:227d)
13:05:15 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds)
13:05:30 chromoblob joins (~chromoblo@user/chromob1ot1c)
13:10:52 trickard_ is now known as trickard
13:13:05 xff0x joins (~xff0x@2405:6580:b080:900:2d2a:a485:c072:ffd2)
13:15:20 × trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
13:15:34 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
13:16:21 <haskellbridge> <Morj> Clueless me running nix profile upgrade on a friday, and being hit with https://github.com/NixOS/nixpkgs/issues/467614
13:22:54 × hsw quits (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Read error: Connection reset by peer)
13:23:13 hsw joins (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw)
13:23:52 × confusedalex quits (~confuseda@user/confusedalex) (Remote host closed the connection)
13:24:20 × Igloo quits (~ian@81.2.99.210) (Quit: BIAW)
13:25:34 somemathguy joins (~somemathg@user/somemathguy)
13:30:23 deptype joins (~deptype@2406:b400:3a:2dd5:52e4:b3c5:3fcb:69bd)
13:33:07 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 265 seconds)
13:33:58 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
13:34:22 chromoblob joins (~chromoblo@user/chromob1ot1c)
13:35:00 fp joins (~Thunderbi@2001:708:150:10::7e06)
13:35:32 × Googulator87 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
13:35:46 Googulator87 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
13:36:21 deptype_ joins (~deptype@2406:b400:3a:2dd5:52e4:b3c5:3fcb:69bd)
13:40:21 tromp joins (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
13:49:20 EvanR_ joins (~EvanR@user/evanr)
13:50:07 × EvanR quits (~EvanR@user/evanr) (Ping timeout: 264 seconds)
13:51:51 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 244 seconds)
13:52:41 × fp quits (~Thunderbi@2001:708:150:10::7e06) (Remote host closed the connection)
13:57:47 lambda_gibbon joins (~lambda_gi@208.83.175.39)
14:01:08 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:01:55 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 240 seconds)
14:09:06 × tromp quits (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:17:46 × trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
14:17:59 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
14:20:28 jmcantrell_ joins (~weechat@user/jmcantrell)
14:20:40 jmcantrell_ is now known as jmcantrell
14:25:28 tromp joins (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c)
14:31:40 mari-estel joins (~mari-este@user/mari-estel)
14:35:39 Googulator7 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
14:35:45 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 250 seconds)
14:35:53 × Googulator87 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
14:38:26 × lbseale quits (~quassel@user/ep1ctetus) (Quit: No Ping reply in 180 seconds.)
14:39:51 lbseale joins (~quassel@user/ep1ctetus)
14:48:13 fp joins (~Thunderbi@2001:708:150:10::7e06)
14:50:25 Googulator61 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
14:54:37 × internatetional quits (~nate@2404:c0:2029:708e:1:0:dce8:227d) (Quit: CoreIRC for Android - www.coreirc.com)
14:54:57 × Googulator7 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Ping timeout: 272 seconds)
14:55:49 <yin> is the mechanism that prevents me from writing (join bimap fromList) the DMR?
14:57:35 <yin> when applied to something like (Map Char,Map Int)
14:59:08 <merijn> :t bimap
14:59:29 <merijn> hmm, lambdabot is dead?
14:59:46 <merijn> I forgot, what was yahb's prompt?
14:59:49 <lambdabot> Bifunctor p => (a -> b) -> (c -> d) -> p a c -> p b d
14:59:57 <merijn> oh just super slow
15:00:21 <merijn> :t join bimap
15:00:22 <lambdabot> Bifunctor p => (a -> b) -> p a a -> p b b
15:00:33 <merijn> :t join
15:00:34 <lambdabot> Monad m => m (m a) -> m a
15:01:42 <merijn> That's not DMR at all
15:02:09 <merijn> That's just the fact that join is resulting in constraints that 'a = c' and 'b = d'
15:03:04 <yin> oh right
15:03:38 <yin> so i need to write (bimap fromList fromList)
15:03:41 <yin> shame
15:03:52 <merijn> honestly, that's approximately 500% more readable anyway
15:04:13 <merijn> And, like, literally only 4 characters longer than the join one
15:04:52 <mari-estel> :t both
15:04:53 <lambdabot> Bitraversable r => Traversal (r a a) (r b b) a b
15:05:28 RMSBach joins (~RMSBach@24.210.9.182)
15:05:52 Googulator17 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
15:05:56 × Googulator61 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
15:06:44 <yin> sure, in this simplified instance
15:06:51 <yin> this is what i'm writting https://paste.jrvieira.com/1766156784921
15:07:06 <yin> (join bimap) is a very common pattern for me
15:07:10 <yin> oh well
15:10:00 × fp quits (~Thunderbi@2001:708:150:10::7e06) (Ping timeout: 252 seconds)
15:10:58 <Leary> What's "the DMR"?
15:11:50 <yin> mari-estel: is that a Lens thing?
15:12:04 <yin> Leary: https://wiki.haskell.org/index.php?title=Monomorphism_restriction
15:12:23 <mari-estel> arrow thing, i believe
15:12:37 <merijn> Leary: Dread Monomorphism Restriction
15:12:44 <merijn> @quote dmr
15:12:45 <lambdabot> No quotes match. Whoa.
15:12:45 <yin> Leary: "D" is for "Dreaded"
15:13:02 <merijn> @quote dreaded
15:13:03 <lambdabot> liyang says: <fragamus> how can I upgrade bytestring? I tried to use cabal but it complains <liyang> Ah, the dreaded monochrom restriction.
15:13:28 <mari-estel> :D
15:13:43 <merijn> hmm, not quite what I was looking for
15:15:04 <Leary> Okay, I guess I've heard that turn of phrase. Never seen it reduced to DMR though, only MMR. DMMR might be clearer.
15:21:33 × annamalai quits (~annamalai@2409:4042:2312:1f01::15d4:c8a5) (Ping timeout: 252 seconds)
15:21:35 × larsivi quits (~larsivi@user/larsivi) (Ping timeout: 245 seconds)
15:21:49 annamalai joins (~annamalai@157.32.137.200)
15:25:44 Sgeo joins (~Sgeo@user/sgeo)
15:27:35 ski . o O ( `join (,) (length :: (exists a. [a]) -> Int) :: ([a0] -> Int,[a1] -> Int)' )
15:35:43 <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
15:35:43 × Googulator17 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
15:35:50 Googulator17 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
15:37:39 <merijn> Why is that confusing?
15:38:37 <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
15:39:27 <merijn> From a type theory persepctive monomorphic is just the antonym of polymorphic
15:39:47 <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
15:40:02 weary-traveler joins (~user@user/user363627)
15:40:14 <lucabtz> yeah the names make sense, the collision is just unfortunate
15:44:39 × somemathguy quits (~somemathg@user/somemathguy) (Ping timeout: 250 seconds)
15:50:16 ttybitnik joins (~ttybitnik@user/wolper)
15:52:19 milan2 joins (~milan@88.212.61.169)
15:54:41 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
16:06:18 <yin> we can't have a single word for everything
16:07:37 <yin> monomorphic just means "single form" so the mistake is to use the term alone without context
16:08:16 <yin> i remember being confused when i learned about monadic functions in array languages
16:08:42 × ouilemur quits (~jgmerritt@user/ouilemur) (Ping timeout: 246 seconds)
16:09:13 × acarrico quits (~acarrico@2001:18b0:c000:7433:aee:5563:d876:718f) (Ping timeout: 256 seconds)
16:09:41 somemathguy joins (~somemathg@user/somemathguy)
16:10:53 <lucabtz> yin: well technically we can have a single word for everything if we assume everything is numerable
16:10:58 <lucabtz> *countable
16:11:21 <lucabtz> but i agree it is not doable in practise
16:11:48 <lucabtz> and yeah i was reading something about APL and i found monadic to be a confusing term too
16:12:49 <yin> it doesn't help that we also have different terms for the same things
16:13:53 <lucabtz> yeah sure
16:14:11 <yin> not to get too metaphysical but i don't think these concepts are countable because they're buckets dividing reality into arbitrary chunks
16:14:14 <lucabtz> however the same term for different things is worse
16:14:46 <lucabtz> yin yes and no if you consider each real number to be something inside the everything
16:15:23 <yin> that's a categorical problem
16:15:54 <yin> ;)
16:16:14 <lucabtz> though it is a practical problem, generally we have words for numbers, but clearly we can't name all the real ones
16:16:24 <lucabtz> we just found names for a few significant ones
16:16:58 <merijn> You can if you're an ultra-finitist
16:17:31 spew joins (~spew@user/spew)
16:19:35 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
16:20:30 <milan2> Hello, sorry to interupt you guyz. :) Do you know if short-circuit foldl' is possible?
16:21:46 <geekosaur> it's not AIUI
16:23:20 <milan2> geekosaur: Sorry, if you replied to me I don't know what AIUI means.
16:24:13 <geekosaur> "as I understand it"
16:24:45 <merijn> > foldl' f z [a,b,c]
16:24:47 <lambdabot> f (f (f z a) b) c
16:24:51 <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
16:25:00 <merijn> Define short-circuit
16:25:13 <merijn> You can certainly short-circuit, but not without walking the entire list
16:25:35 <merijn> oh, wait, no, it's foldl'
16:25:38 <merijn> brainfart :)
16:26:05 <yin> milan2: foldl' evaluates the accumulator to whnk, foldl doesn't. but both necessarily traverse the complete list
16:26:31 <yin> s/whnk/whnf
16:27:31 <milan2> Yeah got it.. but foldl should be able to short-circuit. I just have to write "correct" folding function for it.
16:28:31 <yin> milan2: how do you figure?
16:28:34 × lucabtz quits (~lucabtz@user/lucabtz) (Quit: Lost terminal)
16:29:26 <milan2> I was reading web and I understood it that it can? I might be able to find link.
16:29:45 <merijn> milan2: Look at my example above :)
16:29:51 <merijn> > foldl f z [a,b,c]
16:29:52 <lambdabot> f (f (f z a) b) c
16:31:10 <milan2> If we look only on c we might be able to short-circuit?
16:31:33 <milan2> Thus no need for evaluating first argument?
16:31:40 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:32:37 <merijn> Right, but how do you do that without traversing the entire list? ;)
16:33:15 <merijn> So you can short-circuit in skipping some evaluation of `f`, but you *have* to walk the list
16:33:25 <milan2> I probably can't so this will not work on infinite lists.
16:33:46 <merijn> What are you actually trying to do?
16:34:16 <milan2> Advent of Code 2015 day 1 part 2 broke me :(
16:35:10 <milan2> Like we need definitelly left fold, and we need to stop counting as soon as we count -1.
16:35:55 <yin> > foldl' const 0 [undefined]
16:35:57 <lambdabot> 0
16:36:07 <yin> > foldl' const 0 (repeat ())
16:36:24 <lambdabot> Terminated
16:36:45 <yin> ironically, because it wouldn't terminate
16:37:02 <sprout> use scan
16:38:36 <yin> fun to see that i can press ctrl-c to halt `foldl const 0 (repeat ())` in ghci but not foldl'
16:38:46 <sprout> scan will give you a list of numbers, and you can terminate when you hit -1
16:39:20 <merijn> 2025 you mean? :p
16:39:31 <yin> sprout: scanr, which is foldr in disguise
16:39:48 <milan2> sprout: So scan hmmm... or maybe custom self recursive function.
16:40:14 <merijn> Avoiding spoilers, my implementation relied on mapAccumL
16:40:17 <merijn> :t mapAccumL
16:40:18 <lambdabot> Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b)
16:40:21 <milan2> merijn: I started from begining.
16:40:34 <yin> oh i used scanl
16:40:54 <merijn> milan2: oh, then it's just coicidence your question seems related to this year's day 1 part 2
16:41:30 <sprout> I just throw an exception when I am lazy
16:43:46 lambda_gibbon joins (~lambda_gi@208.83.175.39)
16:45:32 <probie> For day 1, this year's was definitely annoying. I messed up day 1 part 2 on the first go, because I hadn't realised the values over 100 were in the data, since part 1 was all modulo 100
16:45:54 fp joins (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi)
16:47:25 <yin> milan2: good on you for starting at the beginning
16:47:30 <milan2> I am glad I started with older ones.
16:48:15 <yin> my day 1 this year: https://paste.jrvieira.com/1766162825403
16:48:19 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds)
16:50:19 <milan2> Lovely really few lines of code even with IO and both parts.
16:51:14 <yin> not the most readable, one can argue
16:52:20 <merijn> yin: I always go for most readable and most correct: https://github.com/merijn/AdventOfCode/blob/master/Day1.hs
16:52:37 <merijn> I immediately got sidetracked by work after doing the first day this year >.>
16:52:46 <yin> merijn: tl;dr
16:52:51 <yin> :D
16:53:12 <milan2> :D
16:54:33 <yin> yes i was happy for having only 12 days to worry about this week but i got to day 8 until work swallowed my free time
16:54:43 <milan2> yin: Look yin even with type signatures! Not like yours ;)
16:55:45 <yin> hey, i did sign main
16:56:01 <milan2> Anyway sprout so scanl should work for 2015 d1 p2?
16:56:46 <sprout> milan2: it works for me, but that's egel code
16:57:15 <sprout> I would assume it works in haskell too. and even be faster due to laziness
16:59:28 <yin> merijn: i'm always sad that Haskell requires so much verbosity in order to guarantee correctness
16:59:48 <mari-estel> yin: in comparison with?
17:00:14 <yin> mari-estel: my idealized version of Haskell :)
17:00:25 <yin> i mean the potential is there
17:00:54 × omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
17:01:14 <yin> prelude doesn't even help
17:02:10 <merijn> yin: I disagree, tbh :p
17:02:34 <merijn> I find that Haskell (on average) requires *less* verbosity than most other languages to guarantee correctness
17:02:58 <merijn> It's just easier to not write that stuff in other languages
17:03:40 × jinsun- quits (jinsun@here.and.ready-to.party) (Changing host)
17:03:40 jinsun- joins (jinsun@user/jinsun)
17:03:40 jinsun- is now known as jinsun
17:07:08 × mari-estel quits (~mari-este@user/mari-estel) (Read error: Connection reset by peer)
17:07:20 mari-estel joins (~mari-este@user/mari-estel)
17:09:27 <yin> yes. my point is that Haskell could be much more terse with little effort. it's unrealized potential
17:10:33 ZLima12 joins (~zlima12@user/meow/ZLima12)
17:10:39 × ZLima12_ quits (~zlima12@user/meow/ZLima12) (Ping timeout: 260 seconds)
17:11:53 <yin> as for prelude not helping i'm thinking of partial functions, using Int for everything, etc... the usual complaints
17:14:07 × fp quits (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 264 seconds)
17:17:37 omidmash joins (~omidmash@user/omidmash)
17:23:48 × Googulator17 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
17:24:05 Googulator17 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
17:24:24 × trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
17:24:37 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
17:25:41 lambda_gibbon joins (~lambda_gi@208.83.175.39)
17:30:46 × cstml3 quits (~cstml@user/cstml) (Quit: ZNC 1.10.1 - https://znc.in)
17:31:43 cstml joins (~cstml@user/cstml)
17:35:44 × tromp quits (~textual@2001:1c00:3487:1b00:9c43:d0f8:e383:616c) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:36:29 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
17:47:28 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
17:47:47 ljdarj joins (~Thunderbi@user/ljdarj)
17:48:39 × mari-estel quits (~mari-este@user/mari-estel) (Remote host closed the connection)
17:50:24 <haskellbridge> <sm> yin: there's a lot of boilerplate with imports, exports, language pragmas etc. But what's an example of what you mean ?
17:50:55 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
17:52:06 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
17:52:38 Square2 joins (~Square@user/square)
17:53:26 fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi)
18:18:24 × fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Ping timeout: 256 seconds)
18:20:42 Googulator84 joins (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
18:20:52 × Googulator17 quits (~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
18:36:48 <haskellbridge> <slack1256> I agree that the import story is one the weakest part of the language
18:47:00 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
18:52:02 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
19:00:29 <haskellbridge> <Morj> After c++, haskell imports are a blessing. After rust, they look outdated with obvious improvements
19:01:46 larsivi joins (~larsivi@user/larsivi)
19:04:18 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:06:22 ljdarj joins (~Thunderbi@user/ljdarj)
19:09:37 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
19:12:46 <Sgeo> <silly> foo :: Void -> Void; foo = id compiles. This suggests that 0^0=1. Is there a language extension where 0^0 is undefined? </silly>
19:15:58 × simplystuart quits (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 255 seconds)
19:18:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:19:26 <monochrom> Yes, it's called Calculus. >:)
19:20:39 Tuplanolla joins (~Tuplanoll@88-114-88-95.elisa-laajakaista.fi)
19:21:09 <monochrom> Would you also like an extension that says that 0 is not a natural number? >:)
19:22:18 <yin> > 0^0
19:22:19 <lambdabot> 1
19:22:30 <yin> *consistency*
19:22:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
19:23:32 pavonia joins (~user@user/siracusa)
19:23:43 × mehbark quits (~mehbark@user/mehbark) (Ping timeout: 240 seconds)
19:23:48 mehbark9 joins (~mehbark@joey.luug.ece.vt.edu)
19:24:46 × deptype quits (~deptype@2406:b400:3a:2dd5:52e4:b3c5:3fcb:69bd) (Remote host closed the connection)
19:24:46 × deptype_ quits (~deptype@2406:b400:3a:2dd5:52e4:b3c5:3fcb:69bd) (Remote host closed the connection)
19:28:06 × califax quits (~califax@user/califx) (Remote host closed the connection)
19:30:22 califax joins (~califax@user/califx)
19:31:25 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
19:33:19 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
19:33:34 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
19:34:30 × shaeto quits (~Shaeto@94.25.234.244) (Quit: WeeChat 4.1.1)
19:34:35 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:36:06 Lord_of_Life_ is now known as Lord_of_Life
19:51:07 <milan2> About import export in haskell I kind of like it :) python, js is total mess in that regard. What is better in rust in that regard?
19:52:56 jmcantrell_ joins (~weechat@user/jmcantrell)
20:00:15 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
20:03:23 simplystuart joins (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
20:06:36 <yushyin> ocaml modules are nice, submodules, lexically scoped imports, first-class
20:08:42 <milan2> Noted will look into it too :)
20:16:00 Pozyomka joins (~pyon@user/pyon)
20:17:53 Guest44 joins (~Guest44@94.159.136.175)
20:21:30 × Guest44 quits (~Guest44@94.159.136.175) (Client Quit)
20:22:31 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
20:32:55 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
20:35:38 <milan2> :t cycle
20:35:39 <lambdabot> GHC.Internal.Stack.Types.HasCallStack => [a] -> [a]
20:35:51 <milan2> Why is there HasCallStack?
20:36:21 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
20:36:21 <milan2> Nothing like that in repeat, iterate, replicate
20:36:51 <milan2> :t error
20:36:52 <lambdabot> GHC.Internal.Stack.Types.HasCallStack => [Char] -> a
20:38:41 <milan2> Ah
20:38:50 <milan2> It is like head. So partial function?
20:41:15 <monochrom> > cycle []
20:41:16 <lambdabot> *Exception: Prelude.cycle: empty list
20:41:16 <lambdabot> CallStack (from HasCallStack):
20:41:17 <lambdabot> error, called at libraries/ghc-internal/src/GHC/Internal/List.hs:2030:3 in...
20:45:37 × tcard__ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
20:48:27 trickard_ is now known as trickard
20:50:28 tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
21:01:04 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
21:01:48 gmg joins (~user@user/gehmehgeh)
21:03:44 target_i joins (~target_i@user/target-i/x-6023099)
21:04:49 × fgarcia quits (~lei@user/fgarcia) (Quit: Remote host closed the connection)
21:17:04 peterbecich joins (~Thunderbi@71.84.33.135)
21:20:20 × michalz quits (~michalz@185.246.207.221) (Remote host closed the connection)
21:25:08 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
21:29:06 × califax quits (~califax@user/califx) (Remote host closed the connection)
21:29:49 Katarushisu6 joins (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net)
21:30:04 califax joins (~califax@user/califx)
21:31:13 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds)
21:31:35 × Katarushisu quits (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 240 seconds)
21:31:36 Katarushisu6 is now known as Katarushisu
21:32:22 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
21:32:44 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
21:38:45 × elarks quits (~yerri@user/yerrii) (Quit: WeeChat 4.7.1)
21:39:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
21:50:56 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:52:15 elarks joins (~yerri@user/yerrii)
21:52:49 × simplystuart quits (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 264 seconds)
21:53:52 × lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
21:57:04 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds)
22:00:07 neuromute joins (~neuromute@173.44.56.66)
22:00:12 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
22:09:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
22:18:33 jmcantrell_ joins (~weechat@user/jmcantrell)
22:19:32 × milan2 quits (~milan@88.212.61.169) (Quit: WeeChat 4.5.2)
22:21:27 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:25:52 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection)
22:28:06 lbseale joins (~quassel@user/ep1ctetus)
22:28:13 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
22:30:31 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds)
22:37:13 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds)
22:39:31 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:42:52 EvanR_ is now known as EvanR
22:42:55 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
22:44:10 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
22:46:42 ljdarj joins (~Thunderbi@user/ljdarj)
22:48:56 ljdarj1 joins (~Thunderbi@user/ljdarj)
22:50:54 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
22:50:54 ljdarj1 is now known as ljdarj
22:55:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:59:43 tromp joins (~textual@2001:1c00:3487:1b00:2425:17c3:1f51:60b0)
23:00:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
23:11:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:16:13 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
23:22:40 peterbecich joins (~Thunderbi@71.84.33.135)
23:26:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:31:49 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
23:42:17 pfc joins (~pfc@user/pfc)
23:42:41 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:44:21 pfc_ joins (~pfc@217.131.80.94)
23:46:28 × pfc quits (~pfc@user/pfc) (Ping timeout: 246 seconds)
23:47:07 × trickard quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
23:47:20 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)
23:48:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
23:54:47 × trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
23:56:34 × tromp quits (~textual@2001:1c00:3487:1b00:2425:17c3:1f51:60b0) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:57:22 ouilemur joins (~jgmerritt@user/ouilemur)
23:57:52 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:58:02 trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au)

All times are in UTC on 2025-12-19.