2023/03/18

2023-03-18 00:00:55 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-18 00:05:46 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 00:07:11 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2023-03-18 00:10:04 +0100zeenk(~zeenk@2a02:2f04:a307:2300::7fe)
2023-03-18 00:10:34 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 00:13:20 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-18 00:13:59 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-03-18 00:16:50 +0100mei(~mei@user/mei) (Remote host closed the connection)
2023-03-18 00:19:16 +0100mei(~mei@user/mei)
2023-03-18 00:19:33 +0100_xor(~xor@74.215.46.17) (Quit: WeeChat 3.8)
2023-03-18 00:25:05 +0100michalz(~michalz@185.246.207.215) (Remote host closed the connection)
2023-03-18 00:33:19 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 276 seconds)
2023-03-18 00:34:38 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 00:37:34 +0100zeenk(~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!)
2023-03-18 00:39:08 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-03-18 00:43:31 +0100nschoe(~q@2a01:e0a:8e:a190:32f5:3614:7aa3:6e6) (Ping timeout: 260 seconds)
2023-03-18 00:45:46 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-18 00:45:57 +0100zeenk(~zeenk@2a02:2f04:a307:2300::7fe)
2023-03-18 00:47:10 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 250 seconds)
2023-03-18 00:49:29 +0100kritzefitz(~kritzefit@debian/kritzefitz)
2023-03-18 00:53:27 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-03-18 00:53:30 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-03-18 00:55:05 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-03-18 00:55:05 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-03-18 00:55:05 +0100wroathe(~wroathe@user/wroathe)
2023-03-18 01:01:05 +0100 <EvanR> hmm setting up megaparsec to parse entire words rather than letters seems involved
2023-03-18 01:02:16 +0100acidjnk(~acidjnk@p200300d6e715c4806dec91424f6e1ce7.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 01:04:05 +0100bhall(~brunohall@195.147.207.136)
2023-03-18 01:04:55 +0100jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2023-03-18 01:08:23 +0100 <yushyin> with overloaded strings you can just use a string literal
2023-03-18 01:09:04 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2023-03-18 01:09:14 +0100ddellacosta(~ddellacos@146.70.165.203) (Quit: WeeChat 3.8)
2023-03-18 01:09:32 +0100mncheck(~mncheck@193.224.205.254) (Ping timeout: 246 seconds)
2023-03-18 01:10:46 +0100ddellacosta(~ddellacos@146.70.165.203)
2023-03-18 01:13:41 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 01:18:49 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 01:27:43 +0100 <EvanR> I mean change the token stream from Text to [Text]
2023-03-18 01:28:49 +0100 <c_wraith> last time I did it, using a custom token type in megaparsec was too hard. It didn't provide utility functions or types with good defaults
2023-03-18 01:29:02 +0100acidjnk(~acidjnk@p200300d6e715c4018093856d8f871bb4.dip0.t-ipconnect.de)
2023-03-18 01:30:29 +0100chomwitt(~chomwitt@2a02:587:7a19:9200:1ac0:4dff:fedb:a3f1) (Ping timeout: 256 seconds)
2023-03-18 01:30:33 +0100zeenk(~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!)
2023-03-18 01:43:22 +0100sp00kins(~sp00kins@97.73.80.30)
2023-03-18 01:43:53 +0100gurkenglas(~gurkengla@dynamic-046-114-183-154.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2023-03-18 01:45:04 +0100sp00kins(~sp00kins@97.73.80.30) (Client Quit)
2023-03-18 01:45:22 +0100sp00kins(~sp00kins@246.sub-174-216-180.myvzw.com)
2023-03-18 01:45:27 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 01:49:30 +0100ubert(~Thunderbi@p200300ecdf0c57fa632b521f42b5c1ff.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 01:50:01 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 01:50:15 +0100jerg(~jerg@2001:a61:2611:1701:e737:6af:a06e:d388) (Ping timeout: 260 seconds)
2023-03-18 01:51:19 +0100ub(~Thunderbi@p548c84ba.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2023-03-18 01:52:14 +0100mauke_(~mauke@user/mauke)
2023-03-18 01:53:41 +0100mauke(~mauke@user/mauke) (Ping timeout: 246 seconds)
2023-03-18 01:53:42 +0100mauke_mauke
2023-03-18 01:54:27 +0100ubert(~Thunderbi@p548c89b6.dip0.t-ipconnect.de)
2023-03-18 01:56:32 +0100irrgit__(~irrgit@146.70.27.218)
2023-03-18 01:57:21 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2023-03-18 01:57:35 +0100nate4(~nate@98.45.169.16)
2023-03-18 01:58:52 +0100ub(~Thunderbi@p200300ecdf20b545ee6fc32ba90dc667.dip0.t-ipconnect.de)
2023-03-18 01:59:31 +0100irrgit_(~irrgit@176.113.74.138) (Ping timeout: 250 seconds)
2023-03-18 02:08:54 +0100nate4(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2023-03-18 02:10:23 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-03-18 02:10:33 +0100talismanick(~talismani@2601:200:c000:f7a0::5321) (Remote host closed the connection)
2023-03-18 02:11:24 +0100talismanick(~talismani@2601:200:c000:f7a0::5321)
2023-03-18 02:16:31 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-03-18 02:20:12 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 02:24:47 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 02:28:03 +0100telser_(~quassel@user/telser) (Ping timeout: 265 seconds)
2023-03-18 02:28:28 +0100telser(~quassel@user/telser)
2023-03-18 02:31:55 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 265 seconds)
2023-03-18 02:34:51 +0100catern-(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
2023-03-18 02:35:41 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-03-18 02:37:13 +0100bhall(~brunohall@195.147.207.136) (Ping timeout: 250 seconds)
2023-03-18 02:46:11 +0100_xor(~xor@74.215.46.17)
2023-03-18 02:46:20 +0100_xor(~xor@74.215.46.17) (Client Quit)
2023-03-18 02:47:26 +0100_xor(~xor@74.215.46.17)
2023-03-18 02:47:37 +0100_xor(~xor@74.215.46.17) (Client Quit)
2023-03-18 02:51:44 +0100ub(~Thunderbi@p200300ecdf20b545ee6fc32ba90dc667.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 02:52:04 +0100ub(~Thunderbi@p548c89b6.dip0.t-ipconnect.de)
2023-03-18 02:54:54 +0100nate4(~nate@98.45.169.16)
2023-03-18 02:55:44 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 03:00:32 +0100srz(~srz@179.36.116.51)
2023-03-18 03:00:52 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 03:05:03 +0100catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Remote host closed the connection)
2023-03-18 03:05:10 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 03:09:46 +0100 <tusko> what is the best haskell tutorial?
2023-03-18 03:09:58 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2023-03-18 03:15:31 +0100 <yushyin> https://www.haskell.org/documentation/ lists some tutorials, i don't think there is a tutorial that is objectively the best.
2023-03-18 03:17:00 +0100 <yushyin> i liked https://www.haskell.org/tutorial/ when i started with haskell
2023-03-18 03:30:03 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-03-18 03:30:21 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2023-03-18 03:31:10 +0100masterbuilder(~masterbui@user/masterbuilder) (Quit: Lost terminal)
2023-03-18 03:31:13 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 03:31:24 +0100Lord_of_Life_Lord_of_Life
2023-03-18 03:33:09 +0100masterbuilder(~masterbui@user/masterbuilder)
2023-03-18 03:33:32 +0100sp00kins(~sp00kins@246.sub-174-216-180.myvzw.com) (Quit: sp00kins)
2023-03-18 03:35:23 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 03:50:55 +0100nate4(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2023-03-18 03:52:12 +0100 <tusko> thank you for those suggestions. I'll check it out
2023-03-18 03:52:42 +0100 <tusko> I guess seeing something from 1998 I thought perhaps the language had moved on by now
2023-03-18 03:54:11 +0100srz(~srz@179.36.116.51) (Read error: Connection reset by peer)
2023-03-18 04:03:21 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 04:05:43 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2023-03-18 04:08:28 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 04:10:24 +0100gastus_(~gastus@185.6.123.157)
2023-03-18 04:12:18 +0100 <EvanR> for the basic components "A gentle introduction" still works imo. New gadgets won't be mentioned but that's for later
2023-03-18 04:13:15 +0100gastus(~gastus@185.6.123.174) (Ping timeout: 248 seconds)
2023-03-18 04:19:07 +0100td_(~td@i5387092E.versanet.de) (Ping timeout: 248 seconds)
2023-03-18 04:20:52 +0100td_(~td@i5387093F.versanet.de)
2023-03-18 04:24:43 +0100ddellacosta(~ddellacos@146.70.165.203) (Ping timeout: 276 seconds)
2023-03-18 04:29:42 +0100codaraxis___(~codaraxis@user/codaraxis)
2023-03-18 04:33:35 +0100codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
2023-03-18 04:37:26 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 04:38:29 +0100 <Nosrep> tusko: I used the haskell wikibook and a little bit of learn you a haskell for a great good
2023-03-18 04:38:47 +0100 <Nosrep> haskell wikibook is surprisingly decent for
2023-03-18 04:38:50 +0100 <Nosrep> yknow a wikibook
2023-03-18 04:42:16 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 04:51:14 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-03-18 04:51:14 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-03-18 04:51:14 +0100finn_elijaFinnElija
2023-03-18 04:57:45 +0100 <sm> yes it is
2023-03-18 05:01:35 +0100wroathe(~wroathe@user/wroathe) (Quit: leaving)
2023-03-18 05:01:59 +0100hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 264 seconds)
2023-03-18 05:03:26 +0100 <Axman6> tusko: the fundamentals haven't changed much, and those are the most important to learn, particularly if you are use to another language - there's a lot of unlearning to do
2023-03-18 05:05:34 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-03-18 05:06:11 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-03-18 05:06:24 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 05:07:19 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-18 05:07:31 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-18 05:15:03 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-18 05:21:04 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-03-18 05:25:06 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 05:28:58 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-03-18 05:29:35 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 268 seconds)
2023-03-18 05:37:53 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2023-03-18 05:40:07 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2023-03-18 05:41:44 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-18 05:55:49 +0100bhall(~brunohall@195.147.207.136)
2023-03-18 05:57:05 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 06:02:13 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 06:08:20 +0100nate4(~nate@98.45.169.16)
2023-03-18 06:13:55 +0100nate4(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2023-03-18 06:30:19 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 06:31:59 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-03-18 06:33:18 +0100ddellacosta(~ddellacos@146.70.165.10)
2023-03-18 06:34:57 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 268 seconds)
2023-03-18 06:39:10 +0100trev(~trev@user/trev)
2023-03-18 06:41:35 +0100bgamari(~bgamari@64.223.227.181) (Ping timeout: 264 seconds)
2023-03-18 06:42:56 +0100vglfr(~vglfr@88.155.41.190)
2023-03-18 07:04:14 +0100raym(~ray@user/raym) (Quit: kernel update, rebooting...)
2023-03-18 07:05:16 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 07:08:14 +0100bgamari(~bgamari@64.223.175.233)
2023-03-18 07:09:50 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 265 seconds)
2023-03-18 07:11:00 +0100captnemo(~captnemo@193.32.127.232) (Quit: WeeChat 3.8)
2023-03-18 07:23:16 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-03-18 07:36:29 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 07:36:38 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 07:37:57 +0100Techcable(~Techcable@user/Techcable) (Ping timeout: 250 seconds)
2023-03-18 07:41:40 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 07:41:40 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2023-03-18 07:51:27 +0100shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 260 seconds)
2023-03-18 07:58:34 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 276 seconds)
2023-03-18 08:00:31 +0100vglfr(~vglfr@88.155.41.190) (Ping timeout: 246 seconds)
2023-03-18 08:04:58 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808) (Remote host closed the connection)
2023-03-18 08:09:53 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 08:14:49 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 08:21:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-18 08:21:39 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-18 08:31:25 +0100_xor(~xor@74.215.46.17)
2023-03-18 08:38:19 +0100bhall(~brunohall@195.147.207.136) (Ping timeout: 256 seconds)
2023-03-18 08:38:52 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-03-18 08:42:30 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 08:44:30 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-18 08:47:19 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 08:48:54 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-03-18 08:50:56 +0100_xor(~xor@74.215.46.17) (Quit: WeeChat 3.8)
2023-03-18 08:51:20 +0100_xor(~xor@74.215.46.17)
2023-03-18 09:02:40 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-03-18 09:05:29 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808)
2023-03-18 09:05:55 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
2023-03-18 09:07:04 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-03-18 09:09:47 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808) (Ping timeout: 246 seconds)
2023-03-18 09:10:49 +0100Techcable(~Techcable@user/Techcable)
2023-03-18 09:25:18 +0100vglfr(~vglfr@88.155.28.96)
2023-03-18 09:32:52 +0100bhall(~brunohall@195.147.207.136)
2023-03-18 09:37:29 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 09:48:12 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 09:48:31 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-03-18 09:52:58 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 09:53:35 +0100vglfr(~vglfr@88.155.28.96) (Ping timeout: 250 seconds)
2023-03-18 09:54:16 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds)
2023-03-18 09:55:29 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-03-18 09:59:00 +0100nate4(~nate@98.45.169.16)
2023-03-18 10:04:00 +0100nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2023-03-18 10:06:09 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2023-03-18 10:06:44 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 265 seconds)
2023-03-18 10:07:19 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2023-03-18 10:13:00 +0100trev(~trev@user/trev) (Remote host closed the connection)
2023-03-18 10:17:36 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-18 10:19:34 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2023-03-18 10:22:17 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 10:27:02 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 265 seconds)
2023-03-18 10:28:52 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-03-18 10:29:28 +0100cyphase(~cyphase@user/cyphase)
2023-03-18 10:43:39 +0100mechap(~mechap@user/mechap) (Ping timeout: 248 seconds)
2023-03-18 10:45:50 +0100mechap(~mechap@user/mechap)
2023-03-18 10:50:21 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2023-03-18 10:50:55 +0100mechap(~mechap@user/mechap) (Ping timeout: 256 seconds)
2023-03-18 10:52:08 +0100mechap(~mechap@user/mechap)
2023-03-18 10:53:48 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 10:57:18 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-03-18 11:00:18 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 252 seconds)
2023-03-18 11:07:20 +0100acidjnk(~acidjnk@p200300d6e715c4018093856d8f871bb4.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 11:11:55 +0100gurkenglas(~gurkengla@dynamic-046-114-183-154.46.114.pool.telefonica.de)
2023-03-18 11:11:58 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 11:13:47 +0100acidjnk(~acidjnk@p200300d6e715c401c40893f71ffff876.dip0.t-ipconnect.de)
2023-03-18 11:14:37 +0100bhall(~brunohall@195.147.207.136) (Ping timeout: 250 seconds)
2023-03-18 11:16:14 +0100bhall(~brunohall@195.147.207.136)
2023-03-18 11:16:19 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 260 seconds)
2023-03-18 11:21:12 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 11:28:55 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 250 seconds)
2023-03-18 11:31:06 +0100Pickchea(~private@user/pickchea)
2023-03-18 11:31:57 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-18 11:34:34 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 11:34:59 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 250 seconds)
2023-03-18 11:39:33 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-03-18 11:42:31 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 11:42:45 +0100vglfr(~vglfr@46.96.129.30)
2023-03-18 11:46:58 +0100vglfr(~vglfr@46.96.129.30) (Ping timeout: 246 seconds)
2023-03-18 11:47:01 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 256 seconds)
2023-03-18 11:47:55 +0100vglfr(~vglfr@88.155.28.139)
2023-03-18 11:49:02 +0100gurkenglas(~gurkengla@dynamic-046-114-183-154.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
2023-03-18 11:52:29 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-03-18 12:00:37 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2023-03-18 12:02:40 +0100siers69(~ij@user/ij)
2023-03-18 12:13:14 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-03-18 12:13:50 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 12:13:54 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-03-18 12:15:35 +0100 <siers69> Hi, are the final/inital encodings from the tagless final paper provably final/inital objects in some category? (I guess it must be the category of the languages described by the encodings with homomorphisms as arrows.)
2023-03-18 12:16:16 +0100Ranhir(~Ranhir@157.97.53.139) (Read error: Connection reset by peer)
2023-03-18 12:20:07 +0100Ranhir(~Ranhir@157.97.53.139)
2023-03-18 12:22:24 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 12:25:33 +0100 <ncf> initial certainly refers to initial algebras (initial objects in the category of algebras over a functor or a monad), not sure about final
2023-03-18 12:25:57 +0100 <ncf> there is a dual notion of terminal coalgebra, but i don't think it's that
2023-03-18 12:26:14 +0100 <ncf> > We call this approach final (in contrast to initial), because we represent each object term not by its abstract syntax but by its deno- tation in a semantic algebra.
2023-03-18 12:26:15 +0100 <lambdabot> <hint>:1:30: error: parse error on input ‘in’
2023-03-18 12:27:50 +0100vglfr(~vglfr@88.155.28.139) (Ping timeout: 246 seconds)
2023-03-18 12:28:01 +0100 <siers69> that sounds like a certain no
2023-03-18 12:28:07 +0100CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-03-18 12:28:45 +0100 <ncf> there might be answers in https://cstheory.stackexchange.com/questions/45565/what-category-are-tagless-final-algebras-final-in
2023-03-18 12:32:44 +0100h2t_(~h2t@user/h2t) (Quit: ZNC - https://znc.in)
2023-03-18 12:33:26 +0100h2t(~h2t@user/h2t)
2023-03-18 12:34:14 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2023-03-18 12:42:33 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-03-18 12:42:54 +0100Bocaneri(~sauvin@user/Sauvin)
2023-03-18 12:43:17 +0100BocaneriGuest8096
2023-03-18 12:45:25 +0100Sauvin(~sauvin@user/Sauvin) (Ping timeout: 246 seconds)
2023-03-18 13:02:27 +0100Midjak(~Midjak@82.66.147.146)
2023-03-18 13:06:47 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 13:08:11 +0100h2t(~h2t@user/h2t) (Quit: ZNC - https://znc.in)
2023-03-18 13:08:55 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808)
2023-03-18 13:11:52 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 13:13:31 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808) (Ping timeout: 248 seconds)
2023-03-18 13:39:24 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 13:42:02 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2023-03-18 13:43:55 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 13:45:48 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-03-18 13:52:37 +0100gemmaro(~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
2023-03-18 13:54:34 +0100nate4(~nate@98.45.169.16)
2023-03-18 13:55:46 +0100acidjnk(~acidjnk@p200300d6e715c401c40893f71ffff876.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 13:56:36 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 13:59:16 +0100nate4(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2023-03-18 14:01:47 +0100zeenk(~zeenk@2a02:2f04:a307:2300::7fe)
2023-03-18 14:05:48 +0100mastarija(~mastarija@188.252.199.82)
2023-03-18 14:11:46 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 14:18:41 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 268 seconds)
2023-03-18 14:22:36 +0100vglfr(~vglfr@88.155.28.139)
2023-03-18 14:22:55 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2023-03-18 14:24:34 +0100crazazy(~user@130.89.171.62)
2023-03-18 14:25:12 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-03-18 14:25:52 +0100acertain(sid470584@hampstead.irccloud.com) (Ping timeout: 252 seconds)
2023-03-18 14:29:05 +0100acertain(sid470584@2a03:5180:f:4::7:2e38)
2023-03-18 14:30:44 +0100jerg(~jerg@2001:a61:2611:1701:e737:6af:a06e:d388)
2023-03-18 14:30:46 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-03-18 14:31:29 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 14:36:03 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 260 seconds)
2023-03-18 14:36:59 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 14:38:11 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-03-18 14:41:16 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 14:42:05 +0100sagax(~sagax_nb@user/sagax) (Quit: Konversation terminated!)
2023-03-18 14:55:14 +0100CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 15:00:13 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 15:04:38 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 15:06:17 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 15:11:04 +0100 <mastarija> Any idea why I'm getting a `Monad` requirement error when using the `ApplicativeDo` extension? No value depends on the previous one so I'm a bit confused.
2023-03-18 15:11:08 +0100 <mastarija> https://paste.tomsmeding.com/SNv1WXVg
2023-03-18 15:13:51 +0100crazazy(~user@130.89.171.62) (Ping timeout: 256 seconds)
2023-03-18 15:14:14 +0100 <TheMatten[m]> mastarija: I think `ApplicativeDo` has to end with `pure _` to be valid - try `pure undefined` at the end instead of `undefined`
2023-03-18 15:14:42 +0100 <[exa]> +1 ^
2023-03-18 15:15:02 +0100 <[exa]> mastarija: also simply try to add (... :: _) to see what it's thinking about the 1st line
2023-03-18 15:15:14 +0100 <mastarija> aha
2023-03-18 15:15:22 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 15:15:30 +0100 <mastarija> It works! :)
2023-03-18 15:15:33 +0100 <mastarija> Thx!
2023-03-18 15:15:57 +0100 <geekosaur> ApplicativeDo is quite dumb, it can push things into Monad just because it doesn't understand them
2023-03-18 15:16:07 +0100 <geekosaur> like requiring explicit `pure`
2023-03-18 15:16:34 +0100mmhat(~mmh@p200300f1c715f785ee086bfffe095315.dip0.t-ipconnect.de)
2023-03-18 15:16:41 +0100 <geekosaur> or using `let` even if the result is valid Applicative
2023-03-18 15:18:07 +0100 <mastarija> Well, at least it'll make things a bit prettier than lifting lambdas over applicative values :)
2023-03-18 15:20:26 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-03-18 15:22:47 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-18 15:22:53 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-03-18 15:23:24 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-18 15:23:55 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 15:25:39 +0100 <mastarija> geekosaur: is there perhaps a way to circumvent the `let` problem? I imagine it desugars `let stuff = previous` as `stuff <- pure previous` ang gets confused, right?
2023-03-18 15:26:36 +0100 <mastarija> I guess I can put it after last `pure`, something like `pure $ let ... in ...`
2023-03-18 15:26:54 +0100 <geekosaur> I think it does the normal desugaring (to `let` …. `in do`) and that breaks it because it's no longer one `do` block
2023-03-18 15:27:37 +0100 <geekosaur> your desugaring might eve allow it to work, but I doubt it because of the `pure`
2023-03-18 15:27:42 +0100 <geekosaur> *even
2023-03-18 15:27:43 +0100bhall(~brunohall@195.147.207.136) (Ping timeout: 276 seconds)
2023-03-18 15:28:33 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 250 seconds)
2023-03-18 15:29:05 +0100 <geekosaur> (remember, `let` is also a block; yours won't work if you have more than one binding)
2023-03-18 15:30:34 +0100 <mastarija> eh.. I guess I'll stick to `pure $ let ... in ...` then. This appears to be working nicely and is not much different from the usuall `do` `let`.
2023-03-18 15:32:30 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 15:32:35 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-03-18 15:41:09 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 255 seconds)
2023-03-18 15:44:07 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 15:48:28 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 15:56:03 +0100 <jerg> hi there, I'm fairly new to haskell and built a maze generator for fun the other day but I noticed that the runtime and gc behavior is pretty odd: the program takes ~600s for a 256x256 maze (513x513 matrix from Data.Matrix internally) and seems to spend most of that time either idling or the garbage collector (over 90% of the time). Any ideas why that could be happening? (I suspect that the mutable vectors that the matrix is built on
2023-03-18 15:56:03 +0100 <jerg> might be the reason but not sure) The code and profiling stats if someone wants to take a look (general tips are also appreciated :D): https://paste.tomsmeding.com/7vk2JdWG)
2023-03-18 16:04:17 +0100Xe(~cadey@tailscale/xe) (Ping timeout: 256 seconds)
2023-03-18 16:07:21 +0100 <Axman6> jerg: where are you using mutable vectors? i cant see anything that looks like you are on a quick read of it
2023-03-18 16:08:00 +0100 <jerg> Data.Matrix is using them internally I think
2023-03-18 16:08:22 +0100 <Axman6> i would be surprised if it did
2023-03-18 16:09:39 +0100 <Axman6> well, it is, but by copying immutable vectors _a lot_, based on that profile
2023-03-18 16:09:59 +0100 <[exa]> jerg: probably irrelevant to performance issues but you might love to use guards for the complex condition you have there in baseMaze l. 46
2023-03-18 16:10:16 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 16:10:45 +0100bhall(~brunohall@195.147.207.136)
2023-03-18 16:10:53 +0100 <[exa]> jerg: something like: ... where baseMazeElem x y | even x, even y, x >= 1, .... = Marked; baseMazeElem _ _ = Wall
2023-03-18 16:11:16 +0100 <Axman6> i have a strong feeling thst you are copying your matrix for every single write
2023-03-18 16:11:40 +0100 <[exa]> anyway yeah AFAIK Data.Matrix is immutable
2023-03-18 16:12:19 +0100nate4(~nate@98.45.169.16)
2023-03-18 16:13:17 +0100 <[exa]> jerg: and a style pick, you don't need the `in` on line 27; `let` in a do-block has allowed to have the rest of the block as an "implicit" `in`
2023-03-18 16:13:37 +0100 <jerg> added the guards thx:D
2023-03-18 16:13:45 +0100 <jerg> ohh neat I didn't know that
2023-03-18 16:13:46 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 16:14:29 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 250 seconds)
2023-03-18 16:14:57 +0100 <[exa]> yeah it's lovely (slightly dangerous because it's super easy to assume you're doing monadic env and the let doesn't create a recursive binding :D but that's usually a fast debug)
2023-03-18 16:15:36 +0100 <[exa]> (as in, `x <- doUpdate x` is OK, but `let x = doUpdate x` is usually not what you want)
2023-03-18 16:17:05 +0100nate4(~nate@98.45.169.16) (Ping timeout: 250 seconds)
2023-03-18 16:17:35 +0100 <Axman6> jerg: Was there anything that made you choose matrix? it's quite old - not sure what the go to package for n-dimensional (mutable) arrays is, but the vector pacage can get you a very long way
2023-03-18 16:17:50 +0100 <jerg> good to know :D
2023-03-18 16:18:16 +0100Xe(~cadey@tailscale/xe)
2023-03-18 16:19:08 +0100 <Axman6> Repa is an option, or even the age old array package which provides mutale arrays
2023-03-18 16:19:13 +0100 <Axman6> mutable*
2023-03-18 16:19:14 +0100 <jerg> nope not really it just seemed simple and relatively well suited (before I discovered the performance issues)
2023-03-18 16:20:13 +0100 <jerg> thx I'll take a look at those
2023-03-18 16:20:14 +0100 <Axman6> It's possible that thjere are much better ways to implement what you have using the matrix package, but iteratively updating it one location at a time will never be fast
2023-03-18 16:20:29 +0100zeenk(~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!)
2023-03-18 16:21:07 +0100 <jerg> ye I kinda expected that but didn't expect the gc to freak out that much
2023-03-18 16:21:11 +0100 <Axman6> you can maintain a pure interface to thealgorithm, by using the ST monad, which gives you genuine mutability with a guaranteed pure interface
2023-03-18 16:22:37 +0100 <jerg> I'll take a look at as well then
2023-03-18 16:22:46 +0100 <Axman6> well, you are generating _a lot_ of garbage, 513*513*8 bytes per matyrix, and 513*513 of those,. is I understand correctly
2023-03-18 16:23:01 +0100 <Axman6> > 513^4*8
2023-03-18 16:23:03 +0100 <lambdabot> 554063380488
2023-03-18 16:23:42 +0100 <Axman6> > logBase 1024 554063380488
2023-03-18 16:23:43 +0100 <lambdabot> 3.901126006242822
2023-03-18 16:24:26 +0100 <Axman6> so... several GB of garbage
2023-03-18 16:24:35 +0100 <Axman6> actually, from he profile:
2023-03-18 16:24:44 +0100 <Axman6> > logBase 1024 276242083440
2023-03-18 16:24:45 +0100 <lambdabot> 3.8007142164027927
2023-03-18 16:25:33 +0100 <Axman6> 276242083440 bytes is over 276GB
2023-03-18 16:26:19 +0100 <Axman6> I would expect any program allocating that much, particularly when thestructure is completely made of pointers, to sopend a lot of time GCing (:
2023-03-18 16:26:42 +0100 <jerg> fair makes sense
2023-03-18 16:27:16 +0100 <Axman6> Anyway, now you get to learn about the ST monad and make this thing use like 1KB of memory
2023-03-18 16:27:28 +0100 <jerg> :D
2023-03-18 16:27:59 +0100 <Axman6> An introduction https://wiki.haskell.org/Monad/ST
2023-03-18 16:28:35 +0100 <jerg> reading that rn might take a bit for me to wrap my head around
2023-03-18 16:30:29 +0100 <geekosaur> ST looks scary but isn't; it gives you mutable arrays / matrices like IO does, but tagged so you can do it in pure code and they can't escape
2023-03-18 16:31:41 +0100 <Axman6> f you used Data.Array.MArray, yopu'd have something like runSTArray $ do { arr <- newArray_ ((0,0),(513,513)); lotsOfCallsTo writeArray arr (x,y) Path; pure arr }
2023-03-18 16:32:21 +0100 <Axman6> which would give you back an Array Cell
2023-03-18 16:33:19 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-03-18 16:33:37 +0100dsp__(~dsp@host86-137-135-17.range86-137.btcentralplus.com)
2023-03-18 16:34:17 +0100dsp__dsp
2023-03-18 16:37:00 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 16:38:03 +0100econo(uid147250@user/econo)
2023-03-18 16:38:21 +0100fyrstavon(~fyrstavon@194.144.46.247)
2023-03-18 16:39:35 +0100fyrstavon(~fyrstavon@194.144.46.247) (Client Quit)
2023-03-18 16:40:00 +0100__ht(~Thunderbi@194.110.115.10)
2023-03-18 16:40:29 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 250 seconds)
2023-03-18 16:40:30 +0100__ht_ht
2023-03-18 16:44:02 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 16:44:23 +0100__ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-03-18 16:45:05 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 16:45:27 +0100_ht(~Thunderbi@194.110.115.10) (Ping timeout: 268 seconds)
2023-03-18 16:45:27 +0100__ht_ht
2023-03-18 16:47:51 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 250 seconds)
2023-03-18 16:49:46 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 268 seconds)
2023-03-18 16:55:28 +0100pwntips(~user@24-113-98-114.wavecable.com) (Ping timeout: 276 seconds)
2023-03-18 16:57:04 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 17:03:03 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-03-18 17:10:22 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 17:13:53 +0100nek0(~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
2023-03-18 17:14:40 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 252 seconds)
2023-03-18 17:16:20 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 17:23:00 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 17:23:17 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 17:26:58 +0100nek0(~nek0@2a01:4f8:222:2b41::12)
2023-03-18 17:27:47 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 17:28:57 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 17:30:29 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-03-18 17:31:11 +0100crazazy(~user@130.89.171.62)
2023-03-18 17:32:36 +0100gehmehgeh(~user@user/gehmehgeh)
2023-03-18 17:39:04 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808)
2023-03-18 17:40:02 +0100dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com) (Ping timeout: 246 seconds)
2023-03-18 17:45:55 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-18 17:51:13 +0100crazazy(~user@130.89.171.62) (Ping timeout: 265 seconds)
2023-03-18 17:53:50 +0100sp00kins(~sp00kins@2601:5ce:4300:7501:d35e:6f0f:6b0e:6d83)
2023-03-18 17:54:56 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 17:58:59 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 18:00:26 +0100acidjnk(~acidjnk@p54ad56b7.dip0.t-ipconnect.de)
2023-03-18 18:00:28 +0100ddellacosta(~ddellacos@146.70.165.10) (Ping timeout: 276 seconds)
2023-03-18 18:00:32 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 18:01:22 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
2023-03-18 18:03:26 +0100mechap(~mechap@user/mechap) (Ping timeout: 252 seconds)
2023-03-18 18:04:08 +0100dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net) (Remote host closed the connection)
2023-03-18 18:04:14 +0100aisa(~aisa@user/aisa) (Ping timeout: 246 seconds)
2023-03-18 18:05:26 +0100mechap(~mechap@user/mechap)
2023-03-18 18:05:40 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 18:06:47 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 18:08:06 +0100dcoutts_(~duncan@host86-144-78-144.range86-144.btcentralplus.com)
2023-03-18 18:10:52 +0100dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 276 seconds)
2023-03-18 18:11:31 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 18:15:10 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 252 seconds)
2023-03-18 18:16:38 +0100trev(~trev@user/trev)
2023-03-18 18:19:03 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-03-18 18:26:35 +0100dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com)
2023-03-18 18:29:06 +0100dcoutts_(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 252 seconds)
2023-03-18 18:30:39 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 18:31:52 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-03-18 18:32:14 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-03-18 18:36:12 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 18:36:35 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-18 18:36:56 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 18:37:56 +0100mmhat(~mmh@p200300f1c715f785ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
2023-03-18 18:38:49 +0100euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 276 seconds)
2023-03-18 18:45:39 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 255 seconds)
2023-03-18 18:45:57 +0100 <EvanR> I just noticed the Show instance for Vector looks like List
2023-03-18 18:46:38 +0100 <EvanR> replicate 5 'a' => "aaaaa", replicate 5 1.9 => [1.9,1.9,1.9,1.9,1.9]
2023-03-18 18:46:50 +0100 <EvanR> don't that beat all
2023-03-18 18:49:06 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 18:49:32 +0100 <EvanR> how does that even work, magic?
2023-03-18 18:49:42 +0100telser(~quassel@user/telser) (Ping timeout: 255 seconds)
2023-03-18 18:50:25 +0100 <geekosaur> hand written instance that calls showList
2023-03-18 18:51:21 +0100telser(~quassel@user/telser)
2023-03-18 18:54:09 +0100 <EvanR> and the list show is magic?
2023-03-18 18:54:39 +0100 <EvanR> :t showList
2023-03-18 18:54:41 +0100 <lambdabot> Show a => [a] -> ShowS
2023-03-18 18:54:46 +0100 <geekosaur> showList is a separate method of Show, so strings can be handled specially without requiring extensions over Haskell98
2023-03-18 18:55:12 +0100 <EvanR> showList "abc" ""
2023-03-18 18:55:15 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 250 seconds)
2023-03-18 18:55:16 +0100 <EvanR> > showList "abc" ""
2023-03-18 18:55:17 +0100 <lambdabot> "\"abc\""
2023-03-18 18:55:22 +0100 <EvanR> > showList [1,2,3] ""
2023-03-18 18:55:24 +0100 <lambdabot> "[1,2,3]"
2023-03-18 18:56:10 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 18:56:16 +0100 <geekosaur> it has a default implementation which is overridden by instance Show Char
2023-03-18 18:56:29 +0100 <EvanR> oh cool
2023-03-18 19:00:49 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 265 seconds)
2023-03-18 19:03:15 +0100azure_vermilion(~Thunderbi@164.39.138.83) (Quit: azure_vermilion)
2023-03-18 19:03:36 +0100azure_vermilion(~Thunderbi@164.39.138.83)
2023-03-18 19:04:05 +0100MajorBiscuit(~MajorBisc@2001:1c00:2408:a400:67e:5371:52a7:9b9a)
2023-03-18 19:17:34 +0100codaraxis___(~codaraxis@user/codaraxis) (Remote host closed the connection)
2023-03-18 19:21:32 +0100shriekingnoise(~shrieking@186.137.175.87)
2023-03-18 19:26:25 +0100mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-03-18 19:27:37 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 19:30:22 +0100 <mastarija> When defining a helper function in `where` block. Is it possible to make it not "specialize" to the first type it's used on, without writing a type signature and `forall x...`?
2023-03-18 19:31:02 +0100 <geekosaur> nope. either you specify a type or it infers one
2023-03-18 19:31:11 +0100 <mastarija> :(
2023-03-18 19:31:59 +0100 <int-e> isn't that NoMonomorphismRestriction territory?
2023-03-18 19:32:19 +0100 <int-e> Wait, wrong one, there's NoMonoLocalBinds
2023-03-18 19:33:23 +0100 <geekosaur> but MonoLocalBinds defaults off unless you're using something that makes it problematic, like type families
2023-03-18 19:34:02 +0100 <int-e> let's check... foo :: (Int, Integer); foo = (n, n) where n = 42 compiles with NoMonomorphismRestriction enabled.
2023-03-18 19:34:23 +0100 <int-e> while NoMonoLocalBinds makes no difference there
2023-03-18 19:35:05 +0100paul_j(~user@2001:8b0:dea0:f3c9:52eb:f6ff:fe56:59ca)
2023-03-18 19:35:10 +0100 <int-e> I've never used it... usually type signatures are good.
2023-03-18 19:36:16 +0100dcoutts_(~duncan@host86-144-78-144.range86-144.btcentralplus.com)
2023-03-18 19:36:24 +0100 <mauke> mastarija: it normally doesn't specialize
2023-03-18 19:36:39 +0100 <int-e> So I rather reach for ScopedTypeVariables to make those work. But on occasion, types get big and ugly and uninformative.
2023-03-18 19:36:59 +0100 <mauke> mastarija: can I see an example that's giving you trouble?
2023-03-18 19:37:03 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 260 seconds)
2023-03-18 19:38:33 +0100 <geekosaur> their mentioning forall makes me wonder if they want rank-2 inference, which isn't happening
2023-03-18 19:38:35 +0100dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 248 seconds)
2023-03-18 19:38:54 +0100 <geekosaur> (rank-2 is possible but Hard. higher ranks are impossible)
2023-03-18 19:39:24 +0100 <mauke> it might be the monomorphism restriction
2023-03-18 19:39:33 +0100 <geekosaur> not inside a where
2023-03-18 19:39:37 +0100 <mauke> I don't see how anything else could match the reported symptoms
2023-03-18 19:39:44 +0100 <geekosaur> and we already checked MonoLocalBinds
2023-03-18 19:40:43 +0100 <mauke> > let foo x = (s x, s [x]) where s = show in foo 42
2023-03-18 19:40:45 +0100 <lambdabot> ("42","[42]")
2023-03-18 19:41:31 +0100 <int-e> that would fail with MonomorphismRestriction enabled
2023-03-18 19:42:18 +0100caryhartline(~caryhartl@2600:1700:2d0:8d30:6576:9fe8:b907:8643)
2023-03-18 19:42:38 +0100paul_j(~user@2001:8b0:dea0:f3c9:52eb:f6ff:fe56:59ca) (Quit: Asta la vista)
2023-03-18 19:44:03 +0100 <int-e> Well, I don't know. The "forall" could well be the one you need for scoped type variables.
2023-03-18 19:44:48 +0100 <int-e> [information needed]
2023-03-18 19:45:38 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-03-18 19:50:28 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2023-03-18 19:52:17 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-03-18 19:52:33 +0100 <mastarija> mauke: just a sec
2023-03-18 19:54:10 +0100sp00kins(~sp00kins@2601:5ce:4300:7501:d35e:6f0f:6b0e:6d83) (Quit: sp00kins)
2023-03-18 19:54:10 +0100 <mastarija> mauke: https://paste.tomsmeding.com/kmO9UMVg
2023-03-18 19:57:24 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 19:57:37 +0100 <mastarija> the `where` part in the `_curbs` traversal in case it wasn't clear :)
2023-03-18 19:57:59 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 19:59:24 +0100 <mastarija> I should be able to apply `cd2fcdH` to any `Curb s a n` of any `s`.
2023-03-18 19:59:42 +0100 <mastarija> But without the type signature I'm not able to.
2023-03-18 20:02:35 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 20:03:58 +0100shapr(~user@68.54.166.125) (Ping timeout: 246 seconds)
2023-03-18 20:08:21 +0100Sgeo(~Sgeo@user/sgeo)
2023-03-18 20:11:26 +0100euandreh(~Thunderbi@189.6.18.7)
2023-03-18 20:12:48 +0100dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com)
2023-03-18 20:13:56 +0100nate4(~nate@98.45.169.16)
2023-03-18 20:19:07 +0100nate4(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2023-03-18 20:21:55 +0100CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-03-18 20:22:51 +0100bhall(~brunohall@195.147.207.136) (Ping timeout: 246 seconds)
2023-03-18 20:30:30 +0100emmanuelux_(~emmanuelu@user/emmanuelux)
2023-03-18 20:31:10 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 20:31:55 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-03-18 20:33:37 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 250 seconds)
2023-03-18 20:35:49 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 20:39:04 +0100telser(~quassel@user/telser) (Ping timeout: 276 seconds)
2023-03-18 20:39:44 +0100telser(~quassel@user/telser)
2023-03-18 20:40:33 +0100 <mauke> mastarija: do you still get an error if you remove the type signature, but change the definition to `cd2fcdH x = (fmap redirectCurb . cd2fcd . redirectCurb) x`?
2023-03-18 20:41:20 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-18 20:43:14 +0100 <mastarija> mauke: yes
2023-03-18 20:49:48 +0100telser(~quassel@user/telser) (Ping timeout: 246 seconds)
2023-03-18 20:50:07 +0100ubert(~Thunderbi@p548c89b6.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2023-03-18 20:50:07 +0100ububert
2023-03-18 20:50:10 +0100bhall(~brunohall@195.147.207.136)
2023-03-18 20:50:25 +0100telser(~quassel@user/telser)
2023-03-18 20:51:35 +0100vglfr(~vglfr@88.155.28.139) (Ping timeout: 256 seconds)
2023-03-18 20:52:47 +0100vglfr(~vglfr@88.155.24.235)
2023-03-18 20:53:25 +0100 <mauke> OK, I smell ScopedTypeVariables, but there's too many undefined things in that code for me to play around with it
2023-03-18 20:56:32 +0100ubert1(~Thunderbi@p200300ecdf20b55e36d1449b246cba0e.dip0.t-ipconnect.de)
2023-03-18 20:59:01 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 20:59:41 +0100captnemo(~captnemo@193.32.127.232)
2023-03-18 21:00:25 +0100trev(~trev@user/trev) (Remote host closed the connection)
2023-03-18 21:01:09 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-18 21:01:42 +0100 <mastarija> thx anyway
2023-03-18 21:03:37 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 21:03:55 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-03-18 21:07:03 +0100biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-03-18 21:08:25 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 265 seconds)
2023-03-18 21:11:51 +0100biberu(~biberu@user/biberu)
2023-03-18 21:13:15 +0100krei-se(~krei-se@p50874d44.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2023-03-18 21:15:10 +0100krei-se(~krei-se@p57af2793.dip0.t-ipconnect.de)
2023-03-18 21:16:18 +0100dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net)
2023-03-18 21:23:46 +0100dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com) (Ping timeout: 246 seconds)
2023-03-18 21:28:24 +0100telser(~quassel@user/telser) (Ping timeout: 252 seconds)
2023-03-18 21:34:54 +0100dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com)
2023-03-18 21:36:51 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 21:41:15 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 21:42:11 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-03-18 21:42:21 +0100michalz(~michalz@185.246.207.205)
2023-03-18 21:48:05 +0100dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com)
2023-03-18 21:48:24 +0100chomwitt(~chomwitt@ppp-94-67-217-45.home.otenet.gr)
2023-03-18 21:50:02 +0100dcoutts_(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 252 seconds)
2023-03-18 21:50:10 +0100telser(~quassel@user/telser)
2023-03-18 21:55:05 +0100michalz(~michalz@185.246.207.205) (Remote host closed the connection)
2023-03-18 22:00:16 +0100michalz(~michalz@185.246.207.222)
2023-03-18 22:01:51 +0100telser(~quassel@user/telser) (Ping timeout: 255 seconds)
2023-03-18 22:02:59 +0100dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com) (Ping timeout: 256 seconds)
2023-03-18 22:04:15 +0100coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-18 22:04:38 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 246 seconds)
2023-03-18 22:04:52 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-03-18 22:05:03 +0100coot_coot
2023-03-18 22:05:19 +0100telser(~quassel@user/telser)
2023-03-18 22:10:46 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 22:10:56 +0100telser(~quassel@user/telser) (Ping timeout: 252 seconds)
2023-03-18 22:14:58 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 252 seconds)
2023-03-18 22:16:47 +0100Fischmiep(~Fischmiep@user/Fischmiep) (Read error: Connection reset by peer)
2023-03-18 22:21:47 +0100talismanick(~talismani@2601:200:c000:f7a0::5321) (Ping timeout: 260 seconds)
2023-03-18 22:22:05 +0100pavonia(~user@user/siracusa)
2023-03-18 22:22:36 +0100Fischmiep(~Fischmiep@user/Fischmiep)
2023-03-18 22:35:11 +0100telser(~quassel@user/telser)
2023-03-18 22:36:25 +0100shapr(~user@68.54.166.125)
2023-03-18 22:39:31 +0100CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2023-03-18 22:42:17 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-03-18 22:42:17 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-03-18 22:42:17 +0100wroathe(~wroathe@user/wroathe)
2023-03-18 22:43:27 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 22:45:14 +0100michalz(~michalz@185.246.207.222) (Remote host closed the connection)
2023-03-18 22:46:01 +0100bhall(~brunohall@195.147.207.136) (Read error: Connection reset by peer)
2023-03-18 22:48:11 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 22:49:34 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-03-18 22:49:38 +0100 <azure_vermilion> what does ~ mean in unzip3 = foldr (\(a,b,c) ~(as,bs,cs) -> (a:as,b:bs,c:cs)) ([],[],[])
2023-03-18 22:49:59 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-18 22:50:37 +0100 <monochrom> Look for "irrefutable patterns". Short answer is it increases laziness.
2023-03-18 22:51:39 +0100 <azure_vermilion> thanks
2023-03-18 22:52:47 +0100bhall(~brunohall@195.147.207.136)
2023-03-18 22:54:06 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal)
2023-03-18 22:54:25 +0100 <mauke> the "trust me, bro" of pattern matching
2023-03-18 22:54:47 +0100 <Jade[m]1> hahaha
2023-03-18 22:55:39 +0100 <mauke> > case Nothing of ~(Just x) -> "we cool"
2023-03-18 22:55:41 +0100 <lambdabot> "we cool"
2023-03-18 22:55:48 +0100 <mauke> > case Nothing of ~(Just x) -> "we cool: " ++ show x
2023-03-18 22:55:50 +0100 <lambdabot> "we cool: *Exception: <interactive>:(3,1)-(4,22): Non-exhaustive patterns in...
2023-03-18 22:56:31 +0100 <azure_vermilion> lol
2023-03-18 22:57:29 +0100telser(~quassel@user/telser) (Ping timeout: 250 seconds)
2023-03-18 23:00:02 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 23:06:14 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 246 seconds)
2023-03-18 23:06:33 +0100telser(~quassel@user/telser)
2023-03-18 23:09:17 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 23:12:11 +0100dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com)
2023-03-18 23:13:57 +0100dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 250 seconds)
2023-03-18 23:14:25 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 23:19:23 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-03-18 23:23:56 +0100andrewboltachev(~andrey@178.141.199.8)
2023-03-18 23:25:59 +0100 <andrewboltachev> Hello. When using zygomorphism (recusrion scheme), may I have the auxillary F-algebra (1st argument of zygo) as a composition of two F-algebras?
2023-03-18 23:28:21 +0100crazazy(~user@130.89.171.62)
2023-03-18 23:32:39 +0100 <andrewboltachev> Using easier approach, is it possible to convert a value from "normal" recursive type to "F" (if makeBaseFunctor was used on a "normal" type)?
2023-03-18 23:33:12 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-03-18 23:42:19 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2023-03-18 23:42:24 +0100freeside(~mengwong@122.11.248.245)
2023-03-18 23:42:41 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-18 23:45:35 +0100dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com) (Ping timeout: 250 seconds)
2023-03-18 23:45:59 +0100mastarija(~mastarija@188.252.199.82) (Quit: WeeChat 3.7.1)
2023-03-18 23:46:35 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 23:47:14 +0100bhall(~brunohall@195.147.207.136) (Ping timeout: 246 seconds)
2023-03-18 23:48:50 +0100vglfr(~vglfr@88.155.24.235) (Ping timeout: 252 seconds)
2023-03-18 23:54:35 +0100bhall(~brunohall@195.147.207.136)
2023-03-18 23:54:41 +0100crazazy(~user@130.89.171.62) (Ping timeout: 265 seconds)