2022/11/02

2022-11-02 00:01:11 +0100 <cheater> mhhhhh
2022-11-02 00:01:17 +0100 <cheater> not a huge Lensman
2022-11-02 00:01:20 +0100nate3(~nate@98.45.169.16)
2022-11-02 00:01:28 +0100 <Axman6> the `catches` example here is what I was thinkinng of https://hackage.haskell.org/package/lens-5.2/docs/Control-Exception-Lens.html#t:Handleable
2022-11-02 00:01:38 +0100 <cheater> but i've been reading dmj`'s thing and that looks like a good idea
2022-11-02 00:01:44 +0100 <cheater> it's exactly what i need and nothing more
2022-11-02 00:02:27 +0100freeside(~mengwong@103.252.202.193)
2022-11-02 00:03:11 +0100 <cheater> dmj`: how does one match on IOErrorType?
2022-11-02 00:04:11 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2022-11-02 00:05:57 +0100nate3(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-11-02 00:07:00 +0100freeside(~mengwong@103.252.202.193) (Ping timeout: 248 seconds)
2022-11-02 00:09:49 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-11-02 00:10:39 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2022-11-02 00:13:02 +0100 <dmj`> cheater: https://gist.github.com/dmjio/f4dc26786a78757d9028bd2e6eb50423
2022-11-02 00:13:28 +0100alismanickt(~talismani@2601:200:c100:c9e0::1b0b)
2022-11-02 00:14:00 +0100alismanickt(~talismani@2601:200:c100:c9e0::1b0b) (Remote host closed the connection)
2022-11-02 00:15:59 +0100acidjnk(~acidjnk@p200300d6e7137a4494984508834583e9.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-02 00:20:34 +0100freeside(~mengwong@103.252.202.193)
2022-11-02 00:21:22 +0100zaquest(~notzaques@5.130.79.72) (Ping timeout: 252 seconds)
2022-11-02 00:25:27 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-02 00:26:34 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-02 00:34:26 +0100zaquest(~notzaques@5.130.79.72)
2022-11-02 00:43:31 +0100 <cheater> dmj`: thank you :)
2022-11-02 00:44:03 +0100beteigeuze1(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-11-02 00:45:10 +0100jinsun(~jinsun@user/jinsun)
2022-11-02 00:45:31 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 00:45:34 +0100beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 252 seconds)
2022-11-02 00:45:34 +0100beteigeuze1beteigeuze
2022-11-02 00:46:14 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-11-02 00:53:07 +0100k8yun(~k8yun@user/k8yun)
2022-11-02 01:00:01 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-11-02 01:00:24 +0100chomwitt(~chomwitt@athe730-c-multi-217.home.otenet.gr) (Ping timeout: 255 seconds)
2022-11-02 01:00:58 +0100Kaipei(~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds)
2022-11-02 01:01:19 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-11-02 01:03:32 +0100ubert(~Thunderbi@77.119.195.127.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
2022-11-02 01:04:10 +0100ubert(~Thunderbi@178.115.66.72.wireless.dyn.drei.com)
2022-11-02 01:07:03 +0100kimjetwav(~user@2607:fea8:235e:b600:3e30:e889:113b:1172)
2022-11-02 01:12:21 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2022-11-02 01:15:01 +0100 <cheater> dmj`: i was looking in the wrong place. of course GHC.IO.Exception contains all the constructors... thanks
2022-11-02 01:15:23 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-11-02 01:17:12 +0100Tuplanolla(~Tuplanoll@91-159-69-11.elisa-laajakaista.fi) (Quit: Leaving.)
2022-11-02 01:17:33 +0100zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!)
2022-11-02 01:18:38 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2022-11-02 01:20:24 +0100ddellacosta(~ddellacos@143.244.47.76)
2022-11-02 01:21:34 +0100boxscape_(~boxscape_@81.191.27.107) (Quit: Client closed)
2022-11-02 01:22:58 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-11-02 01:23:29 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-02 01:23:48 +0100ubert(~Thunderbi@178.115.66.72.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
2022-11-02 01:24:04 +0100danza(~francesco@22.red-79-153-42.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2022-11-02 01:24:31 +0100freeside(~mengwong@103.252.202.193) (Ping timeout: 272 seconds)
2022-11-02 01:27:32 +0100ddellacosta(~ddellacos@143.244.47.76) (Ping timeout: 248 seconds)
2022-11-02 01:29:01 +0100tessier(~treed@98.171.210.130) (Ping timeout: 252 seconds)
2022-11-02 01:29:22 +0100ubert(~Thunderbi@178.165.201.55.wireless.dyn.drei.com)
2022-11-02 01:31:06 +0100tessier(~treed@98.171.210.130)
2022-11-02 01:35:06 +0100k8yun(~k8yun@user/k8yun) (Quit: Leaving)
2022-11-02 01:35:19 +0100mmhat(~mmh@p200300f1c73076cfee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
2022-11-02 01:37:13 +0100danza(~francesco@22.red-79-153-42.dynamicip.rima-tde.net)
2022-11-02 01:37:19 +0100freeside(~mengwong@103.252.202.193)
2022-11-02 01:39:03 +0100sadmax(~user@209.205.174.253)
2022-11-02 01:41:56 +0100freeside(~mengwong@103.252.202.193) (Ping timeout: 248 seconds)
2022-11-02 01:52:37 +0100freeside(~mengwong@103.252.202.193)
2022-11-02 01:57:08 +0100freeside(~mengwong@103.252.202.193) (Ping timeout: 246 seconds)
2022-11-02 01:58:10 +0100sadmax(~user@209.205.174.253) (Ping timeout: 252 seconds)
2022-11-02 02:01:18 +0100ub(~Thunderbi@91.141.39.16.wireless.dyn.drei.com)
2022-11-02 02:01:40 +0100ubert(~Thunderbi@178.165.201.55.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
2022-11-02 02:01:40 +0100ububert
2022-11-02 02:11:22 +0100freeside(~mengwong@103.252.202.193)
2022-11-02 02:11:50 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-11-02 02:14:57 +0100Kaipei(~Kaiepi@108.175.84.104)
2022-11-02 02:15:06 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2022-11-02 02:17:57 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-11-02 02:30:44 +0100xff0x(~xff0x@2405:6580:b080:900:4f74:df9f:ea35:9157) (Ping timeout: 246 seconds)
2022-11-02 02:31:01 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-11-02 02:38:52 +0100zaquest(~notzaques@5.130.79.72) (Ping timeout: 252 seconds)
2022-11-02 02:43:31 +0100darkstarx(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-11-02 02:44:55 +0100darkstarx(~darkstard@50.126.124.156)
2022-11-02 02:47:25 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-02 02:50:10 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Quit: Quit)
2022-11-02 02:51:53 +0100zaquest(~notzaques@5.130.79.72)
2022-11-02 02:52:37 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-11-02 02:52:57 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-02 02:58:16 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
2022-11-02 02:58:35 +0100justsomeguy(~justsomeg@user/justsomeguy) (Read error: Connection reset by peer)
2022-11-02 03:00:35 +0100razetime(~quassel@117.254.34.24)
2022-11-02 03:01:40 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-11-02 03:02:04 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-11-02 03:05:23 +0100redmp(~redmp@mobile-166-170-43-0.mycingular.net) (Ping timeout: 246 seconds)
2022-11-02 03:11:19 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2022-11-02 03:11:34 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-11-02 03:12:39 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-11-02 03:14:05 +0100freeside(~mengwong@103.252.202.193) (Ping timeout: 272 seconds)
2022-11-02 03:15:19 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 03:17:11 +0100kimjetwav(~user@2607:fea8:235e:b600:3e30:e889:113b:1172) (Remote host closed the connection)
2022-11-02 03:27:40 +0100freeside(~mengwong@103.252.202.193)
2022-11-02 03:31:48 +0100freeside(~mengwong@103.252.202.193) (Ping timeout: 248 seconds)
2022-11-02 03:33:27 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
2022-11-02 03:34:28 +0100beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 248 seconds)
2022-11-02 03:50:11 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-11-02 04:00:18 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-11-02 04:00:19 +0100freeside(~mengwong@103.252.202.193)
2022-11-02 04:02:43 +0100nate3(~nate@98.45.169.16)
2022-11-02 04:07:25 +0100nate3(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-11-02 04:12:39 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-11-02 04:13:06 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-02 04:15:48 +0100Kaipii(~Kaiepi@108.175.84.104)
2022-11-02 04:18:58 +0100Kaipei(~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds)
2022-11-02 04:19:16 +0100thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 248 seconds)
2022-11-02 04:25:40 +0100td_(~td@83.135.9.15) (Ping timeout: 248 seconds)
2022-11-02 04:27:26 +0100td_(~td@83.135.9.45)
2022-11-02 04:43:09 +0100razetime(~quassel@117.254.34.24) (Ping timeout: 255 seconds)
2022-11-02 04:49:08 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds)
2022-11-02 04:53:23 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-11-02 04:53:23 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-11-02 04:53:23 +0100finn_elijaFinnElija
2022-11-02 04:56:22 +0100zaquest(~notzaques@5.130.79.72) (Ping timeout: 252 seconds)
2022-11-02 05:02:58 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-11-02 05:04:37 +0100freeside(~mengwong@103.252.202.193) (Ping timeout: 252 seconds)
2022-11-02 05:09:34 +0100zaquest(~notzaques@5.130.79.72)
2022-11-02 05:13:58 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2022-11-02 05:14:36 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-11-02 05:18:06 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 05:18:20 +0100king_gs(~Thunderbi@187.201.83.115)
2022-11-02 05:18:23 +0100muesli4(~noname@2a02:8071:2188:2540:3ea6:1486:61ae:9be6) (Quit: Leaving)
2022-11-02 05:23:17 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
2022-11-02 05:23:21 +0100razetime(~quassel@117.254.34.24)
2022-11-02 05:28:04 +0100mixfix41(~sdeny9ee@user/mixfix41) (Ping timeout: 248 seconds)
2022-11-02 05:31:12 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 05:35:16 +0100opqdonut(opqdonut@pseudo.fixme.fi) (Ping timeout: 268 seconds)
2022-11-02 05:35:26 +0100opqdonut(opqdonut@pseudo.fixme.fi)
2022-11-02 05:35:53 +0100VarikValefor[m](~varikvale@2001:470:69fc:105::a5d) (Ping timeout: 268 seconds)
2022-11-02 05:36:06 +0100VarikValefor[m](~varikvale@2001:470:69fc:105::a5d)
2022-11-02 05:38:56 +0100king_gs1(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-02 05:38:56 +0100king_gs(~Thunderbi@187.201.83.115) (Read error: Connection reset by peer)
2022-11-02 05:38:56 +0100king_gs1king_gs
2022-11-02 05:41:49 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com)
2022-11-02 05:44:20 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-11-02 05:45:54 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 05:49:45 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Ping timeout: 255 seconds)
2022-11-02 05:51:54 +0100abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-02 05:52:01 +0100Guest71(~Guest71@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 244 seconds)
2022-11-02 05:52:04 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 248 seconds)
2022-11-02 06:01:01 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-11-02 06:02:17 +0100causal(~user@50.35.83.177) (Quit: WeeChat 3.7.1)
2022-11-02 06:02:53 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-02 06:07:54 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-11-02 06:08:26 +0100jargon(~jargon@174-22-208-93.phnx.qwest.net)
2022-11-02 06:08:35 +0100Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-11-02 06:20:20 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2022-11-02 06:22:16 +0100Me-me(~me-me@user/me-me) (Ping timeout: 246 seconds)
2022-11-02 06:22:59 +0100Me-me(~me-me@v.working.name)
2022-11-02 06:28:59 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-11-02 06:34:44 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-02 06:42:31 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 06:44:20 +0100mbuf(~Shakthi@2401:4900:2325:5699:e53a:878a:13aa:e6dd)
2022-11-02 06:48:01 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-02 06:48:15 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 06:51:16 +0100jargon(~jargon@174-22-208-93.phnx.qwest.net) (Ping timeout: 248 seconds)
2022-11-02 06:51:38 +0100jargon(~jargon@174-22-194-21.phnx.qwest.net)
2022-11-02 06:52:20 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-02 07:01:31 +0100zebrag(~chris@user/zebrag)
2022-11-02 07:05:00 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Read error: Software caused connection abort)
2022-11-02 07:05:50 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-02 07:11:59 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2022-11-02 07:14:07 +0100cyphase(~cyphase@user/cyphase) (Quit: cyphase.com)
2022-11-02 07:15:34 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-11-02 07:16:51 +0100mjrosenb(~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
2022-11-02 07:16:59 +0100mjrosenb(~mjrosenb@pool-96-232-177-77.nycmny.fios.verizon.net)
2022-11-02 07:18:07 +0100fjmorazan(~quassel@user/fjmorazan) (Read error: Software caused connection abort)
2022-11-02 07:20:10 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Remote host closed the connection)
2022-11-02 07:20:58 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-02 07:22:48 +0100fjmorazan(~quassel@user/fjmorazan)
2022-11-02 07:24:57 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6)
2022-11-02 07:30:44 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 248 seconds)
2022-11-02 07:32:11 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Quit: BRB)
2022-11-02 07:33:02 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-11-02 07:35:19 +0100titibandit(~titibandi@xdsl-87-79-250-160.nc.de)
2022-11-02 07:37:45 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 255 seconds)
2022-11-02 07:37:56 +0100reda(~reda@user/reda) (Read error: Software caused connection abort)
2022-11-02 07:38:12 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Quit: BRB)
2022-11-02 07:38:39 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de) (Read error: Software caused connection abort)
2022-11-02 07:39:44 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-11-02 07:40:06 +0100vglfr(~vglfr@145.224.100.22) (Remote host closed the connection)
2022-11-02 07:41:33 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de)
2022-11-02 07:42:44 +0100vglfr(~vglfr@145.224.100.22)
2022-11-02 07:43:33 +0100q0r(~user@162.255.84.96) (Read error: Software caused connection abort)
2022-11-02 07:43:38 +0100vglfr(~vglfr@145.224.100.22) (Remote host closed the connection)
2022-11-02 07:43:39 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-02 07:43:47 +0100reda(~reda@user/reda)
2022-11-02 07:43:52 +0100vglfr(~vglfr@145.224.100.22)
2022-11-02 07:45:27 +0100shriekingnoise_(~shrieking@186.137.167.202) (Quit: Quit)
2022-11-02 07:47:16 +0100chomwitt(~chomwitt@2a02:587:dc18:4a00:1ac0:4dff:fedb:a3f1)
2022-11-02 07:49:56 +0100q0r(~user@162.255.84.96)
2022-11-02 07:51:16 +0100abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 252 seconds)
2022-11-02 07:51:20 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-02 07:53:21 +0100c_wraith(~c_wraith@adjoint.us) (Read error: Software caused connection abort)
2022-11-02 07:54:03 +0100c_wraith(~c_wraith@adjoint.us)
2022-11-02 07:58:22 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-11-02 07:59:39 +0100davean(~davean@davean.sciesnet.net) (Read error: Software caused connection abort)
2022-11-02 07:59:57 +0100davean(~davean@davean.sciesnet.net)
2022-11-02 08:02:48 +0100rodental(~rodental@38.146.5.222) (Read error: Connection reset by peer)
2022-11-02 08:03:12 +0100rodental(~rodental@38.146.5.222)
2022-11-02 08:04:15 +0100nate3(~nate@98.45.169.16)
2022-11-02 08:05:42 +0100king_gs(~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Remote host closed the connection)
2022-11-02 08:06:08 +0100zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494)
2022-11-02 08:06:28 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 248 seconds)
2022-11-02 08:08:49 +0100kaol(~kaol@94-237-42-30.nl-ams1.upcloud.host) (Ping timeout: 268 seconds)
2022-11-02 08:10:29 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-02 08:10:31 +0100nate3(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-11-02 08:13:44 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 246 seconds)
2022-11-02 08:13:45 +0100abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-02 08:16:39 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 08:18:23 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-02 08:18:57 +0100Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-11-02 08:19:33 +0100kaol(~kaol@94-237-42-30.nl-ams1.upcloud.host)
2022-11-02 08:21:57 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-02 08:23:14 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-02 08:25:11 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-11-02 08:26:09 +0100mmhat(~mmh@p200300f1c73076cfee086bfffe095315.dip0.t-ipconnect.de)
2022-11-02 08:31:29 +0100kenran(~user@user/kenran)
2022-11-02 08:34:56 +0100Athas(athas@sigkill.dk) (Read error: Software caused connection abort)
2022-11-02 08:35:21 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 255 seconds)
2022-11-02 08:37:20 +0100Athas(~athas@2a01:7c8:aaac:1cf:ba6c:ed85:faef:e8b1)
2022-11-02 08:37:59 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-02 08:38:33 +0100cfricke(~cfricke@user/cfricke)
2022-11-02 08:40:21 +0100mncheck(~mncheck@193.224.205.254)
2022-11-02 08:40:49 +0100cyphase(~cyphase@user/cyphase)
2022-11-02 08:41:10 +0100akegalj(~akegalj@93-139-190-182.adsl.net.t-com.hr)
2022-11-02 08:42:33 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving)
2022-11-02 08:42:45 +0100acidjnk(~acidjnk@p200300d6e7137a4458b560a11cdd3b2c.dip0.t-ipconnect.de)
2022-11-02 08:43:04 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:e55:b872:3823:a08c)
2022-11-02 08:43:49 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-11-02 08:43:55 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-11-02 08:50:07 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-02 08:50:29 +0100flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Remote host closed the connection)
2022-11-02 08:50:52 +0100flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
2022-11-02 08:50:58 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-02 08:51:51 +0100Aleksejs(~Aleksejs@107.170.21.106) (Write error: Software caused connection abort)
2022-11-02 08:52:51 +0100inversed(~inversed@bcdcac82.skybroadband.com) (Read error: Software caused connection abort)
2022-11-02 08:53:31 +0100[Leary](~Leary]@user/Leary/x-0910699) (Read error: Software caused connection abort)
2022-11-02 08:54:33 +0100inversed(~inversed@bcdcac82.skybroadband.com)
2022-11-02 08:55:25 +0100[Leary](~Leary]@user/Leary/x-0910699)
2022-11-02 08:55:43 +0100CiaoSen(~Jura@2003:c9:5712:4700:2a3a:4dff:fe84:dbd5)
2022-11-02 08:55:46 +0100titibandit(~titibandi@xdsl-87-79-250-160.nc.de) (Remote host closed the connection)
2022-11-02 08:56:05 +0100Kaipii(~Kaiepi@108.175.84.104) (Ping timeout: 272 seconds)
2022-11-02 08:56:08 +0100ubert1(~Thunderbi@91.141.39.16.wireless.dyn.drei.com)
2022-11-02 09:02:04 +0100Aleksejs(~Aleksejs@107.170.21.106)
2022-11-02 09:04:45 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-02 09:04:53 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-02 09:05:52 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-11-02 09:05:59 +0100michalz(~michalz@185.246.207.222)
2022-11-02 09:07:53 +0100ft(~ft@p508dbd59.dip0.t-ipconnect.de) (Quit: leaving)
2022-11-02 09:08:14 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-02 09:12:05 +0100frost37(~frost@user/frost)
2022-11-02 09:19:39 +0100mbuf(~Shakthi@2401:4900:2325:5699:e53a:878a:13aa:e6dd) (Read error: Connection reset by peer)
2022-11-02 09:24:51 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-02 09:25:32 +0100`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-02 09:28:00 +0100moneypolo
2022-11-02 09:30:48 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-11-02 09:34:18 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 09:34:56 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-11-02 09:37:20 +0100gmg(~user@user/gehmehgeh)
2022-11-02 09:40:03 +0100ccapndave(~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
2022-11-02 09:42:55 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Ping timeout: 252 seconds)
2022-11-02 09:42:55 +0100vglfr(~vglfr@145.224.100.22) (Ping timeout: 252 seconds)
2022-11-02 09:42:57 +0100fserucas|eod(~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-11-02 09:42:57 +0100fserucas|eod(~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit)
2022-11-02 09:43:13 +0100fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-11-02 09:45:01 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-11-02 09:47:45 +0100 <lortabac> is there a way to force the recompilation of a single file?
2022-11-02 09:47:56 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-02 09:48:55 +0100 <lortabac> I have a module that I would like to recompile on every build
2022-11-02 09:49:03 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-02 09:49:17 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 09:54:32 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-02 09:56:23 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-11-02 09:58:33 +0100ssw(~ssw@user/ssw) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2022-11-02 09:59:31 +0100m1dnight(~christoph@78-22-0-121.access.telenet.be) (Quit: WeeChat 3.7.1)
2022-11-02 10:00:03 +0100baaash[m](~baaashmat@2001:470:69fc:105::2:1e90) (Quit: You have been kicked for being idle)
2022-11-02 10:00:05 +0100weeezes[m](~weeezesma@2001:470:69fc:105::1:da65) (Quit: You have been kicked for being idle)
2022-11-02 10:00:16 +0100m1dnight(~christoph@78-22-0-121.access.telenet.be)
2022-11-02 10:00:50 +0100ssw(~ssw@user/ssw)
2022-11-02 10:01:37 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 252 seconds)
2022-11-02 10:01:50 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-11-02 10:03:22 +0100ccapndave(~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com)
2022-11-02 10:03:22 +0100vglfr(~vglfr@145.224.100.22)
2022-11-02 10:06:21 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-02 10:10:44 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
2022-11-02 10:11:18 +0100Kaipii(~Kaiepi@108.175.84.104)
2022-11-02 10:14:03 +0100mbuf(~Shakthi@2401:4900:2325:5699:e53a:878a:13aa:e6dd)
2022-11-02 10:14:04 +0100mbuf(~Shakthi@2401:4900:2325:5699:e53a:878a:13aa:e6dd) (Remote host closed the connection)
2022-11-02 10:15:00 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 248 seconds)
2022-11-02 10:16:15 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-11-02 10:23:36 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-11-02 10:23:43 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-11-02 10:28:18 +0100zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-11-02 10:28:49 +0100 <dminuoso> lortabac: Set -fforce-recomp (perhaps in a OPTIONS_GHC pragma in the module
2022-11-02 10:29:04 +0100 <dminuoso> Mind my asking, what's the reason you want this?
2022-11-02 10:29:55 +0100 <dminuoso> If by any chance you're depending on a file in TemplateHaskell (which is one of the two things I can conceive, the other being depending on some non-file resource), you can also just use `addDependentFile`
2022-11-02 10:30:50 +0100 <lortabac> dminuoso: I embed the Git hash with TemplateHaskell
2022-11-02 10:30:56 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-02 10:31:13 +0100 <lortabac> I want it to be accurate even if I don't recompile everything
2022-11-02 10:31:14 +0100 <dminuoso> Then: {-# OPTIONS_GHC -fforce-recomp #-}
2022-11-02 10:32:00 +0100 <lortabac> it doesn't seem to work
2022-11-02 10:32:13 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-02 10:32:26 +0100hugo(znc@verdigris.lysator.liu.se) (Read error: Software caused connection abort)
2022-11-02 10:33:01 +0100 <lortabac> which makes sense, because the pragma is only read if that file is recompiled
2022-11-02 10:33:29 +0100xacktm(~xacktm@user/xacktm) (Read error: Software caused connection abort)
2022-11-02 10:34:09 +0100 <dminuoso> Do you use stack or cabal?
2022-11-02 10:34:26 +0100 <lortabac> cabal
2022-11-02 10:34:55 +0100 <dminuoso> You could add a .git directory or a particular git internal file to extra-source-files in your cabal file, and then `addDependentFile`that same file/directory
2022-11-02 10:35:05 +0100 <dminuoso> Im not sure whether a suitable file exists (and whether using it on a directory will either)
2022-11-02 10:35:33 +0100 <dminuoso> Keep in mind, that using a glob in cabal extra-source-files for this will not work except on the newest cabal versions (that is the interaction with addDependentFile)
2022-11-02 10:35:35 +0100mimmy(~mimmy@2604:a880:cad:d0::3e:1001) (Read error: Software caused connection abort)
2022-11-02 10:36:11 +0100acidjnk(~acidjnk@p200300d6e7137a4458b560a11cdd3b2c.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-11-02 10:36:26 +0100hugo(znc@verdigris.lysator.liu.se)
2022-11-02 10:36:31 +0100 <dminuoso> .git/HEAD seems like a good bet
2022-11-02 10:36:46 +0100xacktm(~xacktm@user/xacktm)
2022-11-02 10:37:23 +0100 <dminuoso> Do note however, that addDependentFile requires template-haskell >= 2.7.0
2022-11-02 10:37:28 +0100 <lortabac> good idea
2022-11-02 10:37:51 +0100 <lortabac> it also has the advantage of not requiring Git on the machine where the build is done
2022-11-02 10:38:36 +0100 <dminuoso> (Though that template-haskell version corresponds to GHC 7.4 I think)
2022-11-02 10:38:49 +0100mimmy(~mimmy@159.203.19.37)
2022-11-02 10:39:38 +0100 <lortabac> I'm on GHC 9.2
2022-11-02 10:41:13 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-11-02 10:41:54 +0100mncheckm(~mncheck@193.224.205.254)
2022-11-02 10:44:31 +0100akegalj(~akegalj@93-139-190-182.adsl.net.t-com.hr) (Ping timeout: 252 seconds)
2022-11-02 10:44:31 +0100mncheck(~mncheck@193.224.205.254) (Ping timeout: 252 seconds)
2022-11-02 10:45:28 +0100acidjnk(~acidjnk@p200300d6e7137a4458b560a11cdd3b2c.dip0.t-ipconnect.de)
2022-11-02 10:46:04 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2022-11-02 10:46:21 +0100akegalj(~akegalj@93-139-190-182.adsl.net.t-com.hr)
2022-11-02 10:46:25 +0100jrm(~jrm@user/jrm) (Read error: Software caused connection abort)
2022-11-02 10:46:37 +0100akegalj(~akegalj@93-139-190-182.adsl.net.t-com.hr) (Client Quit)
2022-11-02 10:47:23 +0100 <lortabac> apparently the 'gitrev' library (the one I use) already calls addDependentFile on .git/HEAD
2022-11-02 10:47:33 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2022-11-02 10:48:09 +0100jrm(~jrm@user/jrm)
2022-11-02 10:49:31 +0100 <lortabac> I think I'll stop here, it's not a big deal if the revision is not 100% accurate during development
2022-11-02 10:51:45 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 10:55:33 +0100 <kuribas> regarding number of bugs, I find myself writing a few thousand lines of haskell code with only a handful of problems, but for dynamic code, it's just tens of lines.
2022-11-02 10:56:04 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-02 10:56:57 +0100califax(~califax@user/califx) (Ping timeout: 258 seconds)
2022-11-02 10:57:09 +0100Lears(~Leary]@user/Leary/x-0910699)
2022-11-02 10:58:03 +0100__monty__(~toonn@user/toonn)
2022-11-02 10:58:24 +0100 <chromoblob> kuribas: what do you mean by "dynamic code", is it code in dynamically typed lang?
2022-11-02 10:59:13 +0100 <kuribas> yes
2022-11-02 10:59:21 +0100 <kuribas> clojure/python/javascript
2022-11-02 10:59:22 +0100ubert1(~Thunderbi@91.141.39.16.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2022-11-02 10:59:22 +0100[Leary](~Leary]@user/Leary/x-0910699) (Ping timeout: 252 seconds)
2022-11-02 10:59:23 +0100 <kuribas> ...
2022-11-02 11:00:14 +0100nschoe(~q@2a01:e0a:8e:a190:2e98:8cb9:ae0a:cb62)
2022-11-02 11:00:21 +0100 <kuribas> because I hear the argument to many times, "you can have (business logic) bugs in typed languages too".
2022-11-02 11:00:38 +0100 <chromoblob> kuribas: do you happen to write C++ ?
2022-11-02 11:00:47 +0100 <kuribas> true, but it seems like orders of magnitudes less.
2022-11-02 11:00:52 +0100 <kuribas> chromoblob: long time ago :)
2022-11-02 11:01:22 +0100 <chromoblob> if you can remember, what was the rate of bugs for it, to compare?
2022-11-02 11:04:17 +0100[exa](exa@user/exa/x-3587197) (Read error: Software caused connection abort)
2022-11-02 11:05:12 +0100frost37(~frost@user/frost) (*.net *.split)
2022-11-02 11:07:12 +0100ec(~ec@gateway/tor-sasl/ec) (*.net *.split)
2022-11-02 11:07:12 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (*.net *.split)
2022-11-02 11:07:12 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (*.net *.split)
2022-11-02 11:07:12 +0100chexum(~quassel@gateway/tor-sasl/chexum) (*.net *.split)
2022-11-02 11:07:12 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (*.net *.split)
2022-11-02 11:07:12 +0100jpds1(~jpds@gateway/tor-sasl/jpds) (*.net *.split)
2022-11-02 11:07:12 +0100stiell_(~stiell@gateway/tor-sasl/stiell) (*.net *.split)
2022-11-02 11:07:54 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
2022-11-02 11:09:27 +0100[exa](exa@srv3.blesmrt.net)
2022-11-02 11:19:00 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 248 seconds)
2022-11-02 11:19:20 +0100 <kuribas> chromoblob: much more than haskell
2022-11-02 11:19:33 +0100tomboy64(~tomboy64@user/tomboy64)
2022-11-02 11:26:28 +0100abhiroop_(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 248 seconds)
2022-11-02 11:27:04 +0100jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-02 11:29:04 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-11-02 11:29:37 +0100`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2022-11-02 11:32:21 +0100gawen(~gawen@user/gawen) (Quit: cya)
2022-11-02 11:34:42 +0100mokee(~mokee@37.228.215.235)
2022-11-02 11:38:25 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-11-02 11:38:37 +0100gawen(~gawen@user/gawen)
2022-11-02 11:40:09 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-11-02 11:41:44 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net) (Ping timeout: 276 seconds)
2022-11-02 11:41:56 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 248 seconds)
2022-11-02 11:48:19 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Ping timeout: 252 seconds)
2022-11-02 11:50:03 +0100nek0(~nek0@2a01:4f8:222:2b41::12) (Read error: Software caused connection abort)
2022-11-02 11:50:15 +0100Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-11-02 11:51:48 +0100Ekho(~Ekho@user/ekho) (Read error: Software caused connection abort)
2022-11-02 11:52:20 +0100nek0(~nek0@2a01:4f8:222:2b41::12)
2022-11-02 11:54:42 +0100chomwitt(~chomwitt@2a02:587:dc18:4a00:1ac0:4dff:fedb:a3f1) (Ping timeout: 255 seconds)
2022-11-02 11:57:02 +0100[exa](exa@srv3.blesmrt.net) (Changing host)
2022-11-02 11:57:02 +0100[exa](exa@user/exa/x-3587197)
2022-11-02 11:59:37 +0100Ekho(~Ekho@user/ekho)
2022-11-02 12:00:20 +0100Alex_test_Alex_test
2022-11-02 12:01:46 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-02 12:05:22 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 252 seconds)
2022-11-02 12:05:36 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-11-02 12:06:28 +0100vglfr(~vglfr@145.224.100.22) (Ping timeout: 252 seconds)
2022-11-02 12:07:01 +0100xff0x(~xff0x@2405:6580:b080:900:9a4a:3159:118e:c175)
2022-11-02 12:07:35 +0100nate3(~nate@98.45.169.16)
2022-11-02 12:12:17 +0100zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Ping timeout: 276 seconds)
2022-11-02 12:12:32 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 12:12:42 +0100nate3(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-11-02 12:14:29 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-11-02 12:21:02 +0100vglfr(~vglfr@145.224.100.22)
2022-11-02 12:22:33 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 272 seconds)
2022-11-02 12:25:10 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2022-11-02 12:26:12 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
2022-11-02 12:30:09 +0100 <dminuoso> cheater: I would just use the standard Control.Exception (or better Control.Exceptions.Safe) mechanisms, and perhaps ideally keep other exceptions in IO
2022-11-02 12:30:21 +0100 <cheater> k
2022-11-02 12:30:22 +0100 <cheater> thanks
2022-11-02 12:30:28 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-11-02 12:30:37 +0100 <cheater> what's the difference between this and dmj`'s approach?
2022-11-02 12:30:37 +0100 <dminuoso> Sometimes I think there's a bit of a irrational fear against IO and exceptions in the Haskell community
2022-11-02 12:30:51 +0100 <cheater> what does "keep exceptions in IO" mean?
2022-11-02 12:31:00 +0100 <dminuoso> cheater: Well tryIOError *is* just a thin wrapper around catch
2022-11-02 12:31:10 +0100 <cheater> oh. ok
2022-11-02 12:31:18 +0100 <dminuoso> https://hackage.haskell.org/package/base-4.17.0.0/docs/src/System.IO.Error.html#tryIOError
2022-11-02 12:31:25 +0100 <dminuoso> See? It's really just catch in disguise
2022-11-02 12:33:25 +0100 <dminuoso> % import Control.Exception
2022-11-02 12:33:25 +0100 <yahb2> <no output>
2022-11-02 12:33:27 +0100 <dminuoso> % :t catch
2022-11-02 12:33:27 +0100 <yahb2> catch :: Exception e => IO a -> (e -> IO a) -> IO a
2022-11-02 12:34:57 +0100 <dminuoso> catch (Right <$> f) (\(e :: IOError) -> pure (Left ...))
2022-11-02 12:35:11 +0100 <dminuoso> Or with `handle` (or catches), depending on the ergonomics
2022-11-02 12:35:46 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-02 12:37:00 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-02 12:41:40 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-02 12:44:10 +0100nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Read error: Software caused connection abort)
2022-11-02 12:44:28 +0100nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2022-11-02 12:44:41 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-11-02 12:46:37 +0100phileasfogg(~phileasfo@user/phileasfogg) (Read error: Software caused connection abort)
2022-11-02 12:49:57 +0100phileasfogg(~phileasfo@user/phileasfogg)
2022-11-02 12:50:11 +0100 <siers> what's a "stricly positive functor"? is that about variance?
2022-11-02 12:51:29 +0100jrm2(~jrm@user/jrm)
2022-11-02 12:52:07 +0100jrm(~jrm@user/jrm) (Ping timeout: 252 seconds)
2022-11-02 12:52:14 +0100 <[exa]> siers: maybe this? https://cstheory.stackexchange.com/questions/46280/semantic-definition-of-strict-positivity-for-a-…
2022-11-02 12:52:41 +0100jrm2jrm
2022-11-02 12:54:05 +0100 <[exa]> but tbh I can't find any actual written definition
2022-11-02 12:55:23 +0100dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Read error: Software caused connection abort)
2022-11-02 12:56:53 +0100dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-11-02 12:58:26 +0100 <siers> in this case it seems that he removed the recursivity https://okmij.org/ftp/tagless-final/course/Boehm-Berarducci.html
2022-11-02 13:00:23 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2022-11-02 13:00:48 +0100 <siers> and I guess the "(a functor built from constants, sums and products)" is the definition
2022-11-02 13:01:41 +0100thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
2022-11-02 13:07:02 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 13:09:44 +0100 <Lears> siers: Unrelated language, but this is actually the best read I've found on strictly positive data types: https://docs.juvix.org/notes/strictly-positive-data-types.html
2022-11-02 13:10:23 +0100 <Lears> I'm assuming functor is used orthogonally.
2022-11-02 13:11:55 +0100 <siers> yeah, I was thinking of something like that
2022-11-02 13:11:55 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-02 13:11:59 +0100 <siers> ok, good enough for me
2022-11-02 13:16:59 +0100jakalx(~jakalx@base.jakalx.net)
2022-11-02 13:19:38 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se)
2022-11-02 13:20:31 +0100mncheckm(~mncheck@193.224.205.254) (Remote host closed the connection)
2022-11-02 13:22:55 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 252 seconds)
2022-11-02 13:24:35 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 13:29:41 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-11-02 13:35:21 +0100catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Remote host closed the connection)
2022-11-02 13:36:07 +0100tomboy64(~tomboy64@user/tomboy64)
2022-11-02 13:36:29 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-02 13:38:52 +0100mokee(~mokee@37.228.215.235) (Ping timeout: 252 seconds)
2022-11-02 13:39:42 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-11-02 13:40:36 +0100mokee(~mokee@37.228.215.235)
2022-11-02 13:42:44 +0100mrvdb-(~mrvdb@2001:19f0:5000:8582:5400:ff:fe07:3df5)
2022-11-02 13:43:05 +0100xacktm(~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-11-02 13:44:06 +0100mrvdb(~mrvdb@2001:19f0:5000:8582:5400:ff:fe07:3df5) (Read error: Connection reset by peer)
2022-11-02 13:45:53 +0100xacktm(~xacktm@user/xacktm)
2022-11-02 13:48:17 +0100boxscape_(~boxscape_@81.191.27.107)
2022-11-02 13:48:55 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-02 13:51:11 +0100CiaoSen(~Jura@2003:c9:5712:4700:2a3a:4dff:fe84:dbd5) (Ping timeout: 268 seconds)
2022-11-02 13:51:37 +0100chomwitt(~chomwitt@athe730-c-multi-217.home.otenet.gr)
2022-11-02 13:55:22 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-02 13:58:23 +0100natto(~natto@140.238.225.67) (Quit: a.)
2022-11-02 13:58:40 +0100Ekho(~Ekho@user/ekho) (Ping timeout: 252 seconds)
2022-11-02 13:58:46 +0100natto(~natto@140.238.225.67)
2022-11-02 13:59:08 +0100int-e(~noone@int-e.eu) (Read error: Software caused connection abort)
2022-11-02 13:59:53 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 246 seconds)
2022-11-02 14:00:15 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se)
2022-11-02 14:03:13 +0100Ekho(~Ekho@user/ekho)
2022-11-02 14:04:21 +0100int-e(~noone@int-e.eu)
2022-11-02 14:07:03 +0100elevenkb(~elevenkb@105.184.125.168) (Remote host closed the connection)
2022-11-02 14:09:31 +0100dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Remote host closed the connection)
2022-11-02 14:09:53 +0100dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-11-02 14:13:40 +0100kritzefitz(~kritzefit@debian/kritzefitz)
2022-11-02 14:18:42 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2022-11-02 14:22:21 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2022-11-02 14:24:44 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 14:25:31 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2022-11-02 14:25:49 +0100python476(~user@88.163.231.79)
2022-11-02 14:25:52 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-11-02 14:27:58 +0100catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
2022-11-02 14:31:45 +0100nate3(~nate@98.45.169.16)
2022-11-02 14:33:17 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.7.1)
2022-11-02 14:34:28 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-11-02 14:36:42 +0100nate3(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-11-02 14:37:06 +0100APic(apic@apic.name) (Read error: Software caused connection abort)
2022-11-02 14:37:32 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-11-02 14:43:08 +0100stackdroid18(14094@user/stackdroid)
2022-11-02 14:44:18 +0100sm[i](~user@plaintextaccounting/sm) (Read error: Software caused connection abort)
2022-11-02 14:44:48 +0100boxscape_(~boxscape_@81.191.27.107) (Ping timeout: 255 seconds)
2022-11-02 14:45:37 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-11-02 14:45:43 +0100ec(~ec@gateway/tor-sasl/ec)
2022-11-02 14:46:05 +0100califax(~califax@user/califx)
2022-11-02 14:46:55 +0100mncheck(~mncheck@193.224.205.254)
2022-11-02 14:48:01 +0100Lears(~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2022-11-02 14:48:21 +0100jpds1(~jpds@gateway/tor-sasl/jpds)
2022-11-02 14:48:22 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-02 14:49:40 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 248 seconds)
2022-11-02 14:50:22 +0100elevenkb(~elevenkb@105.184.125.168) (Read error: Connection reset by peer)
2022-11-02 14:50:44 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-02 14:51:17 +0100[Leary](~Leary]@user/Leary/x-0910699)
2022-11-02 14:51:52 +0100elevenkb(~elevenkb@105.184.125.168) (Client Quit)
2022-11-02 14:52:09 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-02 14:52:37 +0100elevenkb(~elevenkb@105.184.125.168) (Client Quit)
2022-11-02 14:52:53 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-02 14:52:57 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-11-02 14:53:54 +0100python47`(~user@37.166.166.123)
2022-11-02 14:53:57 +0100python47`(~user@37.166.166.123) (Read error: Connection reset by peer)
2022-11-02 14:54:17 +0100sm[i](~user@plaintextaccounting/sm)
2022-11-02 14:54:30 +0100python476(~user@88.163.231.79) (Read error: Connection reset by peer)
2022-11-02 14:54:38 +0100APic(apic@apic.name)
2022-11-02 14:56:34 +0100python47`(~user@88.163.231.79)
2022-11-02 14:57:57 +0100orcus-(~orcus@user/brprice) (Read error: Software caused connection abort)
2022-11-02 14:58:10 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-11-02 14:59:39 +0100nschoe(~q@2a01:e0a:8e:a190:2e98:8cb9:ae0a:cb62) (Ping timeout: 255 seconds)
2022-11-02 14:59:56 +0100stiell_(~stiell@gateway/tor-sasl/stiell)
2022-11-02 15:01:14 +0100orcus(~orcus@user/brprice)
2022-11-02 15:01:40 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se)
2022-11-02 15:04:18 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-11-02 15:04:38 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-11-02 15:06:40 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de)
2022-11-02 15:07:27 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-02 15:07:42 +0100elevenkb(~elevenkb@105.184.125.168) (Quit: Quit)
2022-11-02 15:08:52 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-02 15:09:13 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-02 15:09:24 +0100Kaipii(~Kaiepi@108.175.84.104) (Ping timeout: 248 seconds)
2022-11-02 15:10:52 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff)
2022-11-02 15:13:50 +0100Sgeo(~Sgeo@user/sgeo)
2022-11-02 15:14:55 +0100pyrex(~pyrex@user/pyrex) (Read error: Software caused connection abort)
2022-11-02 15:15:24 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Ping timeout: 255 seconds)
2022-11-02 15:15:27 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 272 seconds)
2022-11-02 15:15:48 +0100pyrex(~pyrex@user/pyrex)
2022-11-02 15:16:59 +0100ccapndave(~ccapndave@185.155.77.83.dynamic.wline.res.cust.swisscom.ch)
2022-11-02 15:25:14 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 15:25:52 +0100jpds1(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-11-02 15:27:46 +0100python47`(~user@88.163.231.79) (Ping timeout: 252 seconds)
2022-11-02 15:28:56 +0100shriekingnoise(~shrieking@186.137.167.202)
2022-11-02 15:30:26 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
2022-11-02 15:34:35 +0100jpds1(~jpds@gateway/tor-sasl/jpds)
2022-11-02 15:36:32 +0100irrgit(~irrgit@89.47.234.74)
2022-11-02 15:40:26 +0100Kaipii(~Kaiepi@108.175.84.104)
2022-11-02 15:44:04 +0100elevenkb(~elevenkb@105.184.125.168) (Ping timeout: 248 seconds)
2022-11-02 15:44:53 +0100Spukgespenst(~user@user/siracusa) (Quit: Bye!)
2022-11-02 15:48:37 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-02 15:48:51 +0100Achylles(~Achylles_@2804:431:d724:a8af:5724:3744:6104:7ce5)
2022-11-02 15:58:27 +0100ccapndave(~ccapndave@185.155.77.83.dynamic.wline.res.cust.swisscom.ch) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-11-02 15:59:32 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2022-11-02 16:07:35 +0100zaquest(~notzaques@5.130.79.72)
2022-11-02 16:09:24 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 255 seconds)
2022-11-02 16:13:00 +0100stefan-__stefan-_
2022-11-02 16:15:49 +0100Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) (Read error: Software caused connection abort)
2022-11-02 16:16:05 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:e55:b872:3823:a08c) (Quit: WeeChat 2.8)
2022-11-02 16:17:31 +0100jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 272 seconds)
2022-11-02 16:18:50 +0100heartburn(~gass@2a00:d880:3:1::b1e4:b241) (Read error: Software caused connection abort)
2022-11-02 16:19:02 +0100Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
2022-11-02 16:19:04 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-02 16:19:21 +0100heartburn(~gass@2a00:d880:3:1::b1e4:b241)
2022-11-02 16:23:02 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Read error: Software caused connection abort)
2022-11-02 16:25:55 +0100doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com)
2022-11-02 16:27:51 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 255 seconds)
2022-11-02 16:28:10 +0100Guest61(~Guest61@144.178.80.2)
2022-11-02 16:28:12 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-02 16:29:29 +0100SethTisue(sid14912@id-14912.ilkley.irccloud.com) (Read error: Software caused connection abort)
2022-11-02 16:29:38 +0100phma(phma@2001:5b0:210d:ac28:95ba:8163:b584:2813) (Read error: Connection reset by peer)
2022-11-02 16:29:56 +0100phma(phma@2001:5b0:210d:ac28:8814:df84:c60c:ebe6)
2022-11-02 16:31:07 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-02 16:32:03 +0100SethTisue(sid14912@id-14912.ilkley.irccloud.com)
2022-11-02 16:35:39 +0100Neuromancer(~Neuromanc@user/neuromancer) (Read error: Software caused connection abort)
2022-11-02 16:35:54 +0100 <Guest61> Hello, Im having trouble with one of Dr. Yorgeys hw assignments.. can someone give me a nudge in the right direction? https://www.cis.upenn.edu/~cis1940/spring13/hw/07-folds-monoids.pdf, Excercise 2
2022-11-02 16:36:40 +0100 <Guest61> Specifically this line "This can then be used at each step to determine if the desired index is in the left or the right branch."
2022-11-02 16:36:51 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 255 seconds)
2022-11-02 16:37:17 +0100stef204(~stef204@user/stef204)
2022-11-02 16:38:05 +0100 <Guest61> If the root node of the tree is Apppend (Sized 7) jl1 jl2, how does knowing the number 7 tell me which subtree to look into??
2022-11-02 16:38:57 +0100Sauvin(~sauvin@user/Sauvin) (Ping timeout: 240 seconds)
2022-11-02 16:39:33 +0100 <Guest61> Here's the data type defitnion of the tree https://paste.tomsmeding.com/p4cVU7nM
2022-11-02 16:39:57 +0100 <tomsmeding> Guest61: can't you use the size of the left subtree?
2022-11-02 16:40:08 +0100 <tomsmeding> i.e. check whether the index is less than that size
2022-11-02 16:40:15 +0100jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net)
2022-11-02 16:40:25 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-11-02 16:42:11 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2022-11-02 16:44:01 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-11-02 16:44:03 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-02 16:45:07 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-02 16:45:10 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff)
2022-11-02 16:45:29 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-11-02 16:47:01 +0100Sauvin(~sauvin@user/Sauvin)
2022-11-02 16:50:57 +0100 <Guest61> If you can, im not seeing how that works...is there a precondition for this to work that im missing maybe? Like the tree needs to be balanced
2022-11-02 16:51:02 +0100 <Guest61> tomsmeding
2022-11-02 16:54:02 +0100Guest|95(~Guest|95@157.100.91.168)
2022-11-02 16:54:22 +0100 <Guest61> Lets say the monoid annoitation at the root is (Sized 11), and my given index is 3, the left subtree is (Append (Sized 5) (lt)(rt)) and my right subtree is (Append (Sized 5) (lt) (rt)).
2022-11-02 16:54:23 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se)
2022-11-02 16:54:41 +0100 <Guest61> Which subtree do I take?
2022-11-02 16:55:30 +0100jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-02 16:55:54 +0100dcoutts_(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-11-02 16:56:17 +0100dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Read error: Connection reset by peer)
2022-11-02 16:56:59 +0100Guest|95(~Guest|95@157.100.91.168) ()
2022-11-02 16:57:25 +0100elevenkb(~elevenkb@105.184.125.168) (Ping timeout: 252 seconds)
2022-11-02 16:58:31 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Ping timeout: 252 seconds)
2022-11-02 16:58:31 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 252 seconds)
2022-11-02 16:58:49 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-11-02 16:59:37 +0100Guest71(~Guest71@ext-1-450.eduroam.chalmers.se)
2022-11-02 17:00:32 +0100thegeekinside(~thegeekin@189.180.115.115)
2022-11-02 17:01:35 +0100ski. o O ( "10 Most(ly dead) Influential Programming Languages" by Hillel Wayne in 2020-03-25 at <https://hillelwayne.com/post/influential-dead-languages/> )
2022-11-02 17:01:51 +0100zebrag(~chris@user/zebrag)
2022-11-02 17:03:49 +0100econo(uid147250@user/econo)
2022-11-02 17:04:00 +0100madnight(~madnight@static.59.103.201.195.clients.your-server.de) (Read error: Software caused connection abort)
2022-11-02 17:04:10 +0100beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-11-02 17:04:18 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Remote host closed the connection)
2022-11-02 17:05:08 +0100causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d)
2022-11-02 17:07:05 +0100madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2022-11-02 17:09:35 +0100causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d) (Ping timeout: 246 seconds)
2022-11-02 17:11:18 +0100 <byorgey> Guest71: it's not the monoid annotation at the root that helps, but the ones on the left and right subtrees. If you're looking for the 7th thing but the left subtree has size only 5, where should you look? What if you're looking for the 2nd thing?
2022-11-02 17:11:41 +0100tomboy64(~tomboy64@user/tomboy64)
2022-11-02 17:13:15 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-11-02 17:13:42 +0100 <Guest61> byorgey Intuitevly that makes sense, but what if both the left and right subtrees both have the same size?
2022-11-02 17:15:00 +0100 <c_wraith> only one set of elements is the first set.
2022-11-02 17:15:16 +0100 <c_wraith> The tree is ordered
2022-11-02 17:15:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-02 17:15:29 +0100mmhat(~mmh@p200300f1c73076cfee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
2022-11-02 17:16:51 +0100 <Guest61> c_wraith im sorry im not quite understanding this statement "only one set of elements is the first set"
2022-11-02 17:17:12 +0100 <Guest61> Do you mind rephrasing that?
2022-11-02 17:17:30 +0100 <c_wraith> If you're looking for the 4th element in the tree, where do you start counting from?
2022-11-02 17:17:40 +0100dolio(~dolio@130.44.134.54) (Read error: Software caused connection abort)
2022-11-02 17:17:42 +0100 <Guest61> the left
2022-11-02 17:17:53 +0100 <c_wraith> So.. all the things on the left come before all the things on the right?
2022-11-02 17:18:01 +0100 <Guest61> true
2022-11-02 17:18:16 +0100 <c_wraith> so you don't care about the relative sizes of the subtrees.
2022-11-02 17:18:28 +0100 <c_wraith> You just care if the element you're looking for is in the left
2022-11-02 17:19:53 +0100 <c_wraith> If you're looking for the 4th element and the left subtree has 2 things in it? go to the right. If you're looking for the 4th element and the left subtree has 10 things in it? go to the left
2022-11-02 17:19:57 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-02 17:20:16 +0100 <c_wraith> (do be careful to count the node you're at, though)
2022-11-02 17:22:36 +0100 <Guest61> If your looking for the 2ns element the left subtree has 3 things and the right subtree has 4 things, which way do you go
2022-11-02 17:22:41 +0100 <Guest61> 2md*
2022-11-02 17:22:43 +0100 <Guest61> 2nd*
2022-11-02 17:23:16 +0100 <c_wraith> well, all the elements on the left come before all the elements on the right
2022-11-02 17:23:26 +0100 <Guest61> according to what im hearing, I would go left? but turns out the index is in the right
2022-11-02 17:23:45 +0100causal(~user@50.35.83.177)
2022-11-02 17:23:57 +0100 <c_wraith> Well. Are you doing a BST search or an index lookup?
2022-11-02 17:24:20 +0100 <c_wraith> those are different operations, and they have different rules
2022-11-02 17:24:32 +0100elevenkb(~elevenkb@105.184.125.168)
2022-11-02 17:24:49 +0100dolio(~dolio@130.44.134.54)
2022-11-02 17:25:31 +0100 <Guest61> Index look up... my understanding is the only rule is that the tree must be balanced
2022-11-02 17:27:20 +0100 <c_wraith> balanced is a third separate idea. It makes sure either kind of lookup is efficient, but they should be correct whether it's balanced or not
2022-11-02 17:30:02 +0100 <Guest61> thanks for sticking around, i made a graphical representaiton maybe itll help me oujt
2022-11-02 17:30:05 +0100 <Guest61> https://paste.tomsmeding.com/KdjfSyxn
2022-11-02 17:30:20 +0100 <Guest61> Im looking for index 2
2022-11-02 17:31:21 +0100 <Guest61> If Both the left subtree and right subtree have sizes bigger than my index, I should by default go left right? but then that would lead me to the wrong answer
2022-11-02 17:31:38 +0100 <c_wraith> When you go right, you have to make some adjustments
2022-11-02 17:32:21 +0100 <c_wraith> Let's take your example there. If you're going for index 5 in the original tree, you can see by the size of the left subtree that it isn't there.
2022-11-02 17:32:38 +0100 <Guest61> agreed
2022-11-02 17:32:43 +0100 <c_wraith> So you need to look in the right subtree. But you're not looking for the 5th element of the right subtree
2022-11-02 17:33:01 +0100 <c_wraith> you already skipped the 3 elements to the left and the root
2022-11-02 17:33:43 +0100 <c_wraith> So you're only looking for index 1 in the right subtree
2022-11-02 17:34:15 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Read error: Connection reset by peer)
2022-11-02 17:34:19 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-02 17:35:31 +0100x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Read error: Software caused connection abort)
2022-11-02 17:35:40 +0100 <Guest61> I think were getting somewhere... can we use index 2 on my example?
2022-11-02 17:36:56 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-02 17:37:05 +0100 <c_wraith> Go for it.
2022-11-02 17:37:37 +0100koolazer(~koo@user/koolazer) (Read error: Software caused connection abort)
2022-11-02 17:37:56 +0100 <Guest61> ok so the left tree has a size of 3
2022-11-02 17:38:09 +0100 <Guest61> the right tree has a size of 4
2022-11-02 17:38:38 +0100 <Guest61> Im gonna go left because the left subtree is bigger?
2022-11-02 17:38:47 +0100 <Guest61> smaller**
2022-11-02 17:38:56 +0100Neuromancer(~Neuromanc@user/neuromancer)
2022-11-02 17:39:00 +0100 <Guest61> and my index is less then that size
2022-11-02 17:40:00 +0100 <c_wraith> You should never compare the sizes of the subtrees to each other.
2022-11-02 17:40:27 +0100 <c_wraith> If you're looking for index 2 and the left subtree has size 4, does it matter if the right subtree has size 3 or 30000?
2022-11-02 17:41:00 +0100 <Guest61> no
2022-11-02 17:41:15 +0100thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection)
2022-11-02 17:41:19 +0100Kaipei(~Kaiepi@108.175.84.104)
2022-11-02 17:41:32 +0100 <Guest61> and sorry i was suggesting that I was comparing the sizes... I meant, I check the LT first and I see that its size is greater than my index
2022-11-02 17:41:40 +0100 <Guest61> so I go to the left... are we on the same page?
2022-11-02 17:41:43 +0100 <c_wraith> yep!
2022-11-02 17:41:44 +0100x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
2022-11-02 17:42:26 +0100 <Guest61> Now Again I look at my LT, and its a Single! the index is 0 so thats not it
2022-11-02 17:42:30 +0100 <c_wraith> One quick question: is the left-most element 0 or 1? Both are common, and I don't actually know, but it is important for the details of my example
2022-11-02 17:42:41 +0100 <c_wraith> ah, 0. ok
2022-11-02 17:42:59 +0100 <c_wraith> err, your example. how did I type that backwards?
2022-11-02 17:43:05 +0100koolazer(~koo@user/koolazer)
2022-11-02 17:43:30 +0100 <Guest61> Ok so now I look at my RT, and its a single, the index is 1 and thats not it either?
2022-11-02 17:43:30 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-11-02 17:43:40 +0100 <Guest61> So the index doesnt exist?
2022-11-02 17:44:20 +0100 <c_wraith> when you go into a right subtree, you're going to need to adjust the index you're looking for
2022-11-02 17:44:43 +0100Kaipii(~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds)
2022-11-02 17:44:49 +0100 <c_wraith> because you've skipped some elements
2022-11-02 17:45:21 +0100 <c_wraith> In that case, you know it's not the left subtree, nor is the node you're currently looking at
2022-11-02 17:45:43 +0100 <c_wraith> Oh, hmm.
2022-11-02 17:46:05 +0100 <c_wraith> You only have data in the leaves? Your Size calculations look off in that case
2022-11-02 17:46:40 +0100 <c_wraith> Yeah, ok. that's a problem.
2022-11-02 17:46:44 +0100 <Guest61> I believe thats the only way these Monoid Annotated trees work?
2022-11-02 17:47:02 +0100 <Guest61> Atleast thats how I interpreted the hw assignment thus far; I could have got lost somewhere
2022-11-02 17:47:18 +0100 <c_wraith> well, I guess it's not completely a problem. The number of leaves is always the number of internal nodes plus one
2022-11-02 17:47:30 +0100 <c_wraith> so you can convert between total nodes and leaves
2022-11-02 17:47:38 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Remote host closed the connection)
2022-11-02 17:47:44 +0100 <c_wraith> But this is awkward, because you need to do that
2022-11-02 17:48:20 +0100 <c_wraith> You're starting with the index of a particular leaf, not a particular node, aren't you?
2022-11-02 17:48:21 +0100 <Guest61> Ok so whats wrong with my size calculations? Am i not supposed to include the size of the node itself?
2022-11-02 17:48:26 +0100mokee(~mokee@37.228.215.235) (Ping timeout: 246 seconds)
2022-11-02 17:48:45 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff)
2022-11-02 17:48:52 +0100mokee(~mokee@37.228.215.235)
2022-11-02 17:49:16 +0100 <Guest61> I suppose I have no idea where the indexes are supposed to go... my assumption was that you put the indexes in the leaves from left to right
2022-11-02 17:49:37 +0100 <Guest61> then to calculate the size of a node, you calculate the size of that tree
2022-11-02 17:50:12 +0100 <c_wraith> Each of those things can make perfect sense. They're a little awkward to combine, though that's fully possible.
2022-11-02 17:50:42 +0100vglfr(~vglfr@145.224.100.22) (Remote host closed the connection)
2022-11-02 17:51:46 +0100vglfr(~vglfr@145.224.100.22)
2022-11-02 17:51:55 +0100 <c_wraith> they are different measures. You can convert between them with the tiniest bit of arithmetic, but you need to be sure you're doing the right things.
2022-11-02 17:53:05 +0100 <c_wraith> Shoot, I've got to run. But I think you've got the basic idea, you just need to work through the details and make sure they all line up together.
2022-11-02 17:53:19 +0100 <Guest61> thanks for the help
2022-11-02 17:53:56 +0100 <Guest61> Still stuck btw but i will revisit this with a fresh mind
2022-11-02 17:54:01 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2022-11-02 17:54:12 +0100Guest61(~Guest61@144.178.80.2) (Quit: Client closed)
2022-11-02 17:55:06 +0100Achylles(~Achylles_@2804:431:d724:a8af:5724:3744:6104:7ce5) (Remote host closed the connection)
2022-11-02 17:55:29 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Read error: Software caused connection abort)
2022-11-02 17:56:00 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 17:57:22 +0100doyougnu(~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 252 seconds)
2022-11-02 17:57:47 +0100vglfr(~vglfr@145.224.100.22) (Remote host closed the connection)
2022-11-02 17:58:22 +0100vglfr(~vglfr@145.224.100.22)
2022-11-02 17:58:28 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2022-11-02 18:00:40 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-02 18:03:15 +0100titibandit(~titibandi@xdsl-87-79-250-160.nc.de)
2022-11-02 18:10:05 +0100jpds1(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2022-11-02 18:10:33 +0100sadmax(~user@209.205.174.253)
2022-11-02 18:11:57 +0100jpds1(~jpds@gateway/tor-sasl/jpds)
2022-11-02 18:13:55 +0100AlexZenon(~alzenon@178.34.163.109) (Quit: ;-)
2022-11-02 18:14:21 +0100Alex_test(~al_test@178.34.163.109) (Quit: ;-)
2022-11-02 18:14:30 +0100AlexNoo(~AlexNoo@178.34.163.109) (Quit: Leaving)
2022-11-02 18:21:13 +0100Alex_test(~al_test@178.34.163.109)
2022-11-02 18:22:31 +0100AlexNoo(~AlexNoo@178.34.163.109)
2022-11-02 18:23:07 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-02 18:24:44 +0100AlexZenon(~alzenon@178.34.163.109)
2022-11-02 18:27:32 +0100Xeroine(~Xeroine@user/xeroine)
2022-11-02 18:27:38 +0100sadmax(~user@209.205.174.253) (Read error: Connection reset by peer)
2022-11-02 18:29:08 +0100sadmax(~user@209.205.174.253)
2022-11-02 18:30:04 +0100Guest71(~Guest71@ext-1-450.eduroam.chalmers.se) (Quit: Client closed)
2022-11-02 18:30:55 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Ping timeout: 252 seconds)
2022-11-02 18:31:07 +0100Guest71(~Guest71@ext-1-450.eduroam.chalmers.se)
2022-11-02 18:32:52 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-02 18:33:16 +0100nate3(~nate@98.45.169.16)
2022-11-02 18:33:37 +0100segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2022-11-02 18:35:34 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-11-02 18:35:40 +0100 <segfaultfizzbuzz> the primary reason i see for people wanting to use a language such as C, C++, rust, etc is "performance". my question is whether you can build software in haskell and have a "human compiler" translate sections of the design to whatever performance-oriented implementation without breaking the underlying architecture
2022-11-02 18:36:06 +0100sadmax`(~user@209.205.174.253)
2022-11-02 18:36:33 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-02 18:37:27 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds)
2022-11-02 18:38:04 +0100nate3(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-11-02 18:38:21 +0100 <geekosaur> you can write parts in other languages and use FFI to fit them together. you can even have the C parts call back into haskell.
2022-11-02 18:38:44 +0100 <geekosaur> there's also inline-c which does pretty much what its name says
2022-11-02 18:39:15 +0100 <segfaultfizzbuzz> i know that i can do FFI, and i can imagine that there may be simple C functions which map well onto something like haskell (especially when no currying is involved), so it is just f : a -> b
2022-11-02 18:39:42 +0100jakalx(~jakalx@base.jakalx.net)
2022-11-02 18:39:45 +0100Guest53(~Guest53@2001:1c00:d0a:9300:dc34:6c32:f20d:b1a4)
2022-11-02 18:40:13 +0100 <segfaultfizzbuzz> so you just define your types a and b in C and then your function sending a to b
2022-11-02 18:40:46 +0100 <Guest53> Is there "state of haskell ecosystem report"  for 2022?
2022-11-02 18:41:20 +0100 <segfaultfizzbuzz> but my question has to do with whether you can always draw a sensible boundary (i suppose delineated by specific functions? i'm not quite sure how the boundary would be drawn), and then say, here is my haskell implementation, and if i flip this switch, here is Melissa's implementation of that functionality
2022-11-02 18:41:23 +0100 <segfaultfizzbuzz> in C
2022-11-02 18:44:34 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 18:44:40 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2022-11-02 18:46:05 +0100razetime(~quassel@117.254.34.24) (Remote host closed the connection)
2022-11-02 18:49:08 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-02 18:49:24 +0100 <yin> hls can correctly highlight every occurence of a symbol but can't rename it?
2022-11-02 18:49:37 +0100Kaipei(~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds)
2022-11-02 18:50:09 +0100 <yin> it's too basic of a feature to be missing
2022-11-02 18:50:50 +0100titibandit(~titibandi@xdsl-87-79-250-160.nc.de) (Remote host closed the connection)
2022-11-02 18:53:03 +0100 <[exa]> yin: isn't that more of an editor feature?
2022-11-02 18:53:20 +0100 <[exa]> Guest53: good question tbh
2022-11-02 18:55:31 +0100Guest71(~Guest71@ext-1-450.eduroam.chalmers.se) (Quit: Client closed)
2022-11-02 18:55:56 +0100 <tomsmeding> [exa]: it's a language server feature, other language servers tend to support it
2022-11-02 18:56:58 +0100Guest71(~Guest71@ext-1-450.eduroam.chalmers.se)
2022-11-02 18:57:25 +0100dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-11-02 18:57:46 +0100dcoutts_(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Read error: Connection reset by peer)
2022-11-02 18:57:48 +0100abhiroop(~abhiroop@ext-1-450.eduroam.chalmers.se)
2022-11-02 18:57:52 +0100abhiroop_(~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 252 seconds)
2022-11-02 18:57:55 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-11-02 18:58:21 +0100 <tomsmeding> yin: renaming of a local variable works for me
2022-11-02 18:58:51 +0100 <tomsmeding> and renaming of non-exported top-level bindings works too
2022-11-02 18:58:59 +0100 <tomsmeding> it's just project-wide renames that are unsupporte
2022-11-02 18:59:00 +0100 <tomsmeding> d
2022-11-02 18:59:30 +0100 <yin> let me try
2022-11-02 18:59:42 +0100 <sm> I think the author stopped making those State Of Haskell reports
2022-11-02 19:00:38 +0100 <segfaultfizzbuzz> do you mean this? https://haskellweekly.news/survey/2022.html
2022-11-02 19:00:39 +0100 <yin> tomsmeding: what's the name of the action for renaming local variables?
2022-11-02 19:00:43 +0100 <yin> i'm trying coc-rename
2022-11-02 19:01:08 +0100 <tomsmeding> yin: I'm... not sure about coc, in neovim's built-in language server implementation it's vim.lsp.buf.rename(), whicih sounds like "the default rename stuff"
2022-11-02 19:02:25 +0100 <sm> am I thinking of Stephen Diehl ? I think so, it's hard to tell because I think some of his Haskell stuff has gone offline
2022-11-02 19:02:33 +0100 <sm> https://github.com/Gabriella439/post-rfc/blob/main/sotu.md#state-of-the-haskell-ecosystem has had a few small update this year
2022-11-02 19:02:47 +0100 <yin> i considered vim's native lsp but i read that is wasn't as robust as coc
2022-11-02 19:03:03 +0100tgi(~thegeekin@189.180.115.115)
2022-11-02 19:03:07 +0100 <sm> but yes there's also that survey segfaultfizzbuzz mentions
2022-11-02 19:03:29 +0100 <tomsmeding> yin: it's certainly less featureful, but it works for me /shrug/
2022-11-02 19:03:55 +0100thegeekinside(~thegeekin@189.180.115.115) (Ping timeout: 252 seconds)
2022-11-02 19:04:05 +0100sadmax`(~user@209.205.174.253) (Ping timeout: 272 seconds)
2022-11-02 19:04:44 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-11-02 19:06:44 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 19:07:39 +0100img(~img@user/img)
2022-11-02 19:10:47 +0100 <tomsmeding> yin: it's just textDocument/rename from the LSP protocol
2022-11-02 19:11:01 +0100 <tomsmeding> what error are you getting?
2022-11-02 19:11:44 +0100 <yin> no error. just nothing happening after i type the new name
2022-11-02 19:11:55 +0100 <yin> rename doesn't happen
2022-11-02 19:12:15 +0100detuneattune(~detuneatt@user/detuneattune) (Read error: Connection reset by peer)
2022-11-02 19:12:46 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-11-02 19:13:42 +0100 <tomsmeding> odd
2022-11-02 19:13:59 +0100 <tomsmeding> can you get a log of LSP messages exchanged between coc and hls?
2022-11-02 19:14:08 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 19:14:24 +0100 <drsooch[m]> Make sure rename plug-in is enabled in your HLS version
2022-11-02 19:14:50 +0100 <tomsmeding> I guess that's a valuable thing to check, but I'd at least expect an error if that was the issue
2022-11-02 19:15:22 +0100 <tomsmeding> (haskell-language-server-YOURVERSION --list-plugins)
2022-11-02 19:17:25 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-11-02 19:17:29 +0100 <tomsmeding> interesting, I see there's a config option for the 'rename' plugin called 'crossModule', which defaults to False
2022-11-02 19:18:23 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-11-02 19:18:31 +0100 <yin> rename is enabled. i don't know how to get a log of lsp/coc exchanges
2022-11-02 19:19:23 +0100 <yin> i'm finding coc to be overkill anyways. might just use vim's native lsp
2022-11-02 19:20:34 +0100leeb(~leeb@tk2-243-31079.vs.sakura.ne.jp) (Read error: Software caused connection abort)
2022-11-02 19:20:55 +0100Tuplanolla(~Tuplanoll@91-159-69-11.elisa-laajakaista.fi)
2022-11-02 19:21:57 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Remote host closed the connection)
2022-11-02 19:22:40 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff)
2022-11-02 19:23:48 +0100beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 255 seconds)
2022-11-02 19:24:07 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-02 19:24:42 +0100leeb(~leeb@tk2-243-31079.vs.sakura.ne.jp)
2022-11-02 19:27:01 +0100causal(~user@50.35.83.177) (Ping timeout: 252 seconds)
2022-11-02 19:27:24 +0100causal(~user@50.35.83.177)
2022-11-02 19:27:30 +0100chromoblob(~user@37.113.164.122) (Ping timeout: 246 seconds)
2022-11-02 19:27:34 +0100chromobl1b(~user@37.113.164.122)
2022-11-02 19:27:42 +0100 <tomsmeding> yin: try :CocOpenLog
2022-11-02 19:30:56 +0100 <chromobl1b> can haskell detect loops? i want to write let x = 1 + 0.5 * x in x :: R and have it call fixR (\x -> 1 + 0.5 * x) where fixR isn't just fix
2022-11-02 19:31:04 +0100 <chromobl1b> impossible?
2022-11-02 19:31:08 +0100segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
2022-11-02 19:31:53 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 19:32:02 +0100abhiroop(~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 246 seconds)
2022-11-02 19:32:28 +0100Guest71(~Guest71@ext-1-450.eduroam.chalmers.se) (Ping timeout: 260 seconds)
2022-11-02 19:32:49 +0100 <chromobl1b> without Template Haskell
2022-11-02 19:34:08 +0100detuneattune(~detuneatt@user/detuneattune)
2022-11-02 19:34:09 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:50b:c529:3f17:f97)
2022-11-02 19:34:48 +0100ddellacosta(~ddellacos@143.244.47.100)
2022-11-02 19:35:16 +0100koala_man(~vidar@157.146.251.23.bc.googleusercontent.com) (Read error: Software caused connection abort)
2022-11-02 19:35:42 +0100 <geekosaur> not at compile time
2022-11-02 19:36:45 +0100 <chromobl1b> i mean, somehow rewrite the expression to the fixR expression
2022-11-02 19:36:51 +0100 <geekosaur> and at runtime it'll discover it by triggering it, and if you're lucky producing "Exception: <<loop>>"
2022-11-02 19:37:08 +0100 <geekosaur> yes, that's why I said "not at compile time"
2022-11-02 19:37:25 +0100 <olivermead[m]> better write some tests
2022-11-02 19:39:54 +0100 <tomsmeding> chromobl1b: what you describe is a meaning-changing code change; haskell doesn't know the implementation of Num for the data type in question (because that implementation might be in a different module which was already compiled beforehand)
2022-11-02 19:40:13 +0100 <tomsmeding> so it can't know when to do something like this and when not
2022-11-02 19:40:47 +0100 <tomsmeding> because it is possible to write the Num instance (in strange ways, sure) in such a way that `let x = 1 + 0.5 * x in x` actually does something useful
2022-11-02 19:40:49 +0100Spukgespenst(~user@user/siracusa)
2022-11-02 19:41:19 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-02 19:41:22 +0100 <tomsmeding> https://www.joachim-breitner.de/blog/792-More_recursive_definitions
2022-11-02 19:41:24 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-02 19:41:29 +0100koala_man(~vidar@157.146.251.23.bc.googleusercontent.com)
2022-11-02 19:41:31 +0100 <chromobl1b> yes, it will return something like (1 + 0.5 * (1 + 0.5 * (...)))
2022-11-02 19:41:50 +0100 <chromobl1b> i was hoping that *loops* could be detected
2022-11-02 19:42:25 +0100Neuromancer(~Neuromanc@user/neuromancer) (Ping timeout: 252 seconds)
2022-11-02 19:42:29 +0100 <tomsmeding> not sure what to answer on whether they _can_ be detected, but in any case, GHC doesn't :p
2022-11-02 19:43:42 +0100sadmax(~user@209.205.174.253) (Remote host closed the connection)
2022-11-02 19:44:03 +0100 <EvanR> % let x = x in x
2022-11-02 19:44:14 +0100 <EvanR> % > let x = x in x
2022-11-02 19:44:31 +0100 <EvanR> yaaaaaaahb
2022-11-02 19:44:32 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-02 19:45:07 +0100tzh_(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-11-02 19:45:09 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2022-11-02 19:45:27 +0100 <EvanR> chromobl1b, if you mean detect loops and fail to compile, what if you wanted a loop
2022-11-02 19:45:33 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2022-11-02 19:45:52 +0100 <chromobl1b> i mean detect loops and insert fixR at loop points
2022-11-02 19:46:08 +0100yahb2(~yahb2@2a01:4f8:c0c:5c7b::2) (Read error: Connection reset by peer)
2022-11-02 19:46:21 +0100yahb2(~yahb2@2a01:4f8:c0c:5c7b::2)
2022-11-02 19:46:24 +0100sadmax(~user@209.205.174.253)
2022-11-02 19:46:43 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Remote host closed the connection)
2022-11-02 19:46:56 +0100 <chromobl1b> because fixR (\x -> 1 + 0.5 * x) can solve the equation x = 1 + 0.5x (at least i think so)
2022-11-02 19:47:33 +0100 <EvanR> taking normal code and inserting stuff invisibly sounds bad
2022-11-02 19:47:43 +0100 <EvanR> in context
2022-11-02 19:47:56 +0100 <EvanR> but we have template haskell which takes template-looking code and inserts stuff
2022-11-02 19:48:47 +0100yahb2(~yahb2@2a01:4f8:c0c:5c7b::2) (Read error: Connection reset by peer)
2022-11-02 19:48:58 +0100yahb2(~yahb2@2a01:4f8:c0c:5c7b::2)
2022-11-02 19:49:34 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-02 19:49:50 +0100 <monochrom> If you know denotational semantics, the correct solution to x=1+0.5*x is bottom.
2022-11-02 19:50:22 +0100 <monochrom> In this context, your notion of "useful" is subjective.
2022-11-02 19:50:28 +0100 <chromobl1b> R isn't just Float, you know
2022-11-02 19:50:41 +0100 <monochrom> I know.
2022-11-02 19:51:13 +0100 <tomsmeding> monochrom: not necessarily if the Num instance of R uses some well-crafted unsafePerformIO
2022-11-02 19:51:44 +0100 <tomsmeding> chromobl1b: monochrom's point is: if you mean fixR, write fixR :p
2022-11-02 19:52:49 +0100 <monochrom> So let's take an example that's even relevant for Bool, shall we?
2022-11-02 19:53:44 +0100 <monochrom> If you know denotational semantics, the correct solution to x = x && False is bottom.
2022-11-02 19:54:52 +0100 <chromobl1b> by the way! a few days ago i wanted to know, is (||) possible to define such that True || bottom = bottom || True = True?
2022-11-02 19:55:04 +0100vglfr(~vglfr@145.224.100.22) (Ping timeout: 252 seconds)
2022-11-02 19:55:10 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-11-02 19:55:12 +0100 <tomsmeding> no, because how are you going to check whether the argument is bottom?
2022-11-02 19:55:18 +0100 <tomsmeding> is an infinite loop bottom?
2022-11-02 19:56:18 +0100 <chromobl1b> it kind of starts computation of both arguments in parallel and when any one returns True, it returns True
2022-11-02 19:56:27 +0100 <monochrom> Look up "parallel or" aka "por" and its difficulty in fitting into sequential computing.
2022-11-02 19:56:27 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 19:56:49 +0100 <tomsmeding> chromobl1b: that you can do, but only in IO -- because the result could depend on execution order, i.e. is not pure code
2022-11-02 19:57:27 +0100 <chromobl1b> monochrom: Google fails me
2022-11-02 19:58:01 +0100chromobl1bchromoblob
2022-11-02 19:59:42 +0100 <yin> > let (||) = const . const True in True || undefined
2022-11-02 19:59:43 +0100 <lambdabot> True
2022-11-02 19:59:47 +0100 <yin> > let (||) = const . const True in undefined || True
2022-11-02 19:59:48 +0100 <lambdabot> True
2022-11-02 20:00:26 +0100 <chromoblob> nooo
2022-11-02 20:01:01 +0100igghibu(~igghibu@178.249.211.100)
2022-11-02 20:01:33 +0100gabiruh_(~gabiruh@vps19177.publiccloud.com.br)
2022-11-02 20:01:42 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Read error: Connection reset by peer)
2022-11-02 20:01:45 +0100 <yin> technically yes
2022-11-02 20:02:08 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-02 20:06:52 +0100Guest53(~Guest53@2001:1c00:d0a:9300:dc34:6c32:f20d:b1a4) ()
2022-11-02 20:07:36 +0100Luj3(~Luj@2a01:e0a:5f9:9681:a8ec:74c1:b9fd:4789) (Quit: Ping timeout (120 seconds))
2022-11-02 20:07:55 +0100Luj3(~Luj@2a01:e0a:5f9:9681:85d8:91f1:a50:3039)
2022-11-02 20:08:16 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-11-02 20:08:46 +0100ec(~ec@gateway/tor-sasl/ec)
2022-11-02 20:09:57 +0100Luj3(~Luj@2a01:e0a:5f9:9681:85d8:91f1:a50:3039) (Client Quit)
2022-11-02 20:11:08 +0100Luj3(~Luj@2a01:e0a:5f9:9681:85d8:91f1:a50:3039)
2022-11-02 20:11:34 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-11-02 20:12:48 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-11-02 20:13:08 +0100sadmax`(~user@209.205.174.253)
2022-11-02 20:13:09 +0100ec(~ec@gateway/tor-sasl/ec)
2022-11-02 20:13:23 +0100Kaipei(~Kaiepi@108.175.84.104)
2022-11-02 20:13:43 +0100yahb2(~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection)
2022-11-02 20:13:55 +0100yahb2(~yahb2@2a01:4f8:c0c:5c7b::2)
2022-11-02 20:13:59 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-02 20:14:43 +0100 <tomsmeding> % let x = x in x -- EvanR I fixed yahb2
2022-11-02 20:14:45 +0100 <yahb2> <timeout>
2022-11-02 20:14:52 +0100sadmax(~user@209.205.174.253) (Ping timeout: 252 seconds)
2022-11-02 20:15:31 +0100Luj3(~Luj@2a01:e0a:5f9:9681:85d8:91f1:a50:3039) (Client Quit)
2022-11-02 20:15:39 +0100ddellacosta(~ddellacos@143.244.47.100) (Ping timeout: 272 seconds)
2022-11-02 20:15:39 +0100 <chromoblob> need to extend coroutines again :)
2022-11-02 20:16:34 +0100igghibu(~igghibu@178.249.211.100) (Quit: Textual IRC Client: www.textualapp.com)
2022-11-02 20:17:11 +0100igghibu(~igghibu@178.249.211.100)
2022-11-02 20:18:44 +0100Luj3(~Luj@2a01:e0a:5f9:9681:5995:d46c:bfc1:b889)
2022-11-02 20:19:45 +0100 <tomsmeding> EvanR: funny thing is that the code was clearly broken, infinite loops hung the whole thing without fail
2022-11-02 20:20:02 +0100 <tomsmeding> no clue how I tested this code and did not run into this
2022-11-02 20:22:40 +0100 <darkling> I guess that's a step up from "how did this test ever pass?"
2022-11-02 20:23:21 +0100gqplox(~textual@97e654ef.skybroadband.com)
2022-11-02 20:23:39 +0100nschoe(~q@2a01:e0a:8e:a190:27a4:b90b:a639:cc1e)
2022-11-02 20:24:08 +0100 <tomsmeding> step down, because said testing was manual
2022-11-02 20:24:33 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-02 20:25:16 +0100 <gqplox> hello
2022-11-02 20:25:30 +0100 <darkling> tomsmeding: I... don't know what to say.
2022-11-02 20:26:35 +0100 <gqplox> i am a beginner. i am trying to make a table type or data. Basically I want to initialise the table to have say 4 colums but in those columns i want to be able to put different things
2022-11-02 20:26:43 +0100 <gqplox> How would I be able to do this?
2022-11-02 20:27:12 +0100 <[exa]> gqplox: that depends a lot on the stuff you want to store in the table. Is that like a "data frame" from pandas/R?
2022-11-02 20:27:25 +0100 <gqplox> Like I table with 3 columns of "date", "name", "kcal" could be represented as [(String, String, Int)] I guess, but I might want to change it
2022-11-02 20:27:40 +0100 <gqplox> Wait let me share a screenshow to explain, is that ok?
2022-11-02 20:27:50 +0100 <[exa]> better to use pastebin to share the code
2022-11-02 20:28:16 +0100 <[exa]> https://paste.tomsmeding.com is the usual one we use here
2022-11-02 20:28:58 +0100 <chromoblob> gqplox: change it when?
2022-11-02 20:29:11 +0100Neuromancer(~Neuromanc@user/neuromancer)
2022-11-02 20:29:51 +0100 <gqplox> http://sprunge.us/Nip9Ap
2022-11-02 20:30:24 +0100 <darkling> gqplox: Also, change it how -- do you want to change the number of rows, the number of columns, or the contents of exiting cells?
2022-11-02 20:30:35 +0100 <gqplox> So Basically in python I called the table like table = Table(headers=headers) where headers is a list of strings
2022-11-02 20:30:45 +0100 <[exa]> gqplox: you could probably make a type like `data Food = Food { foodName::String, foodKcal :: Int, ......}`
2022-11-02 20:30:50 +0100 <gqplox> but i would store all the data of the table in an array of arrays
2022-11-02 20:30:54 +0100 <gqplox> and keep the datatype
2022-11-02 20:31:06 +0100 <gqplox> eg, so later on i can take the total of any items that are Numeric for example is what i want
2022-11-02 20:31:39 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-02 20:31:49 +0100 <gqplox> when the table is created it should be made according to fields specified, only new entries will be added
2022-11-02 20:32:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-02 20:32:20 +0100 <darkling> If all the non-heading cells are the same data type (which they are in your example, it's a list of column headings, and a list of rows, where each row is a (String, [Double]) tuple.
2022-11-02 20:32:36 +0100 <gqplox> and then later I will make a printTable function to print it as an ascii table
2022-11-02 20:32:52 +0100stef204(~stef204@user/stef204) (Quit: WeeChat 3.7.1)
2022-11-02 20:33:52 +0100 <[exa]> gqplox: ah so you want "dynamic" list of properties for each of the entries, right?
2022-11-02 20:35:45 +0100 <gqplox> Sorry for poorly explaining guys. Basically I have all this food data stored as a csv file, and then I want to print this data out as an ascii table on demand. For example, the csv has a field for `salt`, but sometimes I might not want to show the salt column when displaying the table. So ideally something wihch I can change the cols for when creating the table on demand for the first time
2022-11-02 20:35:46 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Ping timeout: 252 seconds)
2022-11-02 20:36:05 +0100 <gqplox> Actually since I am a beginner I can maybe just start out with the assumption that everything will be the same cols
2022-11-02 20:36:15 +0100 <gqplox> In that case, the recommended way is to use data?
2022-11-02 20:36:25 +0100 <[exa]> ah okay. You are reading the csv with the `csv` package?
2022-11-02 20:36:46 +0100 <darkling> I think the main thing I'd say in your use case is to separte out the column headings and row headings as separate things (as I said above)
2022-11-02 20:37:33 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-02 20:37:35 +0100 <darkling> s/separte/separate/
2022-11-02 20:38:20 +0100 <[exa]> anyway the good&bad property of haskell here is that it will require you to have your code statically typed, which might get a bit inconvenient -- in python, you start e.g. adding up the numbers and end up with a TypeError only in case something gets wrong depending on (dynamic) data contents; here you get the TypeError just because it's possible
2022-11-02 20:38:56 +0100 <gqplox> I don't really know how to read/write stuff yet I'm just trying to piece together whatever i can hehe, I thought it would be best to start with the table as i can mock up the data in ghci
2022-11-02 20:39:14 +0100 <gqplox> Okay thank you guys, Ill have a go using your suggestions and come back in a bit
2022-11-02 20:39:37 +0100 <[exa]> gqplox: there's a `csv` package btw that is kinda useful for CSVs
2022-11-02 20:39:45 +0100Luj3(~Luj@2a01:e0a:5f9:9681:5995:d46c:bfc1:b889) (Quit: The Lounge - https://thelounge.chat)
2022-11-02 20:41:33 +0100 <[exa]> gqplox: but dataframes ain't that much popular outside python&R(&maybe Julia) because of the type properties. If you want to simulate them, you can end up with something like `type MyTable = [(String, MyColumn)]; data MyColumn = StringColumn [String] | IntColumn [Int] | FloatColumn [Float] | ...`
2022-11-02 20:41:51 +0100 <[exa]> (which is AFAIK roughly how pythons and R's actually do that internally)
2022-11-02 20:44:12 +0100Luj3(~Luj@2a01:e0a:5f9:9681:1047:e6e7:4c5c:c3aa)
2022-11-02 20:44:39 +0100 <gqplox> ah right thank you
2022-11-02 20:44:58 +0100 <gqplox> type Row = (String, [Integer])
2022-11-02 20:45:20 +0100 <chromoblob> i like [exa]'s approach more
2022-11-02 20:45:22 +0100 <gqplox> i do ghci table.hs is says ok loaded, but i try to do :t Row and it gives error how come?
2022-11-02 20:45:42 +0100 <chromoblob> :t Int
2022-11-02 20:45:43 +0100 <lambdabot> error:
2022-11-02 20:45:43 +0100 <lambdabot> • Data constructor not in scope: Int
2022-11-02 20:45:43 +0100 <lambdabot> • Perhaps you meant variable ‘int’ (imported from Text.PrettyPrint.HughesPJ)
2022-11-02 20:46:18 +0100 <chromoblob> because the type Row and the constructor Row are different things, and :t is for expressions, not types
2022-11-02 20:46:20 +0100 <gqplox> <interactive>:1:1: error:
2022-11-02 20:46:21 +0100 <gqplox> • Illegal term-level use of the type constructor ‘Row’
2022-11-02 20:46:21 +0100 <gqplox> defined at table.hs:1:1
2022-11-02 20:46:21 +0100 <gqplox> • In the expression: Row
2022-11-02 20:46:51 +0100 <chromoblob> ":t expr" is "give me type of expression expr"
2022-11-02 20:46:55 +0100ft(~ft@p508dbd59.dip0.t-ipconnect.de)
2022-11-02 20:47:02 +0100 <chromoblob> and Row is type itself, not an expression
2022-11-02 20:47:14 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff)
2022-11-02 20:47:15 +0100 <[exa]> gqplox: usually it's best to type the code into a source file for easier editing, and only test that with ghci (use :r to reload what you edited)
2022-11-02 20:47:21 +0100 <geekosaur> Row is an alias for the type (String,[Integer])
2022-11-02 20:47:58 +0100 <gqplox> ghci> :t ("hello", [1,2,3])
2022-11-02 20:47:58 +0100 <gqplox> ("hello", [1,2,3]) :: Num a => (String, [a])
2022-11-02 20:47:58 +0100 <gqplox> ghci> :t ("hello", [1,2,3]) :: Row
2022-11-02 20:47:58 +0100 <gqplox> ("hello", [1,2,3]) :: Row :: Row
2022-11-02 20:48:00 +0100 <gqplox> ah i get it
2022-11-02 20:48:04 +0100 <gqplox> thank you
2022-11-02 20:48:31 +0100gmg(~user@user/gehmehgeh)
2022-11-02 20:49:08 +0100igghibu(~igghibu@178.249.211.100) (Quit: Textual IRC Client: www.textualapp.com)
2022-11-02 20:49:16 +0100 <chromoblob> gqplox: note that integer literals like 1 do not always mean an Integer; an 1 is anything Num instance is defined for
2022-11-02 20:49:38 +0100 <gqplox> ah right, thx
2022-11-02 20:49:41 +0100 <geekosaur> > 1 :: Int
2022-11-02 20:49:43 +0100 <lambdabot> 1
2022-11-02 20:49:46 +0100 <chromoblob> ("hello", [1,2,3] :: [Integer]) will give you right type
2022-11-02 20:49:47 +0100 <geekosaur> > 1 :: Double
2022-11-02 20:49:49 +0100 <lambdabot> 1.0
2022-11-02 20:49:53 +0100 <gqplox> oh right because i can cast it as whatever
2022-11-02 20:50:09 +0100 <geekosaur> or ("hello", [1,2,3]) :: Row
2022-11-02 20:50:23 +0100 <chromoblob> it's not casting though, it's just specifying a type
2022-11-02 20:50:43 +0100 <gqplox> right
2022-11-02 20:50:44 +0100 <chromoblob> casting is changing a type, and is explicit
2022-11-02 20:50:51 +0100M0rphee[m](~M0rpheema@2001:470:69fc:105::2:b1ce)
2022-11-02 20:51:03 +0100 <geekosaur> it's not really a cast, it's a specifier (I usually call it a type ascription). "Num a => a" means the compiler is ready to give it any type that has a Num instance; you're just specifying which one to use
2022-11-02 20:51:19 +0100 <gqplox> yep that's what I mean, I got the terminology wrong
2022-11-02 20:51:20 +0100 <gqplox> thank you
2022-11-02 20:51:25 +0100 <geekosaur> fromIntegral is how you'd actually convert a number to a different type
2022-11-02 20:51:33 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Ping timeout: 255 seconds)
2022-11-02 20:51:44 +0100 <geekosaur> ewll, an integral number. there's also fromRational and realToFrac among others
2022-11-02 20:52:39 +0100skilow fours geekosaur for "type ascription"
2022-11-02 20:53:27 +0100mmhat(~mmh@p200300f1c73076cfee086bfffe095315.dip0.t-ipconnect.de)
2022-11-02 20:53:40 +0100 <ski> @type fromInteger
2022-11-02 20:53:41 +0100 <lambdabot> Num a => Integer -> a
2022-11-02 20:53:45 +0100 <ski> @type fromIntgral
2022-11-02 20:53:46 +0100 <lambdabot> error:
2022-11-02 20:53:46 +0100 <lambdabot> • Variable not in scope: fromIntgral
2022-11-02 20:53:46 +0100 <lambdabot> • Perhaps you meant ‘fromIntegral’ (imported from Prelude)
2022-11-02 20:53:51 +0100 <ski> @type fromIntegral
2022-11-02 20:53:52 +0100 <lambdabot> (Integral a, Num b) => a -> b
2022-11-02 20:53:59 +0100 <ski> @type fromRational
2022-11-02 20:54:00 +0100 <lambdabot> Fractional a => Rational -> a
2022-11-02 20:54:05 +0100 <ski> @type realToFrac
2022-11-02 20:54:06 +0100 <lambdabot> (Real a, Fractional b) => a -> b
2022-11-02 20:55:31 +0100 <ski> `fromIntegral' or `realToFrac' are usually the numeric conversions you reach for. apart from `floor',`ceiling',`round',`truncate', that is
2022-11-02 20:57:04 +0100 <ski> if you type `123' then this actually means `fromInteger 123', where that `123' has type `Integer' (and is not recursively expanded to `fromInteger (fromInteger 123)', ad nauseam ..)
2022-11-02 20:57:34 +0100 <ski> ditto for decimal numeric literals / numerals, `123.45' means `fromRational 123.45'
2022-11-02 20:57:40 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 248 seconds)
2022-11-02 20:58:34 +0100 <chromoblob> > 123.45 :: Rational
2022-11-02 20:58:36 +0100 <lambdabot> 2469 % 20
2022-11-02 20:58:42 +0100 <gqplox> so is there a way to ah nice thank you
2022-11-02 20:58:52 +0100 <gqplox> oops that was from before
2022-11-02 20:58:55 +0100dcoutts_(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-11-02 20:59:48 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-02 21:00:19 +0100Heyting(~Heyting@193.198.16.217)
2022-11-02 21:01:37 +0100dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Ping timeout: 252 seconds)
2022-11-02 21:02:10 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2022-11-02 21:03:03 +0100 <chromoblob> general :: (forall a . [a] -> [a]) -> MyColumn -> MyColumn; general f (StringColumn s) = StringColumn (f s); general f (IntColumn i) = IntColumn (f i); ...
2022-11-02 21:05:15 +0100 <chromoblob> useGeneral :: (forall a . [a] -> [a]) -> MyTable -> MyTable; useGeneral f rows = map (second f) rows
2022-11-02 21:06:44 +0100 <chromoblob> gqplox: ^ this is how you could perform *row* operations on columns, e.g. to remove second row, use: useGeneral (\(r1:r2:rs) -> r1:rs) myTable
2022-11-02 21:06:56 +0100 <chromoblob> second is from Control.Arrow
2022-11-02 21:07:21 +0100[exa]remembers Generic.Data.Surgery
2022-11-02 21:11:34 +0100 <chromoblob> oops i should have called 'rows' 'cols'
2022-11-02 21:11:49 +0100 <chromoblob> but it should work
2022-11-02 21:13:12 +0100skiwas wondering ..
2022-11-02 21:13:45 +0100ss4(~wootehfoo@user/wootehfoot)
2022-11-02 21:13:47 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 21:14:11 +0100Heyting(~Heyting@193.198.16.217) (Remote host closed the connection)
2022-11-02 21:15:26 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-11-02 21:15:46 +0100 <chromoblob> useGeneral f cols = map (second (general f)) cols
2022-11-02 21:15:50 +0100 <chromoblob> fixed
2022-11-02 21:16:03 +0100caryhartline(~caryhartl@2600:1700:2d0:8d30:9d7c:5e2:4131:9c2b) (Quit: caryhartline)
2022-11-02 21:17:01 +0100 <ski> useGeneral = map . second . general
2022-11-02 21:17:01 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
2022-11-02 21:17:25 +0100 <ski> (presumably doesn't work, due to rank-2 and lack of impredicative types with `.' ?)
2022-11-02 21:18:13 +0100gehmehgeh(~user@user/gehmehgeh)
2022-11-02 21:18:35 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff)
2022-11-02 21:19:19 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-02 21:19:32 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2022-11-02 21:22:16 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-11-02 21:27:11 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-11-02 21:28:21 +0100mokee(~mokee@37.228.215.235) (Remote host closed the connection)
2022-11-02 21:30:02 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-02 21:30:46 +0100causal(~user@50.35.83.177) (Ping timeout: 252 seconds)
2022-11-02 21:36:57 +0100Heyting(~Heyting@193.198.16.217)
2022-11-02 21:37:15 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-02 21:38:48 +0100mmhat(~mmh@p200300f1c73076cfee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-11-02 21:38:52 +0100stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-11-02 21:39:16 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 248 seconds)
2022-11-02 21:39:48 +0100jtomas(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 248 seconds)
2022-11-02 21:40:57 +0100jinsun__(~jinsun@user/jinsun)
2022-11-02 21:40:57 +0100jinsun(~jinsun@user/jinsun) (Killed (osmium.libera.chat (Nickname regained by services)))
2022-11-02 21:40:57 +0100jinsun__jinsun
2022-11-02 21:41:18 +0100Heyting(~Heyting@193.198.16.217) (Remote host closed the connection)
2022-11-02 21:41:20 +0100ss4(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2022-11-02 21:44:54 +0100causal(~user@50.35.83.177)
2022-11-02 21:45:06 +0100Kaipei(~Kaiepi@108.175.84.104) (Ping timeout: 255 seconds)
2022-11-02 21:45:33 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-11-02 21:46:39 +0100xax__(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-11-02 21:47:49 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Ping timeout: 252 seconds)
2022-11-02 21:49:10 +0100jinsun(~jinsun@user/jinsun) ()
2022-11-02 21:49:28 +0100tzh_(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 252 seconds)
2022-11-02 21:51:50 +0100mmhat(~mmh@p200300f1c7307621ee086bfffe095315.dip0.t-ipconnect.de)
2022-11-02 21:51:54 +0100 <chromoblob> i have another problem, let spread k kt f t = f t + k * spread k kt f (t * kt). given that f :: R -> R is defined around zero and -1 < k < 1, spread k kt f t is undefined at t = 0 but has a limit for t -> 0. i would like to get it defined there, i don't know where to insert fix and which type would the fix even have
2022-11-02 21:53:52 +0100 <NemesisD> i'm trying to use a function foo that has a type parameter c of kind Constraint. i'm trying to use type applications to specify the constraint concisely. foo @Show works fine. however i actually need to specify multiple constraints: i.e. foo @(Show, Eq). how can i do this?
2022-11-02 21:54:30 +0100 <chromoblob> i mean i know it can have type ((R -> R -> (R -> R) -> R) -> (R -> R -> (R -> R) -> R)) -> R -> R -> (R -> R) -> R but i don't know how to write it, and whether this form would be most efficient
2022-11-02 21:54:48 +0100 <tomsmeding> chromoblob: `fix` is not the right tool here, you're trying to get convergence in the reals, whereas `fix` gives you convergence in some unrelated functional domain
2022-11-02 21:55:03 +0100 <tomsmeding> > fix (1:) -- fix gives you this
2022-11-02 21:55:05 +0100 <lambdabot> [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1...
2022-11-02 21:55:11 +0100 <chromoblob> yes, i do mean not usual fix
2022-11-02 21:56:00 +0100 <tomsmeding> NemesisD: I don't think you can, just like (Maybe, Either String) isn't suddenly a functor
2022-11-02 21:56:28 +0100 <tomsmeding> but you can do `class (Show a, Eq a) => MyThings a ; instance (Show a, Eq a) => MyThings a` and then use @MyThings
2022-11-02 21:56:52 +0100 <tomsmeding> just like you can `data MyFunctors a = MyFunctors (Maybe a) (Either String a) deriving (Functor)`
2022-11-02 21:56:59 +0100 <tomsmeding> you have to make a new name
2022-11-02 21:57:00 +0100 <chromoblob> i mean i need to write this "fix" myself
2022-11-02 21:57:06 +0100TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 260 seconds)
2022-11-02 21:58:23 +0100TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
2022-11-02 21:58:34 +0100 <NemesisD> @tomsmeding yeah i tried that. it did work but it's kind of cumbersome to do that all the time, so i was wondering if there was some library or machinery to make combining constraints on the fly a bit easier. i'm trying to constraints in the barbies library: https://hackage.haskell.org/package/barbies-2.0.3.1/docs/Data-Functor-Barbie.html#g:7
2022-11-02 21:58:34 +0100 <lambdabot> Unknown command, try @list
2022-11-02 21:58:39 +0100 <tomsmeding> chromoblob: what would that type mean?
2022-11-02 21:58:57 +0100 <tomsmeding> what are those "two reals and a R->R function"
2022-11-02 21:59:19 +0100 <chromoblob> the two reals are k and kt, and the function is f, in definition of spread
2022-11-02 21:59:31 +0100 <NemesisD> i feel like the library authors probably thought of a way to specify product constraints since only being able to specify 1 constraint is a huge limitation but im stuck
2022-11-02 21:59:45 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-02 22:00:04 +0100 <tomsmeding> % class (c1 a, c2 a) => Both c1 c2 a
2022-11-02 22:00:04 +0100 <yahb2> <interactive>:4:1: error: ; • Potential superclass cycle for ‘Both’ ; one of whose superclass constraints is headed by a type variable: ; ‘c1 a’ ; Use UndecidableSuperCl...
2022-11-02 22:00:17 +0100 <tomsmeding> % :set -XUndecidableSuperClasses -XMultiParamTypeClasses -XConstraintKinds
2022-11-02 22:00:17 +0100 <yahb2> <no output>
2022-11-02 22:00:21 +0100 <tomsmeding> % class (c1 a, c2 a) => Both c1 c2 a
2022-11-02 22:00:21 +0100 <yahb2> <no output>
2022-11-02 22:00:29 +0100 <tomsmeding> % instance (c1 a, c2 a) => Both c1 c2 a
2022-11-02 22:00:29 +0100 <yahb2> <no output>
2022-11-02 22:00:39 +0100 <tomsmeding> % :k Both Show Eq
2022-11-02 22:00:39 +0100 <yahb2> Both Show Eq :: * -> Constraint
2022-11-02 22:00:40 +0100 <geekosaur> are we sure just doing `type ShowEq a = (Show a, Eq a)` doesn't work?
2022-11-02 22:00:42 +0100 <tomsmeding> NemesisD: ^
2022-11-02 22:01:59 +0100 <tomsmeding> geekosaur: The type synonym ‘ShowEq’ should have 1 argument, but has been given none
2022-11-02 22:02:27 +0100 <NemesisD> yeah, getting the same thing
2022-11-02 22:02:30 +0100 <geekosaur> oh, I think that may need LiberalTypeSynonyms to defer that check
2022-11-02 22:02:45 +0100 <geekosaur> or maybe this si too type-trickery-ey for it
2022-11-02 22:03:21 +0100 <tomsmeding> geekosaur: LiberalTypeSynonyms doesn't help on 9.2.4
2022-11-02 22:03:27 +0100mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-02 22:03:31 +0100 <geekosaur> oh well
2022-11-02 22:05:01 +0100 <NemesisD> i was looking at the constraints package since it's probably in my transitive dependencies but i couldn't quite make sense of it
2022-11-02 22:09:01 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 272 seconds)
2022-11-02 22:10:17 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-11-02 22:10:17 +0100ec(~ec@gateway/tor-sasl/ec) (Write error: Connection reset by peer)
2022-11-02 22:10:17 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-11-02 22:10:44 +0100ec(~ec@gateway/tor-sasl/ec)
2022-11-02 22:11:11 +0100 <chromoblob> ok, i forgot last t parameter in that type
2022-11-02 22:11:38 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2022-11-02 22:12:44 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-11-02 22:13:32 +0100stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
2022-11-02 22:15:08 +0100k8yun(~k8yun@user/k8yun)
2022-11-02 22:15:31 +0100 <ski> chromoblob : that type looks a bit CPSy
2022-11-02 22:16:34 +0100stiell_(~stiell@gateway/tor-sasl/stiell)
2022-11-02 22:16:40 +0100 <tomsmeding> chromoblob: am I correct if I say that spread k kt f t ~= \sum_{i=0}^\infty k^i * f(t * kt^i)
2022-11-02 22:17:10 +0100 <chromoblob> i don't know the language of these tags
2022-11-02 22:17:30 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-02 22:17:33 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-02 22:17:48 +0100 <tomsmeding> I'm trying to write TeX :p
2022-11-02 22:18:44 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-02 22:20:55 +0100 <olivermead[m]> probably best to render it elsewhere and copy the image in
2022-11-02 22:21:41 +0100 <darkling> Image? This is IRC! ;)
2022-11-02 22:21:47 +0100nschoe(~q@2a01:e0a:8e:a190:27a4:b90b:a639:cc1e) (Ping timeout: 268 seconds)
2022-11-02 22:22:06 +0100 <darkling> (Well, it is over here...)
2022-11-02 22:22:16 +0100 <olivermead[m]> of course I forget these things are bridged everywhere
2022-11-02 22:22:42 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-11-02 22:22:50 +0100 <olivermead[m]> greetings from matrix (element) 👋
2022-11-02 22:22:57 +0100 <ski> Haskell IRC channel has been a thing since 2001, or so
2022-11-02 22:23:10 +0100 <darkling> We get extra info on this side: you have [m] at the end of your nick to tell us where you come from.
2022-11-02 22:23:33 +0100 <ski> (we were merely around ten to twenty people, at that time, though, iirc)
2022-11-02 22:24:04 +0100 <tomsmeding> chromoblob: I'm claiming this https://tomsmeding.com/ss/get/tomsmeding/Cp7mUY
2022-11-02 22:25:01 +0100 <chromoblob> i think it is so
2022-11-02 22:25:42 +0100 <chromoblob> but the (* kt) is just one way to "morph" the f
2022-11-02 22:26:53 +0100 <olivermead[m]> darkling: damned outsiders the lot of us
2022-11-02 22:26:59 +0100 <chromoblob> i don't want "symbolic transformation" or equivalent of it performed by the programmer
2022-11-02 22:27:27 +0100 <tomsmeding> chromoblob: you're asking about numerical and algebraic algorithms; this is a haskell channel, you'll probably have more success elsewhere :p
2022-11-02 22:27:42 +0100 <tomsmeding> for FP things this is the right place
2022-11-02 22:27:55 +0100 <tomsmeding> other things you can try, but less chance of success :p
2022-11-02 22:28:05 +0100 <darkling> olivermead[m]: We are all outsiders. The amount of Haskell I actually write is minimal. I'm here for the jokes and the discrete maths.
2022-11-02 22:28:28 +0100 <tomsmeding> darkling: nice subtle emphasis on 'discrete'
2022-11-02 22:29:41 +0100 <chromoblob> i feel that my question is "haskelly"
2022-11-02 22:29:46 +0100 <olivermead[m]> darkling: discrete being the area within mathematics and not being sneaky with the maths, I assume?
2022-11-02 22:30:12 +0100 <darkling> Either works?
2022-11-02 22:30:42 +0100 <tomsmeding> chromoblob: the mathy part of your question is how to go from such a function specification to an algorithm that converges to a sensible value
2022-11-02 22:30:42 +0100 <chromoblob> it's about how to generally write such "fixes"
2022-11-02 22:30:54 +0100 <tomsmeding> the haskelly part is how to make that algorithm run magically
2022-11-02 22:31:21 +0100 <tomsmeding> and the most relevant answer to the haskelly part is I think this https://www.joachim-breitner.de/blog/792-More_recursive_definitions
2022-11-02 22:31:35 +0100 <tomsmeding> but it's not quite where you want it yet
2022-11-02 22:32:20 +0100EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2022-11-02 22:32:40 +0100EvanR(~EvanR@user/evanr)
2022-11-02 22:33:19 +0100 <tomsmeding> chromoblob: if you feel like watching a talk instead of reading a post, https://www.youtube.com/watch?v=NElOY3Ufsts
2022-11-02 22:33:21 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
2022-11-02 22:34:48 +0100nate3(~nate@98.45.169.16)
2022-11-02 22:35:51 +0100olivermead(~user@cpc72329-sotn15-2-0-cust205.15-1.cable.virginm.net)
2022-11-02 22:36:26 +0100 <EvanR> darkling, and then when the code involves mainly functors there's a change it's not necessarily discrete anymore
2022-11-02 22:36:32 +0100 <EvanR> chance
2022-11-02 22:37:00 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Remote host closed the connection)
2022-11-02 22:37:06 +0100 <darkling> I'm sure it's pretty in-your-face by that point. :)
2022-11-02 22:37:31 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2022-11-02 22:38:11 +0100 <gqplox> hello guys again
2022-11-02 22:38:26 +0100 <darkling> (I'm writing code to automatically refactor context-free grammars right now. I'm not sure I can cope with functors at the same time)
2022-11-02 22:39:13 +0100 <ski> like left-factoring and left-recursion-elimination ?
2022-11-02 22:39:25 +0100 <darkling> Yeah, exactly that.
2022-11-02 22:39:31 +0100nate3(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-11-02 22:39:52 +0100elevenkb(~elevenkb@105.184.125.168) (Remote host closed the connection)
2022-11-02 22:39:53 +0100 <darkling> I've got several papers on the left-corner transformation upstairs. That's the next big challenge.
2022-11-02 22:40:20 +0100 <ski> that (the latter) is similar to doing bottom-up rather than top-down evaluation, in a logic programming / deductive database context
2022-11-02 22:40:40 +0100 <darkling> Not sure I need it for the code I was actually trying to write when I went down this rabbit hole, but it's probably worth playing with. :)
2022-11-02 22:40:56 +0100heinz19(~trace@user/trace)
2022-11-02 22:41:06 +0100 <heinz19> Is there a sorting algorithm that only has one loop or recursion instead of many?
2022-11-02 22:41:43 +0100 <darkling> Other than bucket-sort, probably not.
2022-11-02 22:41:58 +0100 <ski> general sorting isn't linear
2022-11-02 22:42:27 +0100 <olivermead> heinz19: if you find one please tell us, and the rest of the computer science world
2022-11-02 22:42:42 +0100 <darkling> General sorting is provably O(n log n) at best, so you've got some kind of recursion or extra looping beyond one loop.
2022-11-02 22:43:09 +0100 <heinz19> bogosort
2022-11-02 22:43:41 +0100 <darkling> There, the extra looping is in the generation of the permutations. :)
2022-11-02 22:43:53 +0100 <heinz19> Spaghetti sort
2022-11-02 22:44:14 +0100meinside(uid24933@id-24933.helmsley.irccloud.com) (Read error: Software caused connection abort)
2022-11-02 22:44:14 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-11-02 22:44:23 +0100 <olivermead> monkey sort, bogosort, all the same
2022-11-02 22:44:24 +0100 <gqplox> could someone please explain a better way to do this im sure it's like a one liner
2022-11-02 22:44:30 +0100 <gqplox> warning this is like the worst haskell ever
2022-11-02 22:44:32 +0100 <gqplox> http://sprunge.us/cUZtTU
2022-11-02 22:44:49 +0100 <darkling> heinz19: Parallel sorts can be O(n), yes.
2022-11-02 22:45:36 +0100 <olivermead> gqplox: the nested `where` clauses would be the first thing to refactor
2022-11-02 22:46:55 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-11-02 22:46:55 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net) (Client Quit)
2022-11-02 22:47:11 +0100 <gqplox> in which way do you mean? like is it bad form to have nested wheres?
2022-11-02 22:47:14 +0100meinside(uid24933@id-24933.helmsley.irccloud.com)
2022-11-02 22:47:15 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-11-02 22:47:34 +0100 <gqplox> initially there were all top level but i thought to put it inside because those are only helper functions needed for the main function
2022-11-02 22:47:51 +0100 <ski> rowLengths = (map . map) length rs
2022-11-02 22:48:25 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net) (Client Quit)
2022-11-02 22:48:37 +0100 <olivermead> gqplox: unless the inner inner functions rely on scope from the nesting, it's not necessary to have more than one `where`
2022-11-02 22:48:43 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-11-02 22:48:49 +0100 <olivermead> just 1 where with multiple bindings
2022-11-02 22:48:49 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 22:49:05 +0100 <gqplox> ah right thanks oliver
2022-11-02 22:49:19 +0100 <ski> they depend on `rs', at least
2022-11-02 22:49:24 +0100 <gqplox> i did it to make clear that the atIndex/listMax are only needed inside maxAtIndex
2022-11-02 22:49:34 +0100 <gqplox> but i will just keep them all outside
2022-11-02 22:49:35 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net) (Client Quit)
2022-11-02 22:49:37 +0100 <olivermead> gqplox: also see ski's rowLength definition
2022-11-02 22:49:38 +0100 <ski> (`rowLengths', anyway)
2022-11-02 22:49:52 +0100 <olivermead> yes that
2022-11-02 22:49:54 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-11-02 22:49:58 +0100 <gqplox> oh yeah that's cool
2022-11-02 22:50:04 +0100 <gqplox> double map
2022-11-02 22:50:30 +0100 <gqplox> yeah i have basically just done definition of map in the list comprehensionb
2022-11-02 22:50:34 +0100 <ski> rowLengths = map (map length) rs -- same thing, of course
2022-11-02 22:50:36 +0100 <gqplox> thanks
2022-11-02 22:50:46 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net) (Client Quit)
2022-11-02 22:50:50 +0100kora9(~kora@user/Kora9) (Read error: Software caused connection abort)
2022-11-02 22:51:05 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-11-02 22:51:06 +0100 <gqplox> yeah I feel more comfortable with the later way of writing it
2022-11-02 22:51:10 +0100 <gqplox> thank you
2022-11-02 22:51:48 +0100abhiroop(~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 248 seconds)
2022-11-02 22:51:57 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net) (Client Quit)
2022-11-02 22:52:16 +0100hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-11-02 22:53:16 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-11-02 22:54:42 +0100 <ski> rPaddings = map listMax . transpose . (map . map) length
2022-11-02 22:55:37 +0100 <ski> rPaddings = map (listMax . map length) . transpose
2022-11-02 22:56:16 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-11-02 22:56:53 +0100kora9(~kora@user/Kora9)
2022-11-02 22:57:33 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-02 22:57:46 +0100 <ski> paddingLengths hs rs = (map (maximum . map length) . transpose) (hs:rs)
2022-11-02 22:57:54 +0100 <ski> gqplox ^
2022-11-02 22:58:25 +0100 <gqplox> wow
2022-11-02 22:58:45 +0100 <ski> one-liney enough for you ?
2022-11-02 22:58:51 +0100 <gqplox> :)
2022-11-02 22:58:52 +0100 <olivermead> haskell really has a way about it sometimes
2022-11-02 22:58:53 +0100 <gqplox> that's so cool
2022-11-02 22:59:14 +0100 <geekosaur> and then you come back in 6 months and go "wtf?"
2022-11-02 22:59:22 +0100 <ski> ;)
2022-11-02 22:59:34 +0100 <gqplox> oh nice i didn't know about maximum only max that's useful
2022-11-02 22:59:41 +0100 <olivermead> comments and descriptive identifiers are indeed advised
2022-11-02 22:59:47 +0100 <ski> note that `maximum' fails for empty list, though
2022-11-02 23:00:00 +0100 <gqplox> so i need to do import Data.List to use transpose?
2022-11-02 23:00:03 +0100 <ski> but with `hs:rs', the lists won't be empty
2022-11-02 23:00:15 +0100 <ski> @index transpose
2022-11-02 23:00:15 +0100 <lambdabot> GHC.OldList, Data.List, Data.ByteString.Lazy, Data.ByteString.Lazy.Char8, Data.ByteString, Data.ByteString.Char8
2022-11-02 23:00:20 +0100 <ski> yep
2022-11-02 23:00:38 +0100 <ski> @src transpose
2022-11-02 23:00:38 +0100 <lambdabot> transpose [] = []
2022-11-02 23:00:38 +0100 <lambdabot> transpose ([] : xss) = transpose xss
2022-11-02 23:00:38 +0100 <lambdabot> transpose ((x:xs) : xss) = (x : [h | (h:t) <- xss]) : transpose (xs : [ t | (h:t) <- xss])
2022-11-02 23:00:41 +0100 <ski> bah
2022-11-02 23:01:21 +0100 <ski> > foldr (zipWith (:)) (repeat []) ["foo","bar","baz","bla"]
2022-11-02 23:01:23 +0100 <lambdabot> ["fbbb","oaal","orza"]
2022-11-02 23:03:36 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 268 seconds)
2022-11-02 23:05:06 +0100 <gqplox> ski please may you write the equivalent for the paddingLengths with the brackets if it's not too much trouble
2022-11-02 23:05:37 +0100 <ski> brackets ?
2022-11-02 23:06:09 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-11-02 23:06:14 +0100 <gqplox> like with the .
2022-11-02 23:06:17 +0100 <ski> @unpl paddingLengths hs rs = (map (maximum . map length) . transpose) (hs:rs)
2022-11-02 23:06:17 +0100 <lambdabot> paddingLengths hs rs = map (\ x0 -> maximum (map length x0)) (transpose (hs : rs))
2022-11-02 23:06:53 +0100 <gqplox> oh nice this bot is very helpful
2022-11-02 23:06:54 +0100 <gqplox> thank you
2022-11-02 23:08:26 +0100DigitalKiwi(~kiwi@2604:a880:400:d0::1ca0:e001) (Read error: Software caused connection abort)
2022-11-02 23:09:00 +0100motherfsck(~motherfsc@user/motherfsck) (Quit: quit)
2022-11-02 23:09:00 +0100 <olivermead> ski: is there any help for this bot? like what it can do
2022-11-02 23:10:02 +0100 <ski> @help
2022-11-02 23:10:02 +0100 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
2022-11-02 23:10:10 +0100 <olivermead> oh I see, thank you
2022-11-02 23:10:10 +0100 <ski> @help help
2022-11-02 23:10:10 +0100 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
2022-11-02 23:10:14 +0100 <olivermead> @list
2022-11-02 23:10:14 +0100 <lambdabot> What module? Try @listmodules for some ideas.
2022-11-02 23:10:27 +0100 <olivermead> it's laughing at me
2022-11-02 23:10:34 +0100 <chromoblob> @help list
2022-11-02 23:10:34 +0100 <lambdabot> list [module|command]. Show commands for [module] or the module providing [command].
2022-11-02 23:10:34 +0100 <olivermead> @listmodules
2022-11-02 23:10:34 +0100 <lambdabot> activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search
2022-11-02 23:10:34 +0100 <lambdabot> seen slap source spell system tell ticker todo topic type undo unlambda unmtl version where
2022-11-02 23:10:52 +0100 <ski> @list pointful
2022-11-02 23:10:52 +0100 <lambdabot> pointful provides: pointful pointy repoint unpointless unpl unpf
2022-11-02 23:11:02 +0100 <ski> @help pl
2022-11-02 23:11:02 +0100 <lambdabot> pointless <expr>. Play with pointfree code.
2022-11-02 23:11:03 +0100 <olivermead> @help unpl
2022-11-02 23:11:03 +0100 <lambdabot> pointful <expr>. Make code pointier.
2022-11-02 23:11:40 +0100 <geekosaur> https://github.com/lambdabot/lambdabot/pull/205/commits/ef11140fcda59f04291e9e29936a8fc769cd4d08
2022-11-02 23:11:40 +0100 <ski> @keal
2022-11-02 23:11:40 +0100 <lambdabot> i can explain why something is without knowing what the rules decided by man are
2022-11-02 23:11:52 +0100 <olivermead> very nice, I normally spend ages thinking to convert pointy<->pointfree
2022-11-02 23:11:54 +0100 <ski> @ghc
2022-11-02 23:11:54 +0100 <lambdabot> Functional dependencies conflict between instance declarations
2022-11-02 23:11:58 +0100DigitalKiwi(~kiwi@2604:a880:400:d0::1ca0:e001)
2022-11-02 23:12:03 +0100 <ski> @quote
2022-11-02 23:12:04 +0100 <lambdabot> Bonus says: <Bonus> i thought laziness is one of the basic tenets of python <Bonus> ugh <Bonus> i mean haskell
2022-11-02 23:12:31 +0100 <ski> olivermead : i usually prefer doing it myself
2022-11-02 23:13:00 +0100 <olivermead> it is fun
2022-11-02 23:13:11 +0100 <ski> pointless fun :)
2022-11-02 23:16:11 +0100biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-11-02 23:16:52 +0100tgi(~thegeekin@189.180.115.115) (Ping timeout: 248 seconds)
2022-11-02 23:17:26 +0100mncheck(~mncheck@193.224.205.254) (Ping timeout: 246 seconds)
2022-11-02 23:21:13 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2022-11-02 23:21:30 +0100biberu(~biberu@user/biberu)
2022-11-02 23:22:48 +0100gqplox(~textual@97e654ef.skybroadband.com) (Quit: Textual IRC Client: www.textualapp.com)
2022-11-02 23:25:33 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 23:25:41 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2022-11-02 23:26:52 +0100Topsi(~Topsi@ipb218f713.dynamic.kabel-deutschland.de)
2022-11-02 23:27:11 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-02 23:29:46 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-02 23:30:12 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-11-02 23:33:54 +0100michalz(~michalz@185.246.207.222) (Remote host closed the connection)
2022-11-02 23:37:30 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-02 23:39:07 +0100thegeekinside(~thegeekin@189.180.115.115)
2022-11-02 23:42:07 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2022-11-02 23:42:30 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-02 23:52:41 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-11-02 23:55:25 +0100Neuromancer(~Neuromanc@user/neuromancer) (Ping timeout: 252 seconds)
2022-11-02 23:55:25 +0100gabiruh_(~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
2022-11-02 23:55:31 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2022-11-02 23:55:58 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2022-11-02 23:55:58 +0100ft(~ft@p508dbd59.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-11-02 23:56:16 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-11-02 23:57:40 +0100ft(~ft@p508dbd59.dip0.t-ipconnect.de)