Home liberachat/#haskell: Logs Calendar

Logs on 2022-11-02 (liberachat/#haskell)

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

All times are in UTC on 2022-11-02.