2023/03/18

2023-03-18 00:01:05 +0000 <EvanR> hmm setting up megaparsec to parse entire words rather than letters seems involved
2023-03-18 00:02:16 +0000acidjnk(~acidjnk@p200300d6e715c4806dec91424f6e1ce7.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 00:04:05 +0000bhall(~brunohall@195.147.207.136)
2023-03-18 00:04:55 +0000jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2023-03-18 00:08:23 +0000 <yushyin> with overloaded strings you can just use a string literal
2023-03-18 00:09:04 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2023-03-18 00:09:14 +0000ddellacosta(~ddellacos@146.70.165.203) (Quit: WeeChat 3.8)
2023-03-18 00:09:32 +0000mncheck(~mncheck@193.224.205.254) (Ping timeout: 246 seconds)
2023-03-18 00:10:46 +0000ddellacosta(~ddellacos@146.70.165.203)
2023-03-18 00:13:41 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 00:18:49 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 00:27:43 +0000 <EvanR> I mean change the token stream from Text to [Text]
2023-03-18 00:28:49 +0000 <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 00:29:02 +0000acidjnk(~acidjnk@p200300d6e715c4018093856d8f871bb4.dip0.t-ipconnect.de)
2023-03-18 00:30:29 +0000chomwitt(~chomwitt@2a02:587:7a19:9200:1ac0:4dff:fedb:a3f1) (Ping timeout: 256 seconds)
2023-03-18 00:30:33 +0000zeenk(~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!)
2023-03-18 00:43:22 +0000sp00kins(~sp00kins@97.73.80.30)
2023-03-18 00:43:53 +0000gurkenglas(~gurkengla@dynamic-046-114-183-154.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2023-03-18 00:45:04 +0000sp00kins(~sp00kins@97.73.80.30) (Client Quit)
2023-03-18 00:45:22 +0000sp00kins(~sp00kins@246.sub-174-216-180.myvzw.com)
2023-03-18 00:45:27 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 00:49:30 +0000ubert(~Thunderbi@p200300ecdf0c57fa632b521f42b5c1ff.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 00:50:01 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 00:50:15 +0000jerg(~jerg@2001:a61:2611:1701:e737:6af:a06e:d388) (Ping timeout: 260 seconds)
2023-03-18 00:51:19 +0000ub(~Thunderbi@p548c84ba.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2023-03-18 00:52:14 +0000mauke_(~mauke@user/mauke)
2023-03-18 00:53:41 +0000mauke(~mauke@user/mauke) (Ping timeout: 246 seconds)
2023-03-18 00:53:42 +0000mauke_mauke
2023-03-18 00:54:27 +0000ubert(~Thunderbi@p548c89b6.dip0.t-ipconnect.de)
2023-03-18 00:56:32 +0000irrgit__(~irrgit@146.70.27.218)
2023-03-18 00:57:21 +0000Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2023-03-18 00:57:35 +0000nate4(~nate@98.45.169.16)
2023-03-18 00:58:52 +0000ub(~Thunderbi@p200300ecdf20b545ee6fc32ba90dc667.dip0.t-ipconnect.de)
2023-03-18 00:59:31 +0000irrgit_(~irrgit@176.113.74.138) (Ping timeout: 250 seconds)
2023-03-18 01:08:54 +0000nate4(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2023-03-18 01:10:23 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-03-18 01:10:33 +0000talismanick(~talismani@2601:200:c000:f7a0::5321) (Remote host closed the connection)
2023-03-18 01:11:24 +0000talismanick(~talismani@2601:200:c000:f7a0::5321)
2023-03-18 01:16:31 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-03-18 01:20:12 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 01:24:47 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 01:28:03 +0000telser_(~quassel@user/telser) (Ping timeout: 265 seconds)
2023-03-18 01:28:28 +0000telser(~quassel@user/telser)
2023-03-18 01:31:55 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 265 seconds)
2023-03-18 01:34:51 +0000catern-(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
2023-03-18 01:35:41 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-03-18 01:37:13 +0000bhall(~brunohall@195.147.207.136) (Ping timeout: 250 seconds)
2023-03-18 01:46:11 +0000_xor(~xor@74.215.46.17)
2023-03-18 01:46:20 +0000_xor(~xor@74.215.46.17) (Client Quit)
2023-03-18 01:47:26 +0000_xor(~xor@74.215.46.17)
2023-03-18 01:47:37 +0000_xor(~xor@74.215.46.17) (Client Quit)
2023-03-18 01:51:44 +0000ub(~Thunderbi@p200300ecdf20b545ee6fc32ba90dc667.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 01:52:04 +0000ub(~Thunderbi@p548c89b6.dip0.t-ipconnect.de)
2023-03-18 01:54:54 +0000nate4(~nate@98.45.169.16)
2023-03-18 01:55:44 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 02:00:32 +0000srz(~srz@179.36.116.51)
2023-03-18 02:00:52 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 02:05:03 +0000catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Remote host closed the connection)
2023-03-18 02:05:10 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 02:09:46 +0000 <tusko> what is the best haskell tutorial?
2023-03-18 02:09:58 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2023-03-18 02:15:31 +0000 <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 02:17:00 +0000 <yushyin> i liked https://www.haskell.org/tutorial/ when i started with haskell
2023-03-18 02:30:03 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-03-18 02:30:21 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2023-03-18 02:31:10 +0000masterbuilder(~masterbui@user/masterbuilder) (Quit: Lost terminal)
2023-03-18 02:31:13 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 02:31:24 +0000Lord_of_Life_Lord_of_Life
2023-03-18 02:33:09 +0000masterbuilder(~masterbui@user/masterbuilder)
2023-03-18 02:33:32 +0000sp00kins(~sp00kins@246.sub-174-216-180.myvzw.com) (Quit: sp00kins)
2023-03-18 02:35:23 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 02:50:55 +0000nate4(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2023-03-18 02:52:12 +0000 <tusko> thank you for those suggestions. I'll check it out
2023-03-18 02:52:42 +0000 <tusko> I guess seeing something from 1998 I thought perhaps the language had moved on by now
2023-03-18 02:54:11 +0000srz(~srz@179.36.116.51) (Read error: Connection reset by peer)
2023-03-18 03:03:21 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 03:05:43 +0000jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2023-03-18 03:08:28 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 03:10:24 +0000gastus_(~gastus@185.6.123.157)
2023-03-18 03:12:18 +0000 <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 03:13:15 +0000gastus(~gastus@185.6.123.174) (Ping timeout: 248 seconds)
2023-03-18 03:19:07 +0000td_(~td@i5387092E.versanet.de) (Ping timeout: 248 seconds)
2023-03-18 03:20:52 +0000td_(~td@i5387093F.versanet.de)
2023-03-18 03:24:43 +0000ddellacosta(~ddellacos@146.70.165.203) (Ping timeout: 276 seconds)
2023-03-18 03:29:42 +0000codaraxis___(~codaraxis@user/codaraxis)
2023-03-18 03:33:35 +0000codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
2023-03-18 03:37:26 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 03:38:29 +0000 <Nosrep> tusko: I used the haskell wikibook and a little bit of learn you a haskell for a great good
2023-03-18 03:38:47 +0000 <Nosrep> haskell wikibook is surprisingly decent for
2023-03-18 03:38:50 +0000 <Nosrep> yknow a wikibook
2023-03-18 03:42:16 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 03:51:14 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-03-18 03:51:14 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-03-18 03:51:14 +0000finn_elijaFinnElija
2023-03-18 03:57:45 +0000 <sm> yes it is
2023-03-18 04:01:35 +0000wroathe(~wroathe@user/wroathe) (Quit: leaving)
2023-03-18 04:01:59 +0000hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 264 seconds)
2023-03-18 04:03:26 +0000 <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 04:05:34 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-03-18 04:06:11 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-03-18 04:06:24 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 04:07:19 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-18 04:07:31 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-18 04:15:03 +0000hugo(znc@verdigris.lysator.liu.se)
2023-03-18 04:21:04 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-03-18 04:25:06 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 04:28:58 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-03-18 04:29:35 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 268 seconds)
2023-03-18 04:37:53 +0000azimut_(~azimut@gateway/tor-sasl/azimut)
2023-03-18 04:40:07 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2023-03-18 04:41:44 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-18 04:55:49 +0000bhall(~brunohall@195.147.207.136)
2023-03-18 04:57:05 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 05:02:13 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 05:08:20 +0000nate4(~nate@98.45.169.16)
2023-03-18 05:13:55 +0000nate4(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2023-03-18 05:30:19 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 05:31:59 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-03-18 05:33:18 +0000ddellacosta(~ddellacos@146.70.165.10)
2023-03-18 05:34:57 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 268 seconds)
2023-03-18 05:39:10 +0000trev(~trev@user/trev)
2023-03-18 05:41:35 +0000bgamari(~bgamari@64.223.227.181) (Ping timeout: 264 seconds)
2023-03-18 05:42:56 +0000vglfr(~vglfr@88.155.41.190)
2023-03-18 06:04:14 +0000raym(~ray@user/raym) (Quit: kernel update, rebooting...)
2023-03-18 06:05:16 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 06:08:14 +0000bgamari(~bgamari@64.223.175.233)
2023-03-18 06:09:50 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 265 seconds)
2023-03-18 06:11:00 +0000captnemo(~captnemo@193.32.127.232) (Quit: WeeChat 3.8)
2023-03-18 06:23:16 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2023-03-18 06:36:29 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 06:36:38 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 06:37:57 +0000Techcable(~Techcable@user/Techcable) (Ping timeout: 250 seconds)
2023-03-18 06:41:40 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 06:41:40 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2023-03-18 06:51:27 +0000shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 260 seconds)
2023-03-18 06:58:34 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 276 seconds)
2023-03-18 07:00:31 +0000vglfr(~vglfr@88.155.41.190) (Ping timeout: 246 seconds)
2023-03-18 07:04:58 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808) (Remote host closed the connection)
2023-03-18 07:09:53 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 07:14:49 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 07:21:09 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-18 07:21:39 +0000hugo(znc@verdigris.lysator.liu.se)
2023-03-18 07:31:25 +0000_xor(~xor@74.215.46.17)
2023-03-18 07:38:19 +0000bhall(~brunohall@195.147.207.136) (Ping timeout: 256 seconds)
2023-03-18 07:38:52 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-03-18 07:42:30 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 07:44:30 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-18 07:47:19 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 07:48:54 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-03-18 07:50:56 +0000_xor(~xor@74.215.46.17) (Quit: WeeChat 3.8)
2023-03-18 07:51:20 +0000_xor(~xor@74.215.46.17)
2023-03-18 08:02:40 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-03-18 08:05:29 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808)
2023-03-18 08:05:55 +0000jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
2023-03-18 08:07:04 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2023-03-18 08:09:47 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808) (Ping timeout: 246 seconds)
2023-03-18 08:10:49 +0000Techcable(~Techcable@user/Techcable)
2023-03-18 08:25:18 +0000vglfr(~vglfr@88.155.28.96)
2023-03-18 08:32:52 +0000bhall(~brunohall@195.147.207.136)
2023-03-18 08:37:29 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 08:48:12 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 08:48:31 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-03-18 08:52:58 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 08:53:35 +0000vglfr(~vglfr@88.155.28.96) (Ping timeout: 250 seconds)
2023-03-18 08:54:16 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds)
2023-03-18 08:55:29 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-03-18 08:59:00 +0000nate4(~nate@98.45.169.16)
2023-03-18 09:04:00 +0000nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2023-03-18 09:06:09 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2023-03-18 09:06:44 +0000cyphase(~cyphase@user/cyphase) (Ping timeout: 265 seconds)
2023-03-18 09:07:19 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2023-03-18 09:13:00 +0000trev(~trev@user/trev) (Remote host closed the connection)
2023-03-18 09:17:36 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-18 09:19:34 +0000Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2023-03-18 09:22:17 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 09:27:02 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 265 seconds)
2023-03-18 09:28:52 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-03-18 09:29:28 +0000cyphase(~cyphase@user/cyphase)
2023-03-18 09:43:39 +0000mechap(~mechap@user/mechap) (Ping timeout: 248 seconds)
2023-03-18 09:45:50 +0000mechap(~mechap@user/mechap)
2023-03-18 09:50:21 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2023-03-18 09:50:55 +0000mechap(~mechap@user/mechap) (Ping timeout: 256 seconds)
2023-03-18 09:52:08 +0000mechap(~mechap@user/mechap)
2023-03-18 09:53:48 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 09:57:18 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-03-18 10:00:18 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 252 seconds)
2023-03-18 10:07:20 +0000acidjnk(~acidjnk@p200300d6e715c4018093856d8f871bb4.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 10:11:55 +0000gurkenglas(~gurkengla@dynamic-046-114-183-154.46.114.pool.telefonica.de)
2023-03-18 10:11:58 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 10:13:47 +0000acidjnk(~acidjnk@p200300d6e715c401c40893f71ffff876.dip0.t-ipconnect.de)
2023-03-18 10:14:37 +0000bhall(~brunohall@195.147.207.136) (Ping timeout: 250 seconds)
2023-03-18 10:16:14 +0000bhall(~brunohall@195.147.207.136)
2023-03-18 10:16:19 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 260 seconds)
2023-03-18 10:21:12 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 10:28:55 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 250 seconds)
2023-03-18 10:31:06 +0000Pickchea(~private@user/pickchea)
2023-03-18 10:31:57 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-18 10:34:34 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 10:34:59 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 250 seconds)
2023-03-18 10:39:33 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-03-18 10:42:31 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 10:42:45 +0000vglfr(~vglfr@46.96.129.30)
2023-03-18 10:46:58 +0000vglfr(~vglfr@46.96.129.30) (Ping timeout: 246 seconds)
2023-03-18 10:47:01 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 256 seconds)
2023-03-18 10:47:55 +0000vglfr(~vglfr@88.155.28.139)
2023-03-18 10:49:02 +0000gurkenglas(~gurkengla@dynamic-046-114-183-154.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
2023-03-18 10:52:29 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-03-18 11:00:37 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2023-03-18 11:02:40 +0000siers69(~ij@user/ij)
2023-03-18 11:13:14 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-03-18 11:13:50 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 11:13:54 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-03-18 11:15:35 +0000 <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 11:16:16 +0000Ranhir(~Ranhir@157.97.53.139) (Read error: Connection reset by peer)
2023-03-18 11:20:07 +0000Ranhir(~Ranhir@157.97.53.139)
2023-03-18 11:22:24 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 11:25:33 +0000 <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 11:25:57 +0000 <ncf> there is a dual notion of terminal coalgebra, but i don't think it's that
2023-03-18 11:26:14 +0000 <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 11:26:15 +0000 <lambdabot> <hint>:1:30: error: parse error on input ‘in’
2023-03-18 11:27:50 +0000vglfr(~vglfr@88.155.28.139) (Ping timeout: 246 seconds)
2023-03-18 11:28:01 +0000 <siers69> that sounds like a certain no
2023-03-18 11:28:07 +0000CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-03-18 11:28:45 +0000 <ncf> there might be answers in https://cstheory.stackexchange.com/questions/45565/what-category-are-tagless-final-algebras-final-in
2023-03-18 11:32:44 +0000h2t_(~h2t@user/h2t) (Quit: ZNC - https://znc.in)
2023-03-18 11:33:26 +0000h2t(~h2t@user/h2t)
2023-03-18 11:34:14 +0000emmanuelux(~emmanuelu@user/emmanuelux)
2023-03-18 11:42:33 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-03-18 11:42:54 +0000Bocaneri(~sauvin@user/Sauvin)
2023-03-18 11:43:17 +0000BocaneriGuest8096
2023-03-18 11:45:25 +0000Sauvin(~sauvin@user/Sauvin) (Ping timeout: 246 seconds)
2023-03-18 12:02:27 +0000Midjak(~Midjak@82.66.147.146)
2023-03-18 12:06:47 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 12:08:11 +0000h2t(~h2t@user/h2t) (Quit: ZNC - https://znc.in)
2023-03-18 12:08:55 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808)
2023-03-18 12:11:52 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 12:13:31 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808) (Ping timeout: 248 seconds)
2023-03-18 12:39:24 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 12:42:02 +0000jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2023-03-18 12:43:55 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 12:45:48 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2023-03-18 12:52:37 +0000gemmaro(~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
2023-03-18 12:54:34 +0000nate4(~nate@98.45.169.16)
2023-03-18 12:55:46 +0000acidjnk(~acidjnk@p200300d6e715c401c40893f71ffff876.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 12:56:36 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 12:59:16 +0000nate4(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2023-03-18 13:01:47 +0000zeenk(~zeenk@2a02:2f04:a307:2300::7fe)
2023-03-18 13:05:48 +0000mastarija(~mastarija@188.252.199.82)
2023-03-18 13:11:46 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 13:18:41 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 268 seconds)
2023-03-18 13:22:36 +0000vglfr(~vglfr@88.155.28.139)
2023-03-18 13:22:55 +0000bontaq(~user@ool-45779fe5.dyn.optonline.net)
2023-03-18 13:24:34 +0000crazazy(~user@130.89.171.62)
2023-03-18 13:25:12 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-03-18 13:25:52 +0000acertain(sid470584@hampstead.irccloud.com) (Ping timeout: 252 seconds)
2023-03-18 13:29:05 +0000acertain(sid470584@2a03:5180:f:4::7:2e38)
2023-03-18 13:30:44 +0000jerg(~jerg@2001:a61:2611:1701:e737:6af:a06e:d388)
2023-03-18 13:30:46 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-03-18 13:31:29 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 13:36:03 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 260 seconds)
2023-03-18 13:36:59 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 13:38:11 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2023-03-18 13:41:16 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 13:42:05 +0000sagax(~sagax_nb@user/sagax) (Quit: Konversation terminated!)
2023-03-18 13:55:14 +0000CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-18 14:00:13 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 14:04:38 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 14:06:17 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 14:11:04 +0000 <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 14:11:08 +0000 <mastarija> https://paste.tomsmeding.com/SNv1WXVg
2023-03-18 14:13:51 +0000crazazy(~user@130.89.171.62) (Ping timeout: 256 seconds)
2023-03-18 14:14:14 +0000 <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 14:14:42 +0000 <[exa]> +1 ^
2023-03-18 14:15:02 +0000 <[exa]> mastarija: also simply try to add (... :: _) to see what it's thinking about the 1st line
2023-03-18 14:15:14 +0000 <mastarija> aha
2023-03-18 14:15:22 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 14:15:30 +0000 <mastarija> It works! :)
2023-03-18 14:15:33 +0000 <mastarija> Thx!
2023-03-18 14:15:57 +0000 <geekosaur> ApplicativeDo is quite dumb, it can push things into Monad just because it doesn't understand them
2023-03-18 14:16:07 +0000 <geekosaur> like requiring explicit `pure`
2023-03-18 14:16:34 +0000mmhat(~mmh@p200300f1c715f785ee086bfffe095315.dip0.t-ipconnect.de)
2023-03-18 14:16:41 +0000 <geekosaur> or using `let` even if the result is valid Applicative
2023-03-18 14:18:07 +0000 <mastarija> Well, at least it'll make things a bit prettier than lifting lambdas over applicative values :)
2023-03-18 14:20:26 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-03-18 14:22:47 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-18 14:22:53 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-03-18 14:23:24 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-18 14:23:55 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 14:25:39 +0000 <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 14:26:36 +0000 <mastarija> I guess I can put it after last `pure`, something like `pure $ let ... in ...`
2023-03-18 14:26:54 +0000 <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 14:27:37 +0000 <geekosaur> your desugaring might eve allow it to work, but I doubt it because of the `pure`
2023-03-18 14:27:42 +0000 <geekosaur> *even
2023-03-18 14:27:43 +0000bhall(~brunohall@195.147.207.136) (Ping timeout: 276 seconds)
2023-03-18 14:28:33 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 250 seconds)
2023-03-18 14:29:05 +0000 <geekosaur> (remember, `let` is also a block; yours won't work if you have more than one binding)
2023-03-18 14:30:34 +0000 <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 14:32:30 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 14:32:35 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-03-18 14:41:09 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 255 seconds)
2023-03-18 14:44:07 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 14:48:28 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 14:56:03 +0000 <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 14:56:03 +0000 <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 15:04:17 +0000Xe(~cadey@tailscale/xe) (Ping timeout: 256 seconds)
2023-03-18 15:07:21 +0000 <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 15:08:00 +0000 <jerg> Data.Matrix is using them internally I think
2023-03-18 15:08:22 +0000 <Axman6> i would be surprised if it did
2023-03-18 15:09:39 +0000 <Axman6> well, it is, but by copying immutable vectors _a lot_, based on that profile
2023-03-18 15:09:59 +0000 <[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 15:10:16 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 15:10:45 +0000bhall(~brunohall@195.147.207.136)
2023-03-18 15:10:53 +0000 <[exa]> jerg: something like: ... where baseMazeElem x y | even x, even y, x >= 1, .... = Marked; baseMazeElem _ _ = Wall
2023-03-18 15:11:16 +0000 <Axman6> i have a strong feeling thst you are copying your matrix for every single write
2023-03-18 15:11:40 +0000 <[exa]> anyway yeah AFAIK Data.Matrix is immutable
2023-03-18 15:12:19 +0000nate4(~nate@98.45.169.16)
2023-03-18 15:13:17 +0000 <[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 15:13:37 +0000 <jerg> added the guards thx:D
2023-03-18 15:13:45 +0000 <jerg> ohh neat I didn't know that
2023-03-18 15:13:46 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 15:14:29 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 250 seconds)
2023-03-18 15:14:57 +0000 <[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 15:15:36 +0000 <[exa]> (as in, `x <- doUpdate x` is OK, but `let x = doUpdate x` is usually not what you want)
2023-03-18 15:17:05 +0000nate4(~nate@98.45.169.16) (Ping timeout: 250 seconds)
2023-03-18 15:17:35 +0000 <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 15:17:50 +0000 <jerg> good to know :D
2023-03-18 15:18:16 +0000Xe(~cadey@tailscale/xe)
2023-03-18 15:19:08 +0000 <Axman6> Repa is an option, or even the age old array package which provides mutale arrays
2023-03-18 15:19:13 +0000 <Axman6> mutable*
2023-03-18 15:19:14 +0000 <jerg> nope not really it just seemed simple and relatively well suited (before I discovered the performance issues)
2023-03-18 15:20:13 +0000 <jerg> thx I'll take a look at those
2023-03-18 15:20:14 +0000 <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 15:20:29 +0000zeenk(~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!)
2023-03-18 15:21:07 +0000 <jerg> ye I kinda expected that but didn't expect the gc to freak out that much
2023-03-18 15:21:11 +0000 <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 15:22:37 +0000 <jerg> I'll take a look at as well then
2023-03-18 15:22:46 +0000 <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 15:23:01 +0000 <Axman6> > 513^4*8
2023-03-18 15:23:03 +0000 <lambdabot> 554063380488
2023-03-18 15:23:42 +0000 <Axman6> > logBase 1024 554063380488
2023-03-18 15:23:43 +0000 <lambdabot> 3.901126006242822
2023-03-18 15:24:26 +0000 <Axman6> so... several GB of garbage
2023-03-18 15:24:35 +0000 <Axman6> actually, from he profile:
2023-03-18 15:24:44 +0000 <Axman6> > logBase 1024 276242083440
2023-03-18 15:24:45 +0000 <lambdabot> 3.8007142164027927
2023-03-18 15:25:33 +0000 <Axman6> 276242083440 bytes is over 276GB
2023-03-18 15:26:19 +0000 <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 15:26:42 +0000 <jerg> fair makes sense
2023-03-18 15:27:16 +0000 <Axman6> Anyway, now you get to learn about the ST monad and make this thing use like 1KB of memory
2023-03-18 15:27:28 +0000 <jerg> :D
2023-03-18 15:27:59 +0000 <Axman6> An introduction https://wiki.haskell.org/Monad/ST
2023-03-18 15:28:35 +0000 <jerg> reading that rn might take a bit for me to wrap my head around
2023-03-18 15:30:29 +0000 <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 15:31:41 +0000 <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 15:32:21 +0000 <Axman6> which would give you back an Array Cell
2023-03-18 15:33:19 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-03-18 15:33:37 +0000dsp__(~dsp@host86-137-135-17.range86-137.btcentralplus.com)
2023-03-18 15:34:17 +0000dsp__dsp
2023-03-18 15:37:00 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 15:38:03 +0000econo(uid147250@user/econo)
2023-03-18 15:38:21 +0000fyrstavon(~fyrstavon@194.144.46.247)
2023-03-18 15:39:35 +0000fyrstavon(~fyrstavon@194.144.46.247) (Client Quit)
2023-03-18 15:40:00 +0000__ht(~Thunderbi@194.110.115.10)
2023-03-18 15:40:29 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 250 seconds)
2023-03-18 15:40:30 +0000__ht_ht
2023-03-18 15:44:02 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 15:44:23 +0000__ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-03-18 15:45:05 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 15:45:27 +0000_ht(~Thunderbi@194.110.115.10) (Ping timeout: 268 seconds)
2023-03-18 15:45:27 +0000__ht_ht
2023-03-18 15:47:51 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 250 seconds)
2023-03-18 15:49:46 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 268 seconds)
2023-03-18 15:55:28 +0000pwntips(~user@24-113-98-114.wavecable.com) (Ping timeout: 276 seconds)
2023-03-18 15:57:04 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 16:03:03 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-03-18 16:10:22 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 16:13:53 +0000nek0(~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
2023-03-18 16:14:40 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 252 seconds)
2023-03-18 16:16:20 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 16:23:00 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 16:23:17 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 16:26:58 +0000nek0(~nek0@2a01:4f8:222:2b41::12)
2023-03-18 16:27:47 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 16:28:57 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 16:30:29 +0000gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-03-18 16:31:11 +0000crazazy(~user@130.89.171.62)
2023-03-18 16:32:36 +0000gehmehgeh(~user@user/gehmehgeh)
2023-03-18 16:39:04 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:710f:b6bb:b29d:a808)
2023-03-18 16:40:02 +0000dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com) (Ping timeout: 246 seconds)
2023-03-18 16:45:55 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-18 16:51:13 +0000crazazy(~user@130.89.171.62) (Ping timeout: 265 seconds)
2023-03-18 16:53:50 +0000sp00kins(~sp00kins@2601:5ce:4300:7501:d35e:6f0f:6b0e:6d83)
2023-03-18 16:54:56 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 16:58:59 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 246 seconds)
2023-03-18 17:00:26 +0000acidjnk(~acidjnk@p54ad56b7.dip0.t-ipconnect.de)
2023-03-18 17:00:28 +0000ddellacosta(~ddellacos@146.70.165.10) (Ping timeout: 276 seconds)
2023-03-18 17:00:32 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 17:01:22 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
2023-03-18 17:03:26 +0000mechap(~mechap@user/mechap) (Ping timeout: 252 seconds)
2023-03-18 17:04:08 +0000dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net) (Remote host closed the connection)
2023-03-18 17:04:14 +0000aisa(~aisa@user/aisa) (Ping timeout: 246 seconds)
2023-03-18 17:05:26 +0000mechap(~mechap@user/mechap)
2023-03-18 17:05:40 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 17:06:47 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 17:08:06 +0000dcoutts_(~duncan@host86-144-78-144.range86-144.btcentralplus.com)
2023-03-18 17:10:52 +0000dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 276 seconds)
2023-03-18 17:11:31 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 17:15:10 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 252 seconds)
2023-03-18 17:16:38 +0000trev(~trev@user/trev)
2023-03-18 17:19:03 +0000L29Ah(~L29Ah@wikipedia/L29Ah)
2023-03-18 17:26:35 +0000dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com)
2023-03-18 17:29:06 +0000dcoutts_(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 252 seconds)
2023-03-18 17:30:39 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 17:31:52 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-03-18 17:32:14 +0000jmdaemon(~jmdaemon@user/jmdaemon)
2023-03-18 17:36:12 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 17:36:35 +0000hugo(znc@verdigris.lysator.liu.se)
2023-03-18 17:36:56 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 17:37:56 +0000mmhat(~mmh@p200300f1c715f785ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
2023-03-18 17:38:49 +0000euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 276 seconds)
2023-03-18 17:45:39 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 255 seconds)
2023-03-18 17:45:57 +0000 <EvanR> I just noticed the Show instance for Vector looks like List
2023-03-18 17:46:38 +0000 <EvanR> replicate 5 'a' => "aaaaa", replicate 5 1.9 => [1.9,1.9,1.9,1.9,1.9]
2023-03-18 17:46:50 +0000 <EvanR> don't that beat all
2023-03-18 17:49:06 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 17:49:32 +0000 <EvanR> how does that even work, magic?
2023-03-18 17:49:42 +0000telser(~quassel@user/telser) (Ping timeout: 255 seconds)
2023-03-18 17:50:25 +0000 <geekosaur> hand written instance that calls showList
2023-03-18 17:51:21 +0000telser(~quassel@user/telser)
2023-03-18 17:54:09 +0000 <EvanR> and the list show is magic?
2023-03-18 17:54:39 +0000 <EvanR> :t showList
2023-03-18 17:54:41 +0000 <lambdabot> Show a => [a] -> ShowS
2023-03-18 17:54:46 +0000 <geekosaur> showList is a separate method of Show, so strings can be handled specially without requiring extensions over Haskell98
2023-03-18 17:55:12 +0000 <EvanR> showList "abc" ""
2023-03-18 17:55:15 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 250 seconds)
2023-03-18 17:55:16 +0000 <EvanR> > showList "abc" ""
2023-03-18 17:55:17 +0000 <lambdabot> "\"abc\""
2023-03-18 17:55:22 +0000 <EvanR> > showList [1,2,3] ""
2023-03-18 17:55:24 +0000 <lambdabot> "[1,2,3]"
2023-03-18 17:56:10 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 17:56:16 +0000 <geekosaur> it has a default implementation which is overridden by instance Show Char
2023-03-18 17:56:29 +0000 <EvanR> oh cool
2023-03-18 18:00:49 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 265 seconds)
2023-03-18 18:03:15 +0000azure_vermilion(~Thunderbi@164.39.138.83) (Quit: azure_vermilion)
2023-03-18 18:03:36 +0000azure_vermilion(~Thunderbi@164.39.138.83)
2023-03-18 18:04:05 +0000MajorBiscuit(~MajorBisc@2001:1c00:2408:a400:67e:5371:52a7:9b9a)
2023-03-18 18:17:34 +0000codaraxis___(~codaraxis@user/codaraxis) (Remote host closed the connection)
2023-03-18 18:21:32 +0000shriekingnoise(~shrieking@186.137.175.87)
2023-03-18 18:26:25 +0000mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-03-18 18:27:37 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 18:30:22 +0000 <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 18:31:02 +0000 <geekosaur> nope. either you specify a type or it infers one
2023-03-18 18:31:11 +0000 <mastarija> :(
2023-03-18 18:31:59 +0000 <int-e> isn't that NoMonomorphismRestriction territory?
2023-03-18 18:32:19 +0000 <int-e> Wait, wrong one, there's NoMonoLocalBinds
2023-03-18 18:33:23 +0000 <geekosaur> but MonoLocalBinds defaults off unless you're using something that makes it problematic, like type families
2023-03-18 18:34:02 +0000 <int-e> let's check... foo :: (Int, Integer); foo = (n, n) where n = 42 compiles with NoMonomorphismRestriction enabled.
2023-03-18 18:34:23 +0000 <int-e> while NoMonoLocalBinds makes no difference there
2023-03-18 18:35:05 +0000paul_j(~user@2001:8b0:dea0:f3c9:52eb:f6ff:fe56:59ca)
2023-03-18 18:35:10 +0000 <int-e> I've never used it... usually type signatures are good.
2023-03-18 18:36:16 +0000dcoutts_(~duncan@host86-144-78-144.range86-144.btcentralplus.com)
2023-03-18 18:36:24 +0000 <mauke> mastarija: it normally doesn't specialize
2023-03-18 18:36:39 +0000 <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 18:36:59 +0000 <mauke> mastarija: can I see an example that's giving you trouble?
2023-03-18 18:37:03 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 260 seconds)
2023-03-18 18:38:33 +0000 <geekosaur> their mentioning forall makes me wonder if they want rank-2 inference, which isn't happening
2023-03-18 18:38:35 +0000dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 248 seconds)
2023-03-18 18:38:54 +0000 <geekosaur> (rank-2 is possible but Hard. higher ranks are impossible)
2023-03-18 18:39:24 +0000 <mauke> it might be the monomorphism restriction
2023-03-18 18:39:33 +0000 <geekosaur> not inside a where
2023-03-18 18:39:37 +0000 <mauke> I don't see how anything else could match the reported symptoms
2023-03-18 18:39:44 +0000 <geekosaur> and we already checked MonoLocalBinds
2023-03-18 18:40:43 +0000 <mauke> > let foo x = (s x, s [x]) where s = show in foo 42
2023-03-18 18:40:45 +0000 <lambdabot> ("42","[42]")
2023-03-18 18:41:31 +0000 <int-e> that would fail with MonomorphismRestriction enabled
2023-03-18 18:42:18 +0000caryhartline(~caryhartl@2600:1700:2d0:8d30:6576:9fe8:b907:8643)
2023-03-18 18:42:38 +0000paul_j(~user@2001:8b0:dea0:f3c9:52eb:f6ff:fe56:59ca) (Quit: Asta la vista)
2023-03-18 18:44:03 +0000 <int-e> Well, I don't know. The "forall" could well be the one you need for scoped type variables.
2023-03-18 18:44:48 +0000 <int-e> [information needed]
2023-03-18 18:45:38 +0000emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-03-18 18:50:28 +0000emmanuelux(~emmanuelu@user/emmanuelux)
2023-03-18 18:52:17 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-03-18 18:52:33 +0000 <mastarija> mauke: just a sec
2023-03-18 18:54:10 +0000sp00kins(~sp00kins@2601:5ce:4300:7501:d35e:6f0f:6b0e:6d83) (Quit: sp00kins)
2023-03-18 18:54:10 +0000 <mastarija> mauke: https://paste.tomsmeding.com/kmO9UMVg
2023-03-18 18:57:24 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 18:57:37 +0000 <mastarija> the `where` part in the `_curbs` traversal in case it wasn't clear :)
2023-03-18 18:57:59 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 18:59:24 +0000 <mastarija> I should be able to apply `cd2fcdH` to any `Curb s a n` of any `s`.
2023-03-18 18:59:42 +0000 <mastarija> But without the type signature I'm not able to.
2023-03-18 19:02:35 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 19:03:58 +0000shapr(~user@68.54.166.125) (Ping timeout: 246 seconds)
2023-03-18 19:08:21 +0000Sgeo(~Sgeo@user/sgeo)
2023-03-18 19:11:26 +0000euandreh(~Thunderbi@189.6.18.7)
2023-03-18 19:12:48 +0000dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com)
2023-03-18 19:13:56 +0000nate4(~nate@98.45.169.16)
2023-03-18 19:19:07 +0000nate4(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2023-03-18 19:21:55 +0000CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-03-18 19:22:51 +0000bhall(~brunohall@195.147.207.136) (Ping timeout: 246 seconds)
2023-03-18 19:30:30 +0000emmanuelux_(~emmanuelu@user/emmanuelux)
2023-03-18 19:31:10 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 19:31:55 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-03-18 19:33:37 +0000emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 250 seconds)
2023-03-18 19:35:49 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 19:39:04 +0000telser(~quassel@user/telser) (Ping timeout: 276 seconds)
2023-03-18 19:39:44 +0000telser(~quassel@user/telser)
2023-03-18 19:40:33 +0000 <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 19:41:20 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-18 19:43:14 +0000 <mastarija> mauke: yes
2023-03-18 19:49:48 +0000telser(~quassel@user/telser) (Ping timeout: 246 seconds)
2023-03-18 19:50:07 +0000ubert(~Thunderbi@p548c89b6.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2023-03-18 19:50:07 +0000ububert
2023-03-18 19:50:10 +0000bhall(~brunohall@195.147.207.136)
2023-03-18 19:50:25 +0000telser(~quassel@user/telser)
2023-03-18 19:51:35 +0000vglfr(~vglfr@88.155.28.139) (Ping timeout: 256 seconds)
2023-03-18 19:52:47 +0000vglfr(~vglfr@88.155.24.235)
2023-03-18 19:53:25 +0000 <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 19:56:32 +0000ubert1(~Thunderbi@p200300ecdf20b55e36d1449b246cba0e.dip0.t-ipconnect.de)
2023-03-18 19:59:01 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 19:59:41 +0000captnemo(~captnemo@193.32.127.232)
2023-03-18 20:00:25 +0000trev(~trev@user/trev) (Remote host closed the connection)
2023-03-18 20:01:09 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-18 20:01:42 +0000 <mastarija> thx anyway
2023-03-18 20:03:37 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 20:03:55 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-03-18 20:07:03 +0000biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-03-18 20:08:25 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 265 seconds)
2023-03-18 20:11:51 +0000biberu(~biberu@user/biberu)
2023-03-18 20:13:15 +0000krei-se(~krei-se@p50874d44.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2023-03-18 20:15:10 +0000krei-se(~krei-se@p57af2793.dip0.t-ipconnect.de)
2023-03-18 20:16:18 +0000dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net)
2023-03-18 20:23:46 +0000dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com) (Ping timeout: 246 seconds)
2023-03-18 20:28:24 +0000telser(~quassel@user/telser) (Ping timeout: 252 seconds)
2023-03-18 20:34:54 +0000dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com)
2023-03-18 20:36:51 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 20:41:15 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 20:42:11 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-03-18 20:42:21 +0000michalz(~michalz@185.246.207.205)
2023-03-18 20:48:05 +0000dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com)
2023-03-18 20:48:24 +0000chomwitt(~chomwitt@ppp-94-67-217-45.home.otenet.gr)
2023-03-18 20:50:02 +0000dcoutts_(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 252 seconds)
2023-03-18 20:50:10 +0000telser(~quassel@user/telser)
2023-03-18 20:55:05 +0000michalz(~michalz@185.246.207.205) (Remote host closed the connection)
2023-03-18 21:00:16 +0000michalz(~michalz@185.246.207.222)
2023-03-18 21:01:51 +0000telser(~quassel@user/telser) (Ping timeout: 255 seconds)
2023-03-18 21:02:59 +0000dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com) (Ping timeout: 256 seconds)
2023-03-18 21:04:15 +0000coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-18 21:04:38 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 246 seconds)
2023-03-18 21:04:52 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-03-18 21:05:03 +0000coot_coot
2023-03-18 21:05:19 +0000telser(~quassel@user/telser)
2023-03-18 21:10:46 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 21:10:56 +0000telser(~quassel@user/telser) (Ping timeout: 252 seconds)
2023-03-18 21:14:58 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 252 seconds)
2023-03-18 21:16:47 +0000Fischmiep(~Fischmiep@user/Fischmiep) (Read error: Connection reset by peer)
2023-03-18 21:21:47 +0000talismanick(~talismani@2601:200:c000:f7a0::5321) (Ping timeout: 260 seconds)
2023-03-18 21:22:05 +0000pavonia(~user@user/siracusa)
2023-03-18 21:22:36 +0000Fischmiep(~Fischmiep@user/Fischmiep)
2023-03-18 21:35:11 +0000telser(~quassel@user/telser)
2023-03-18 21:36:25 +0000shapr(~user@68.54.166.125)
2023-03-18 21:39:31 +0000CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2023-03-18 21:42:17 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-03-18 21:42:17 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-03-18 21:42:17 +0000wroathe(~wroathe@user/wroathe)
2023-03-18 21:43:27 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 21:45:14 +0000michalz(~michalz@185.246.207.222) (Remote host closed the connection)
2023-03-18 21:46:01 +0000bhall(~brunohall@195.147.207.136) (Read error: Connection reset by peer)
2023-03-18 21:48:11 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 264 seconds)
2023-03-18 21:49:34 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-03-18 21:49:38 +0000 <azure_vermilion> what does ~ mean in unzip3 = foldr (\(a,b,c) ~(as,bs,cs) -> (a:as,b:bs,c:cs)) ([],[],[])
2023-03-18 21:49:59 +0000azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-18 21:50:37 +0000 <monochrom> Look for "irrefutable patterns". Short answer is it increases laziness.
2023-03-18 21:51:39 +0000 <azure_vermilion> thanks
2023-03-18 21:52:47 +0000bhall(~brunohall@195.147.207.136)
2023-03-18 21:54:06 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal)
2023-03-18 21:54:25 +0000 <mauke> the "trust me, bro" of pattern matching
2023-03-18 21:54:47 +0000 <Jade[m]1> hahaha
2023-03-18 21:55:39 +0000 <mauke> > case Nothing of ~(Just x) -> "we cool"
2023-03-18 21:55:41 +0000 <lambdabot> "we cool"
2023-03-18 21:55:48 +0000 <mauke> > case Nothing of ~(Just x) -> "we cool: " ++ show x
2023-03-18 21:55:50 +0000 <lambdabot> "we cool: *Exception: <interactive>:(3,1)-(4,22): Non-exhaustive patterns in...
2023-03-18 21:56:31 +0000 <azure_vermilion> lol
2023-03-18 21:57:29 +0000telser(~quassel@user/telser) (Ping timeout: 250 seconds)
2023-03-18 22:00:02 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-18 22:06:14 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 246 seconds)
2023-03-18 22:06:33 +0000telser(~quassel@user/telser)
2023-03-18 22:09:17 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 22:12:11 +0000dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com)
2023-03-18 22:13:57 +0000dcoutts(~duncan@host86-144-78-144.range86-144.btcentralplus.com) (Ping timeout: 250 seconds)
2023-03-18 22:14:25 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 276 seconds)
2023-03-18 22:19:23 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-03-18 22:23:56 +0000andrewboltachev(~andrey@178.141.199.8)
2023-03-18 22:25:59 +0000 <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 22:28:21 +0000crazazy(~user@130.89.171.62)
2023-03-18 22:32:39 +0000 <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 22:33:12 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-03-18 22:42:19 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2023-03-18 22:42:24 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 22:42:41 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-18 22:45:35 +0000dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com) (Ping timeout: 250 seconds)
2023-03-18 22:45:59 +0000mastarija(~mastarija@188.252.199.82) (Quit: WeeChat 3.7.1)
2023-03-18 22:46:35 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 22:47:14 +0000bhall(~brunohall@195.147.207.136) (Ping timeout: 246 seconds)
2023-03-18 22:48:50 +0000vglfr(~vglfr@88.155.24.235) (Ping timeout: 252 seconds)
2023-03-18 22:54:35 +0000bhall(~brunohall@195.147.207.136)
2023-03-18 22:54:41 +0000crazazy(~user@130.89.171.62) (Ping timeout: 265 seconds)
2023-03-18 23:08:31 +0000 <ncf> andrewboltachev: `project` ?
2023-03-18 23:10:58 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 276 seconds)
2023-03-18 23:15:07 +0000andrewboltachev(~andrey@178.141.199.8) (Quit: Leaving.)
2023-03-18 23:15:32 +0000nate4(~nate@98.45.169.16)
2023-03-18 23:15:46 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 23:16:08 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-03-18 23:16:54 +0000talismanick(~talismani@c-98-238-242-189.hsd1.ca.comcast.net)
2023-03-18 23:20:18 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 265 seconds)
2023-03-18 23:20:47 +0000nate4(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2023-03-18 23:22:59 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-03-18 23:23:00 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 264 seconds)
2023-03-18 23:23:53 +0000dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com)
2023-03-18 23:25:57 +0000Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2023-03-18 23:30:29 +0000hugo(znc@verdigris.lysator.liu.se)
2023-03-18 23:32:18 +0000MajorBiscuit(~MajorBisc@2001:1c00:2408:a400:67e:5371:52a7:9b9a) (Quit: WeeChat 3.6)
2023-03-18 23:34:11 +0000Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2023-03-18 23:35:24 +0000acidjnk(~acidjnk@p54ad56b7.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2023-03-18 23:38:51 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2023-03-18 23:39:14 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-18 23:41:01 +0000gurkenglas(~gurkengla@dynamic-046-114-176-014.46.114.pool.telefonica.de)
2023-03-18 23:43:28 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-03-18 23:45:35 +0000pwntips(~user@24-113-98-114.wavecable.com)
2023-03-18 23:45:49 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 250 seconds)
2023-03-18 23:46:49 +0000razetime(~Thunderbi@117.193.0.127)
2023-03-18 23:49:39 +0000freeside(~mengwong@122.11.248.245)
2023-03-18 23:52:56 +0000hugo(znc@verdigris.lysator.liu.se)
2023-03-18 23:53:47 +0000freeside(~mengwong@122.11.248.245) (Ping timeout: 248 seconds)
2023-03-18 23:55:49 +0000talismanick(~talismani@c-98-238-242-189.hsd1.ca.comcast.net) (Ping timeout: 276 seconds)
2023-03-18 23:59:04 +0000dsp(~dsp@host86-137-135-17.range86-137.btcentralplus.com) (Ping timeout: 276 seconds)