Home liberachat/#haskell: Logs Calendar

Logs on 2021-10-09 (liberachat/#haskell)

00:03:55 w-spc-gir joins (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137)
00:03:57 × w-spc-gir quits (~w-spc-gir@2601:205:4000:dd60:bc3a:4a61:1dc8:3137) (Read error: Connection reset by peer)
00:10:21 a6a45081-2b83 joins (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507)
00:11:43 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
00:12:05 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 265 seconds)
00:12:58 motherfsck joins (~motherfsc@user/motherfsck)
00:13:31 × akspecs__ quits (~akspecs@user/akspecs) (Ping timeout: 252 seconds)
00:14:04 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
00:14:05 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
00:15:30 emf joins (~emf@2620:10d:c090:400::5:3586)
00:18:56 akspecs__ joins (~akspecs@user/akspecs)
00:19:28 hyiltiz joins (~quassel@31.220.5.250)
00:19:47 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
00:21:10 × a6a45081-2b83 quits (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection)
00:21:37 geekosaur joins (~geekosaur@xmonad/geekosaur)
00:21:46 × emf quits (~emf@2620:10d:c090:400::5:3586) (Ping timeout: 245 seconds)
00:22:29 × libertyprime quits (~libertypr@118.149.75.78) (Read error: Connection reset by peer)
00:22:36 × acidjnk_new3 quits (~acidjnk@p200300d0c703cb3809607f7c8c1f0b15.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
00:23:27 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
00:26:01 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: jkvsbk)
00:27:54 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
00:29:19 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
00:29:52 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
00:29:55 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
00:34:20 × _xor quits (~xor@72.49.199.147) (Read error: Connection reset by peer)
00:40:16 img joins (~img@user/img)
00:40:25 _xor joins (~xor@72.49.199.147)
00:52:50 libertyprime joins (~libertypr@118.149.75.78)
00:54:09 × gioyik quits (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds)
00:56:10 × tabaqui quits (~root@46.39.45.162) (Quit: WeeChat 3.3)
00:58:38 × kimjetwav quits (~user@2607:fea8:235f:9730:cb0f:f2b8:510e:5110) (Ping timeout: 260 seconds)
01:00:37 retroid_ joins (~retro@176.255.22.194)
01:00:44 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
01:00:59 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
01:04:04 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
01:04:20 hyiltiz joins (~quassel@31.220.5.250)
01:04:34 × retro_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds)
01:04:43 retro_ joins (~retro@176.255.22.194)
01:05:07 × retroid_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds)
01:06:12 kimjetwav joins (~user@2607:fea8:235f:9730:44bb:5259:c248:1d7c)
01:09:16 × xff0x quits (~xff0x@2001:1a81:5251:1900:6353:3c1e:a988:d99) (Ping timeout: 245 seconds)
01:11:14 xff0x joins (~xff0x@2001:1a81:528b:f000:ce9b:808a:c5c5:1eb1)
01:11:29 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
01:12:07 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
01:12:30 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:13:37 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:15 machinedgod joins (~machinedg@24.105.81.50)
01:21:56 lavaman joins (~lavaman@98.38.249.169)
01:22:17 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
01:22:27 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
01:26:24 pfurla_ joins (~pfurla@176.67.85.207)
01:28:39 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 245 seconds)
01:29:43 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
01:29:46 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
01:29:49 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
01:31:21 pfurla joins (~pfurla@216.131.83.65)
01:31:22 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
01:33:13 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
01:33:40 × pfurla_ quits (~pfurla@176.67.85.207) (Ping timeout: 252 seconds)
01:34:18 XrayEcho joins (~Completen@66-152-106-102.static.firstlight.net)
01:34:18 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
01:35:10 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
01:39:48 gentauro joins (~gentauro@user/gentauro)
01:50:12 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
01:53:10 × darkstardevx quits (~darkstard@c-24-21-53-33.hsd1.or.comcast.net) (Quit: Leaving)
01:53:10 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
01:53:25 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
01:53:40 darkstardevx joins (~darkstard@2601:1c2:300:c8a0::6c32)
01:56:11 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
01:57:54 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
02:00:35 z0ltan joins (~mishugana@user/mishugana)
02:01:22 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
02:01:28 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
02:01:44 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
02:02:18 × z0ltan quits (~mishugana@user/mishugana) (Client Quit)
02:02:51 z0ltan joins (~mishugana@user/mishugana)
02:03:06 retroid_ joins (~retro@176.255.22.194)
02:03:18 × machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection)
02:03:25 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
02:04:24 machinedgod joins (~machinedg@24.105.81.50)
02:05:04 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
02:06:35 zaquest joins (~notzaques@5.128.210.178)
02:06:43 × retro_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds)
02:07:25 retro_ joins (~retro@176.255.22.194)
02:07:49 × retroid_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds)
02:08:50 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
02:09:01 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Read error: Connection reset by peer)
02:10:22 × charukiewicz quits (~quassel@2600:1702:a90:2750::43) (Ping timeout: 268 seconds)
02:11:57 img joins (~img@user/img)
02:13:09 × Amras quits (~Amras@user/Amras) (Quit: Leaving)
02:13:26 notzmv joins (~zmv@user/notzmv)
02:13:52 × CiaoSen quits (~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
02:16:38 × Psybur quits (~Psybur@mobile-166-170-32-197.mycingular.net) (Remote host closed the connection)
02:16:41 superstar64 joins (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4)
02:22:48 × nisstyre quits (~wes@user/nisstyre) (Quit: WeeChat 3.1)
02:23:42 × zebrag quits (~chris@user/zebrag) (Remote host closed the connection)
02:23:51 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
02:23:58 lavaman joins (~lavaman@98.38.249.169)
02:24:53 nisstyre joins (~wes@user/nisstyre)
02:24:55 w-spc-gir joins (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12)
02:25:11 × w-spc-gir quits (~w-spc-gir@2600:380:475a:5055:581e:91fa:3984:7a12) (Remote host closed the connection)
02:25:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:27:28 hyiltiz joins (~quassel@31.220.5.250)
02:28:14 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
02:28:44 × pfurla quits (~pfurla@216.131.83.65) (Read error: Connection reset by peer)
02:29:28 pfurla joins (~pfurla@216.131.83.65)
02:30:03 × alx741 quits (~alx741@181.196.68.60) (Quit: alx741)
02:31:47 wei2912 joins (~wei2912@112.199.250.21)
02:34:40 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
02:35:05 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
02:35:42 × hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Ping timeout: 260 seconds)
02:35:42 × bradparker quits (sid262931@id-262931.uxbridge.irccloud.com) (Ping timeout: 260 seconds)
02:35:52 × tapas quits (sid467876@id-467876.ilkley.irccloud.com) (Ping timeout: 252 seconds)
02:36:10 × econo quits (uid147250@user/econo) (Ping timeout: 260 seconds)
02:36:25 × T_S_ quits (sid501726@id-501726.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
02:36:38 × dsal quits (sid13060@id-13060.lymington.irccloud.com) (Ping timeout: 260 seconds)
02:36:58 × mcfilib quits (sid302703@user/mcfilib) (Ping timeout: 252 seconds)
02:36:58 × aria quits (sid380617@id-380617.lymington.irccloud.com) (Ping timeout: 252 seconds)
02:36:58 × kaychaks__ quits (sid236345@id-236345.helmsley.irccloud.com) (Ping timeout: 252 seconds)
02:36:58 × b20n quits (sid115913@id-115913.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
02:36:58 × hongminhee quits (sid295@id-295.tinside.irccloud.com) (Ping timeout: 252 seconds)
02:37:06 × parseval quits (sid239098@id-239098.helmsley.irccloud.com) (Ping timeout: 260 seconds)
02:37:06 × bbhoss quits (sid18216@id-18216.tinside.irccloud.com) (Ping timeout: 260 seconds)
02:37:06 × christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (Ping timeout: 260 seconds)
02:37:21 tapas joins (sid467876@ilkley.irccloud.com)
02:37:21 lbseale_ joins (~lbseale@user/ep1ctetus)
02:37:22 bradparker joins (sid262931@uxbridge.irccloud.com)
02:37:31 × dpratt_ quits (sid193493@id-193493.helmsley.irccloud.com) (Ping timeout: 252 seconds)
02:37:31 × awpr quits (uid446117@id-446117.lymington.irccloud.com) (Ping timeout: 252 seconds)
02:37:34 × jmct_ quits (sid160793@id-160793.tinside.irccloud.com) (Ping timeout: 260 seconds)
02:37:34 × grfn quits (sid449115@id-449115.helmsley.irccloud.com) (Ping timeout: 260 seconds)
02:37:34 × gregberns__ quits (sid315709@id-315709.helmsley.irccloud.com) (Ping timeout: 260 seconds)
02:37:34 × hook54321 quits (sid149355@user/hook54321) (Ping timeout: 260 seconds)
02:37:54 b20n joins (sid115913@uxbridge.irccloud.com)
02:38:53 T_S_ joins (sid501726@uxbridge.irccloud.com)
02:39:02 econo joins (uid147250@user/econo)
02:39:06 hook54321 joins (sid149355@user/hook54321)
02:39:20 dsal joins (sid13060@lymington.irccloud.com)
02:39:26 jmct_ joins (sid160793@5.254.36.57)
02:39:27 aria joins (sid380617@lymington.irccloud.com)
02:39:27 christiaanb joins (sid84827@lymington.irccloud.com)
02:39:27 hongminhee joins (sid295@5.254.36.57)
02:39:28 awpr joins (uid446117@lymington.irccloud.com)
02:40:37 mcfilib joins (sid302703@user/mcfilib)
02:40:40 grfn joins (sid449115@helmsley.irccloud.com)
02:40:40 parseval joins (sid239098@helmsley.irccloud.com)
02:40:41 bbhoss joins (sid18216@5.254.36.57)
02:40:41 gregberns__ joins (sid315709@helmsley.irccloud.com)
02:40:46 kaychaks__ joins (sid236345@helmsley.irccloud.com)
02:40:46 dpratt_ joins (sid193493@helmsley.irccloud.com)
02:41:21 × lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 245 seconds)
02:44:53 × libertyprime quits (~libertypr@118.149.75.78) (Quit: leaving)
02:50:00 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:50:06 × z0ltan quits (~mishugana@user/mishugana) (Quit: leaving)
02:53:25 × td_ quits (~td@muedsl-82-207-238-110.citykom.de) (Ping timeout: 252 seconds)
02:54:25 hnOsmium0001 joins (uid453710@hampstead.irccloud.com)
02:54:54 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 245 seconds)
02:55:08 pfurla_ joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
02:55:19 td_ joins (~td@muedsl-82-207-238-244.citykom.de)
02:57:05 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:57:36 × pfurla quits (~pfurla@216.131.83.65) (Ping timeout: 245 seconds)
02:58:33 gaff joins (~gaff@49.207.200.236)
02:58:34 gaff_ joins (~gaff@49.207.200.236)
02:58:45 × gaff quits (~gaff@49.207.200.236) (Client Quit)
02:58:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
02:59:07 lavaman joins (~lavaman@98.38.249.169)
03:02:39 × gaff_ quits (~gaff@49.207.200.236) (Client Quit)
03:02:56 gaff joins (~gaff@49.207.200.236)
03:03:11 × gaff quits (~gaff@49.207.200.236) (Client Quit)
03:03:52 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
03:12:07 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
03:22:50 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds)
03:24:15 × benin03693230163 quits (~benin@183.82.24.191) (Ping timeout: 260 seconds)
03:28:49 × XrayEcho quits (~Completen@66-152-106-102.static.firstlight.net) (Quit: Leaving)
03:30:26 benin03693230163 joins (~benin@183.82.24.191)
03:37:56 × lbseale_ quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
03:40:46 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
03:43:28 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 252 seconds)
03:45:23 motherfsck joins (~motherfsc@user/motherfsck)
03:46:09 × superstar64 quits (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) (Quit: Leaving)
03:47:45 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
04:03:13 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 268 seconds)
04:04:58 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 252 seconds)
04:05:53 motherfsck joins (~motherfsc@user/motherfsck)
04:13:14 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 245 seconds)
04:16:53 motherfsck joins (~motherfsc@user/motherfsck)
04:21:59 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 245 seconds)
04:25:07 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
04:36:38 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
04:36:56 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:38:36 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
04:50:04 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
04:50:32 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
04:56:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:12:12 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:29:15 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:25a3:7e37:69ba:6dab) (Remote host closed the connection)
05:30:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
05:33:00 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
05:35:55 motherfsck joins (~motherfsc@user/motherfsck)
05:40:51 jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
05:41:41 beka joins (~beka@104.193.170.240)
05:43:16 shelves joins (~shelves@52.187.169.89)
06:02:02 mbuf joins (~Shakthi@122.178.225.141)
06:02:23 gaussrz joins (~gaussrz@2403:d400:1001:20:d2c5:d3ff:fe69:8eb5)
06:03:17 × shelves quits (~shelves@52.187.169.89) (Quit: Client closed)
06:05:15 gaussrz is now known as shelves
06:05:38 × shelves quits (~gaussrz@2403:d400:1001:20:d2c5:d3ff:fe69:8eb5) (Client Quit)
06:11:25 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
06:13:11 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
06:13:19 shelves joins (~gaussrz@2403:d400:1001:20:d2c5:d3ff:fe69:8eb5)
06:16:06 shelves is now known as gaussrz
06:17:49 gaussrz is now known as shelves
06:18:06 shelves is now known as gaussrz
06:21:19 jtomas_ joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
06:23:08 × jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
06:26:14 lavaman joins (~lavaman@98.38.249.169)
06:27:27 × wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal)
06:29:40 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:196f:94f2:f9a2:d75d)
06:30:40 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
06:33:51 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:196f:94f2:f9a2:d75d) (Ping timeout: 245 seconds)
06:38:43 × gawen quits (~gawen@user/gawen) (Quit: cya)
06:40:02 gawen joins (~gawen@user/gawen)
06:44:46 wonko joins (~wjc@62.115.229.50)
06:48:49 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 252 seconds)
06:50:52 mei joins (~mei@user/mei)
06:51:57 × zer0bitz quits (~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi) (Read error: Connection reset by peer)
06:51:59 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
06:55:34 hyiltiz joins (~quassel@31.220.5.250)
07:01:25 gioyik joins (~gioyik@gateway/tor-sasl/gioyik)
07:04:18 × gioyik quits (~gioyik@gateway/tor-sasl/gioyik) (Client Quit)
07:05:11 × beka quits (~beka@104.193.170.240) (Ping timeout: 265 seconds)
07:07:47 kayprish joins (~kayprish@cable-188-2-246-223.dynamic.sbb.rs)
07:10:06 × _xor quits (~xor@72.49.199.147) (Read error: Connection reset by peer)
07:14:34 _xor joins (~xor@72.49.199.147)
07:15:46 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
07:20:28 beka joins (~beka@104.193.170.240)
07:21:59 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
07:25:10 pepeiborra joins (sid443799@ilkley.irccloud.com)
07:25:58 gaff joins (~gaff@49.207.200.236)
07:26:30 × gaff quits (~gaff@49.207.200.236) (Client Quit)
07:26:57 <pepeiborra> how do I get a Hackage trustee to publish a revision relaxing the upper bound of (base,ghc-prim) for ekg, ekg-core, ekg-json and snap-server?
07:27:19 <pepeiborra> Or can anyone suggest a maintained alternative to EKG for telemetry/metrics ?
07:28:22 <maerwald[m]> pepeiborra: NMU takes months. I have rather poor experience with it. Just use allow-newer?
07:28:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:29:10 <pepeiborra> I'm adding EKG metrics to Haskell-Language-Server. Using allow-newer will break the Hackage build
07:29:43 <pepeiborra> (for ghc 9, that is)
07:29:52 <maerwald[m]> Then don't add it :p
07:31:30 <pepeiborra> That's why I'm asking the help of a Hackage trustee, or an alternative. It's 2021, why can't we have nice metrics?
07:33:13 × jtomas_ quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
07:35:08 jtomas_ joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
07:38:12 hyiltiz joins (~quassel@31.220.5.250)
07:43:16 × jtomas_ quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
07:48:57 morphism joins (~ret@46.245.81.26)
07:50:17 × finsternis quits (~X@23.226.237.192) (Ping timeout: 265 seconds)
07:59:49 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds)
08:00:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
08:01:28 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 252 seconds)
08:03:33 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
08:06:44 hendursa1 joins (~weechat@user/hendursaga)
08:07:28 lavaman joins (~lavaman@98.38.249.169)
08:07:36 jumper149 joins (~jumper149@80.240.31.34)
08:07:42 × kayprish quits (~kayprish@cable-188-2-246-223.dynamic.sbb.rs) (Remote host closed the connection)
08:07:43 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
08:10:09 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c808:9352:99b7:5190)
08:10:18 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:10:35 wei2912 joins (~wei2912@112.199.250.21)
08:11:38 eggplant_ joins (~Eggplanta@2600:1700:bef1:5e10:ece7:2acf:af55:ec98)
08:14:16 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c808:9352:99b7:5190) (Ping timeout: 245 seconds)
08:14:26 morphism is now known as abilean
08:14:26 × hnOsmium0001 quits (uid453710@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
08:15:17 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
08:15:19 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f1d7:4272:2e7f:2bcc)
08:15:53 abilean is now known as all
08:15:56 × eggplant_ quits (~Eggplanta@2600:1700:bef1:5e10:ece7:2acf:af55:ec98) (Ping timeout: 245 seconds)
08:15:57 all is now known as morphism
08:16:11 morphism is now known as [-all]
08:16:20 [-all] is now known as morphism
08:17:37 allbery_b joins (~geekosaur@xmonad/geekosaur)
08:17:37 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
08:17:40 allbery_b is now known as geekosaur
08:19:12 eggplant_ joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c)
08:19:20 the_proffesor joins (~theproffe@2601:282:847f:8010:818b:10e4:707d:e026)
08:19:20 × the_proffesor quits (~theproffe@2601:282:847f:8010:818b:10e4:707d:e026) (Changing host)
08:19:20 the_proffesor joins (~theproffe@user/theproffesor)
08:19:41 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f1d7:4272:2e7f:2bcc) (Ping timeout: 245 seconds)
08:20:15 × turlando quits (~turlando@user/turlando) (Ping timeout: 265 seconds)
08:20:16 turlando_ joins (~turlando@93-42-250-112.ip89.fastwebnet.it)
08:23:23 × the_proffesor quits (~theproffe@user/theproffesor) (Read error: Connection reset by peer)
08:23:26 × eggplant_ quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Ping timeout: 245 seconds)
08:23:39 the_proffesor joins (~theproffe@user/theproffesor)
08:25:06 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:30:44 kayprish joins (~kayprish@cable-188-2-246-223.dynamic.sbb.rs)
08:31:50 × OscarZ quits (~oscarz@85.194.207.78) (Quit: Leaving)
08:32:45 × kayprish quits (~kayprish@cable-188-2-246-223.dynamic.sbb.rs) (Remote host closed the connection)
08:36:15 <sm> pepeiborra: are the maintainers not responding ?
08:36:40 × beka quits (~beka@104.193.170.240) (Ping timeout: 252 seconds)
08:36:59 × morphism quits (~ret@46.245.81.26) (Ping timeout: 245 seconds)
08:37:22 chomwitt joins (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374)
08:38:18 lavaman joins (~lavaman@98.38.249.169)
08:41:39 acidjnk_new3 joins (~acidjnk@p200300d0c703cb0545eae45689590a1f.dip0.t-ipconnect.de)
08:42:58 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
08:45:16 mc47 joins (~mc47@xmonad/TheMC47)
08:49:06 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 265 seconds)
08:51:41 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
08:51:49 coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl)
08:52:47 tonyz joins (~tonyz@user/tonyz)
08:55:03 × coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Client Quit)
08:55:15 coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl)
08:55:17 gehmehgeh joins (~user@user/gehmehgeh)
08:55:37 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:59:29 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
09:03:45 × hubvu quits (sid495858@user/hubvu) (Ping timeout: 260 seconds)
09:04:28 hubvu joins (sid495858@user/hubvu)
09:07:48 <carbolymer> I believe I've hit the limit of what ConstraintKinds lets me to do: https://bpa.st/AHXQ - is there a way in which I could write `type WithBar m = ...` ?
09:10:52 Guest62 joins (~Guest62@c-73-83-26-183.hsd1.wa.comcast.net)
09:12:30 <tomsmeding> carbolymer: what happens if you move the 'forall r' inside the tuple (i.e. write it twice)
09:13:04 hyiltiz joins (~quassel@31.220.5.250)
09:13:31 <df>
09:13:40 <carbolymer> tomsmeding: that would make (MonadReader r1 m, Has Bar r2) afaik
09:14:25 <tomsmeding> oh wait you want them to be linked explicitly
09:14:37 <carbolymer> yep
09:15:09 <tomsmeding> yeah I believe this has been discussed here some time ago already, someone else had this issue and I believe the conclusion was that you can't do this with a constraint type synonym
09:15:12 <coot> @carbolymer would this worked for you: https://bpa.st/DB4A
09:15:13 <lambdabot> Unknown command, try @list
09:15:40 × Guest62 quits (~Guest62@c-73-83-26-183.hsd1.wa.comcast.net) (Quit: Ping timeout (120 seconds))
09:15:49 <tomsmeding> yeah making a bespoke typeclass is the only way I think (not 100% sure)
09:16:48 <carbolymer> tomsmeding: yeah, that was my feeling, that constraint kinds does not allow that; it would be nice to have small synonym to throw around the module instead of five constraints tho
09:17:00 <tomsmeding> carbolymer: try the type class approach :p
09:17:07 <tomsmeding> more heavy-weight but should work
09:17:33 <carbolymer> coot: good idea, will check, but I will need to create instances for class AandB, won't I?
09:18:39 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 245 seconds)
09:19:51 <tomsmeding> class (MonadReader r m, Has Bar r) => WithBar m ; instance (MonadReader r m, Has Bar r) => WithBar m
09:19:54 <tomsmeding> only one instance carbolymer
09:20:35 tfeb joins (~tfb@88.98.95.237)
09:21:30 <carbolymer> tomsmeding: Not in scope: type variable ‘r’
09:22:07 <tomsmeding> is there a good reason you don't want 'r' to be a type parameter of WithBar :p
09:22:13 <coot> carbolymer: you will also need an instance `instance (A a, B a) => AandB a`, unfortunatelly it requires `UndecidableInstances`.
09:22:48 <carbolymer> tomsmeding: yes, all I need from r is that is has instance `Has Bar r`
09:22:57 <carbolymer> coot: :/
09:23:35 <tomsmeding> carbolymer: sure, but adding r as an argument to WithBar doesn't mean you have to _use_ it in the function that has that WithBar constraint :p
09:23:42 <tomsmeding> it's kind of ugly, I admit
09:24:36 <carbolymer> either way I need to make some compromises, so maybe....
09:26:40 <carbolymer> well, this works:
09:26:40 <carbolymer> type WithBar r m = (MonadReader r m, Has Bar r) ; foo :: WithBar r m => m ()
09:26:40 <tomsmeding> yeah 'type WithBar r m = (MonadReader r m, Has Bar r)' works but is suboptimal
09:26:44 <tomsmeding> lol yes
09:27:09 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
09:27:13 <carbolymer> I think I will be able to live with this suboptimal ;) thanks!
09:27:49 × gaussrz quits (~gaussrz@2403:d400:1001:20:d2c5:d3ff:fe69:8eb5) (Ping timeout: 252 seconds)
09:32:02 fendor joins (~fendor@91.141.39.19.wireless.dyn.drei.com)
09:38:11 acidjnk joins (~acidjnk@p200300d0c703cb057cbb8d7fdd6e5a46.dip0.t-ipconnect.de)
09:38:27 × tfeb quits (~tfb@88.98.95.237) (Remote host closed the connection)
09:38:34 × juhp quits (~juhp@128.106.188.220) (Quit: juhp)
09:40:31 × acidjnk_new3 quits (~acidjnk@p200300d0c703cb0545eae45689590a1f.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
09:42:09 Hanicef joins (~gustaf@81-229-9-108-no92.tbcn.telia.com)
09:44:28 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
09:57:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:08:16 notzmv joins (~zmv@user/notzmv)
10:11:16 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
10:12:55 × tinco quits (~tinco@tinco.nl) (Quit: Lost terminal)
10:13:58 × benin03693230163 quits (~benin@183.82.24.191) (Ping timeout: 260 seconds)
10:17:31 juhp joins (~juhp@128.106.188.220)
10:17:33 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 265 seconds)
10:17:54 DNH joins (~DNH@2a02:8108:1100:16d8:8019:716c:bcf7:99b0)
10:19:32 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
10:19:45 hyiltiz joins (~quassel@31.220.5.250)
10:20:01 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds)
10:23:11 × coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
10:23:49 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
10:29:14 benin03693230163 joins (~benin@106.198.95.241)
10:30:19 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 245 seconds)
10:31:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
10:32:14 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
10:34:39 tinco joins (~tinco@tinco.nl)
10:37:17 lavaman joins (~lavaman@98.38.249.169)
10:38:33 gaussrz joins (~gaussrz@58.247.22.226)
10:42:01 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
10:42:14 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:51:07 ubert joins (~Thunderbi@178.115.77.150.wireless.dyn.drei.com)
10:51:36 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
10:53:25 Farzad joins (~FarzadBek@178.131.30.90)
10:53:58 brsvh joins (~bsc@li989-92.members.linode.com)
10:54:10 × ubert quits (~Thunderbi@178.115.77.150.wireless.dyn.drei.com) (Remote host closed the connection)
10:55:47 Topsi joins (~Tobias@dyndsl-095-033-093-060.ewe-ip-backbone.de)
11:00:55 alx741 joins (~alx741@181.196.68.60)
11:01:59 × jumper149 quits (~jumper149@80.240.31.34) (Ping timeout: 245 seconds)
11:03:04 jumper149 joins (~jumper149@80.240.31.34)
11:07:22 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
11:09:24 × brsvh quits (~bsc@li989-92.members.linode.com) (Quit: brsvh)
11:14:16 × xff0x quits (~xff0x@2001:1a81:528b:f000:ce9b:808a:c5c5:1eb1) (Ping timeout: 245 seconds)
11:17:01 jinsun joins (~quassel@user/jinsun)
11:19:25 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 265 seconds)
11:22:46 × ph88 quits (~ph88@2a02:8109:9e00:7e5c::3d56) (Ping timeout: 252 seconds)
11:23:26 × tonyz quits (~tonyz@user/tonyz) (Ping timeout: 245 seconds)
11:23:27 × ghoulguy quits (x@libera/staff/glguy) (Read error: Connection reset by peer)
11:25:52 alzgh joins (~alzgh@user/alzgh)
11:27:13 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:28:16 × acidjnk quits (~acidjnk@p200300d0c703cb057cbb8d7fdd6e5a46.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
11:29:04 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
11:29:52 hyiltiz joins (~quassel@31.220.5.250)
11:33:27 Guest007 joins (~Guest007@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
11:35:34 <sy4> how is this valid Haskell, and what would be an example value of this type? type Dfa = (State, State -> Char -> State, State -> Bool)
11:35:51 × Guest007 quits (~Guest007@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Client Quit)
11:36:15 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
11:36:34 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
11:36:36 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Client Quit)
11:37:01 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
11:38:40 f-a joins (f2a@f2a.jujube.ircnow.org)
11:38:54 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:38:57 <tdammers> "type" is just a type alias, you can alias any type you want
11:39:13 <f-a> what is the specific word for `either`, `maybe`, `bool` and friends? Recursors? Inductors?
11:39:24 <tdammers> this one here aliases a 3-tuple, where the first element is a State, the second is a function State -> Char -> State, and the third is a function State -> Bool
11:40:30 <sy4> tdammers: thank you for the helpful response!
11:42:18 <Franciman> hi f-a they are indeed recursors
11:42:27 <Franciman> they are eliminators, too
11:42:47 <Franciman> I am not sure about the difference between recursor and inductor, apparently you call them inductors when they are dependently typed
11:42:59 <Franciman> and recursors otherwise, but honestly, this is just skim reading HoTT
11:43:05 <Franciman> eliminators could be more general ^^
11:43:05 × tinco quits (~tinco@tinco.nl) (Read error: Connection reset by peer)
11:43:11 <f-a> thanks
11:43:12 × lambdap quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap)
11:43:36 lambdap joins (~lambdap@static.167.190.119.168.clients.your-server.de)
11:46:36 × mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal)
11:48:55 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
11:50:08 azimut joins (~azimut@gateway/tor-sasl/azimut)
11:51:34 × DNH quits (~DNH@2a02:8108:1100:16d8:8019:716c:bcf7:99b0) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:55:26 glguy joins (x@libera/staff/glguy)
11:56:53 xff0x joins (~xff0x@2001:1a81:528b:f000:ce9b:808a:c5c5:1eb1)
11:57:22 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
11:59:55 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
12:00:07 geekosaur joins (~geekosaur@xmonad/geekosaur)
12:08:15 × kritzefitz quits (~kritzefit@picard.host.weltraumschlangen.de) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
12:08:26 jtomas_ joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
12:08:51 kritzefitz joins (~kritzefit@picard.host.weltraumschlangen.de)
12:12:51 acidjnk joins (~acidjnk@p200300d0c703cb057cbb8d7fdd6e5a46.dip0.t-ipconnect.de)
12:17:08 hyiltiz joins (~quassel@31.220.5.250)
12:17:53 tonyz joins (~tonyz@user/tonyz)
12:23:23 rond_ joins (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438)
12:23:43 coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl)
12:24:41 × connrs quits (~connrs@user/connrs) (Ping timeout: 250 seconds)
12:24:58 sedeki joins (~textual@user/sedeki)
12:27:45 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:30:04 slowButPresent joins (~slowButPr@user/slowbutpresent)
12:35:56 × benin03693230163 quits (~benin@106.198.95.241) (Ping timeout: 245 seconds)
12:45:06 benin03693230163 joins (~benin@183.82.30.186)
12:46:06 × sedeki quits (~textual@user/sedeki) (Ping timeout: 260 seconds)
12:51:19 sprout_ joins (~quassel@2a02:a467:ccd6:1:80b9:65ea:c7e9:72cd)
12:54:37 × sprout quits (~quassel@2a02:a467:ccd6:1:9093:865d:793c:93e8) (Ping timeout: 252 seconds)
12:55:50 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
12:57:24 hololeap joins (~hololeap@user/hololeap)
13:02:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
13:02:59 × fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Quit: leaving)
13:15:03 DNH joins (~DNH@2a02:8108:1100:16d8:8019:716c:bcf7:99b0)
13:15:24 machinedgod joins (~machinedg@24.105.81.50)
13:15:37 lavaman joins (~lavaman@98.38.249.169)
13:16:40 × DNH quits (~DNH@2a02:8108:1100:16d8:8019:716c:bcf7:99b0) (Client Quit)
13:17:05 × the_proffesor quits (~theproffe@user/theproffesor) (Read error: Connection reset by peer)
13:17:32 the_proffesor joins (~theproffe@user/theproffesor)
13:22:27 xiongxin joins (~quassel@113.116.34.18)
13:22:41 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c)
13:23:39 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
13:25:07 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
13:27:11 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Ping timeout: 245 seconds)
13:30:39 × turlando_ quits (~turlando@93-42-250-112.ip89.fastwebnet.it) (Quit: turlando_)
13:31:17 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
13:31:36 turlando joins (~turlando@93-42-250-112.ip89.fastwebnet.it)
13:31:36 × turlando quits (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
13:31:36 turlando joins (~turlando@user/turlando)
13:33:05 × wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal)
13:33:45 sedeki joins (~textual@user/sedeki)
13:34:21 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
13:35:49 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
13:37:10 × sedeki quits (~textual@user/sedeki) (Client Quit)
13:38:18 max22- joins (~maxime@2a01cb08833598008b508600e86e399b.ipv6.abo.wanadoo.fr)
13:38:49 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
13:43:13 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
13:44:46 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
13:47:15 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
13:48:26 × the_proffesor quits (~theproffe@user/theproffesor) (Ping timeout: 245 seconds)
13:52:50 <Axman6> f-a: I have heard them referred to as catamorphisms - foldr is the equivalent for lists
13:53:15 hyiltiz joins (~quassel@31.220.5.250)
13:54:27 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
13:56:35 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
14:01:17 <f-a> thanks Axman6
14:04:36 × Hanicef quits (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving)
14:06:06 × obs\ quits (~obscur1ty@user/obs/x-5924898) (Read error: Connection reset by peer)
14:07:24 × benin03693230163 quits (~benin@183.82.30.186) (Quit: Ping timeout (120 seconds))
14:07:55 benin03693230163 joins (~benin@183.82.30.186)
14:08:14 × gaussrz quits (~gaussrz@58.247.22.226) (Ping timeout: 245 seconds)
14:08:49 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
14:13:48 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
14:16:21 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
14:17:02 zebrag joins (~chris@user/zebrag)
14:18:13 × acidjnk quits (~acidjnk@p200300d0c703cb057cbb8d7fdd6e5a46.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
14:18:51 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
14:19:19 arjun joins (~Srain@user/arjun)
14:20:38 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
14:22:48 × tonyz quits (~tonyz@user/tonyz) (Quit: Konversation terminated!)
14:22:49 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
14:23:38 michalz joins (~michalz@185.246.204.89)
14:24:16 hyiltiz joins (~quassel@31.220.5.250)
14:26:21 hexfive joins (~eric@50.35.83.177)
14:28:07 × coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
14:28:48 × michalz quits (~michalz@185.246.204.89) (Remote host closed the connection)
14:37:28 peter71 joins (~a@p200300ef971a68c8e4ca7f30fbe64496.dip0.t-ipconnect.de)
14:43:52 × hexfive quits (~eric@50.35.83.177) (Quit: WeeChat 3.0.1)
14:47:16 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
14:48:14 TDANG_ joins (~TDANG@2600:1700:13c1:8fe0:8023:fb4d:8e58:e262)
14:49:54 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:50:44 × TDANG quits (~TDANG@inet-177-7.ets.org) (Ping timeout: 245 seconds)
14:51:17 lavaman joins (~lavaman@98.38.249.169)
14:53:17 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
14:55:07 geekosaur joins (~geekosaur@xmonad/geekosaur)
14:55:34 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
14:56:43 × chomwitt quits (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds)
14:57:13 chomwitt joins (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374)
14:58:19 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
14:58:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
14:59:11 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
15:01:54 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds)
15:01:55 glguy is now known as ghoulguy
15:03:41 × Farzad quits (~FarzadBek@178.131.30.90) (Ping timeout: 265 seconds)
15:03:47 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
15:05:42 hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com)
15:07:56 gaussrz joins (~gaussrz@59.78.13.186)
15:09:15 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
15:11:00 × ru0mad quits (~ru0mad@82-64-17-144.subs.proxad.net) (Quit: leaving)
15:14:22 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:14:22 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
15:14:22 wroathe joins (~wroathe@user/wroathe)
15:18:00 <peter71> Consider fa *> fb. Is it possible that the RTS will evaluate fb first? Or will they be evaluated sequentially like with >>?
15:18:07 × slep quits (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (Ping timeout: 252 seconds)
15:20:07 slep joins (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net)
15:20:17 <hpc> it is possible
15:20:38 <hpc> it's also possible with (>>), they are the same thing
15:20:46 DNH joins (~DNH@2a02:8108:1100:16d8:8019:716c:bcf7:99b0)
15:21:12 <hpc> but that's evaluation, perhaps you're confusing that with ordering of effects?
15:21:20 <peter71> Maybe.
15:21:46 <hpc> evaluation is just taking an expression like (map (*2) [1..10]) and reducing it to 2:4:6:...
15:22:04 × DNH quits (~DNH@2a02:8108:1100:16d8:8019:716c:bcf7:99b0) (Client Quit)
15:22:14 <peter71> I simply want to guarantee that (putStrLn "user prompt" :: IO ()) is displayed before (getLine :: IO String)
15:22:24 <hpc> it will
15:22:24 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
15:22:35 Null_A joins (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c)
15:22:47 × dibblego quits (~dibblego@haskell/developer/dibblego) (Excess Flood)
15:23:07 dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com)
15:23:08 × dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
15:23:08 dibblego joins (~dibblego@haskell/developer/dibblego)
15:23:35 × gaussrz quits (~gaussrz@59.78.13.186) (Quit: WeeChat 3.3)
15:25:49 <peter71> My understanding is that in (fab <*> fa) I don't know if fab or fa will be evaluated first and that in (ma >>= amb) ma will always be evaluated first because the monad enforces a sequence. Is this wrong?
15:26:44 <hpc> evaluation is independent from... we'll call it "execution"
15:27:26 <hpc> and that difference is what IO captures
15:27:53 <hpc> if you did say, (++) <$> getLine <*> getLine, the result will always be the first line you typed, then the second line you typed
15:28:39 <hpc> but for something where evaluation order matters, perhaps you try (++) <$> (getLine >> error "1") <*> (getLine >> error "2")
15:29:04 <hpc> which error triggers depends on which gets evaluated first
15:29:08 × xiongxin quits (~quassel@113.116.34.18) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
15:29:21 <hpc> if we ignore errors, the only thing evaluation does is make your cpu warm :P
15:32:55 coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl)
15:33:08 <peter71> I tried your example a couple of times and it always produces the error message "1".
15:33:17 fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
15:34:06 <hpc> that might be a ghc thing
15:34:21 <hpc> strictly speaking (heehee), evaluation can happen in any order
15:34:42 <peter71> The difference between eval vs effect ordering is a hard topic for me. Is there a resource you can recommend, a book or blog post?
15:34:49 <geekosaur> right, technically there is no order but a given implementation might always do the same thing. it's allowed, not required
15:35:05 <hpc> none off the top of my head, i learned it in a very hodgepodge sort of way
15:35:17 <geekosaur> so for example changing optimizations might cause it to always produce "2"
15:35:27 <hpc> and yeah, it's pretty mind-bending
15:36:14 <peter71> And if I would use monadic operators instead would it change the semantics at all?
15:36:31 <hpc> it will be the same
15:37:31 <hpc> the thing that ultimately made it all snap into place for me was realizing evaluation and execution don't happen on their own, they're always triggered by something
15:37:43 <hpc> when you run a haskell program, a miracle occurs that makes main get executed
15:37:44 <peter71> Then why do we say a monad enforces a sequence if there is no difference?
15:38:03 <hpc> and that execution triggers evaluation however it needs to, in order to know what primitive operations to perform
15:38:47 <geekosaur> (monads don't always enforce a sequence; see Cont)
15:38:59 <hpc> it enforces sequencing of something else, not evaluation
15:39:10 <hpc> when you write (a / b), either a or b can be reduced to a number
15:39:16 <hpc> but you can't say that's the same as (b / a)
15:39:22 <hpc> same with (>>) and friends
15:39:36 <hpc> *can be reduced to a number first
15:40:09 <peter71> so a bit like commutativity vs associativity?
15:41:08 <hpc> more like commutativity vs you looking at the formula and reducing it to something more simple
15:41:35 <hpc> you know intuitively that you can start wherever you want in the expression
15:41:47 <hpc> (super complicated formula) * 0 doesn't require you to evaluate from left to right ;)
15:41:56 theproffesor joins (~theproffe@user/theproffesor)
15:47:11 <peter71> hpc: the (a / b) example is good. Let's say both could throw an error and let's say both in fact do. Then the error I see depends on the evaluatin order. But if a and b both don't go wrong then I see the same result no matter which one is evaluated first. But it would matter if I changed it to b / a.
15:48:51 × arjun quits (~Srain@user/arjun) (Ping timeout: 245 seconds)
15:48:54 theproffesor parts (~theproffe@user/theproffesor) (Leaving)
15:50:04 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
15:50:41 <hpc> exactly
15:53:44 <hpc> this idea is my favorite part of haskell, more than the laziness and type system and so on
15:54:00 Farzad joins (~FarzadBek@46.100.116.53)
15:54:20 × Farzad quits (~FarzadBek@46.100.116.53) (Client Quit)
15:54:25 <hpc> it means things like IO get completely extracted out of the language, and into things you can manipulate directly as values
15:54:35 Farzad joins (~FarzadBek@46.100.116.53)
15:55:18 DNH joins (~DNH@2a02:8108:1100:16d8:8019:716c:bcf7:99b0)
15:58:10 <hpc> and once you really internalize it, you'll start hating when you have to write "foo(function() {a; b; c;});"
15:58:51 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Ping timeout: 245 seconds)
15:58:52 <hpc> and wishing you could just write "foo $ do {a; b; c}" instead, because wrapping actions in functions just feels wrong
16:00:17 wootehfoot joins (~wootehfoo@user/wootehfoot)
16:00:42 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
16:05:28 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
16:06:24 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:06:24 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
16:06:24 wroathe joins (~wroathe@user/wroathe)
16:07:14 TranquilEcho joins (~grom@user/tranquilecho)
16:07:42 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
16:07:55 × coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
16:08:13 × Topsi quits (~Tobias@dyndsl-095-033-093-060.ewe-ip-backbone.de) (Read error: Connection reset by peer)
16:08:43 skykanin joins (~skykanin@2a01:79d:53aa:3a7c:c1d9:e465:2d77:d3f8)
16:08:56 × skykanin quits (~skykanin@2a01:79d:53aa:3a7c:c1d9:e465:2d77:d3f8) (Changing host)
16:08:56 skykanin joins (~skykanin@user/skykanin)
16:09:28 × skykanin quits (~skykanin@user/skykanin) (Client Quit)
16:10:19 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
16:11:21 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
16:14:28 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
16:15:22 wonko joins (~wjc@62.115.229.50)
16:15:29 hyiltiz joins (~quassel@31.220.5.250)
16:19:41 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 245 seconds)
16:25:28 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
16:25:58 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
16:29:07 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
16:29:43 × arahael quits (~arahael@118.211.178.62) (Ping timeout: 265 seconds)
16:29:57 econo joins (uid147250@user/econo)
16:30:23 <peter71> Another example: a1 >>= a2. Let's say a1 and a2 are both IO actions that involve syscalls, a1 is something with an HTTP request and a2 needs to access a data base. In the beginning the RTS doesn't know what a1 and a2 are at all. It starts evaluating a2 and builds a "recipe" and recognizes that it will have to make a syscall in the future when it will execute this recipe. After that the RTS starts
16:30:25 <peter71> evaluating a1 (building the recipe for a1). But then it will always _execute_ the a1 syscall before the a2 syscall. Or can the _execution_ of the a2 syscall hapen before the a2 syscall?
16:31:46 <peter71> Sorry: *can execution of a2 happen before a1?
16:31:59 gaussrz joins (~gaussrz@59.78.13.186)
16:34:19 × gaussrz quits (~gaussrz@59.78.13.186) (Client Quit)
16:34:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
16:43:34 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c)
16:43:55 arahael joins (~arahael@203-206-94-225.tpgi.com.au)
16:47:28 gaff joins (~gaff@49.207.203.220)
16:48:14 coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl)
16:49:26 × gaff quits (~gaff@49.207.203.220) (Client Quit)
16:51:03 <hololeap> a2 requires the result of a1, so probably not, unless a2 just drops the result or something
16:52:58 <hololeap> not sure if ((a1 >> a2) :: IO ()) always evaluates in the same order
16:53:00 hyiltiz joins (~quassel@31.220.5.250)
16:53:05 <int-e> unless you play games with unsafeInterleaveIO or unsafePerformIO the result doesn't really matter; the effects of a1 (including FFI calls) will take place before those of a2.
16:54:22 <int-e> really ordering effects is the main point of IO (and its sibling, ST)
16:54:37 <int-e> ordering and forcing effects, I should say
16:54:37 mc47 joins (~mc47@xmonad/TheMC47)
16:56:14 × chomwitt quits (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 260 seconds)
16:56:17 <hololeap> I would also assume that State forces evaluation in the same order every time, since it has to thread a value through a specific ordering of actions
16:57:31 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
16:58:02 <hololeap> unless one of the actions just ignores the previous value and sets it to something static... then I suppose it could split the evaluation at that point and do both pieces in parallel... if the compiler is smart enough to do that
16:59:31 <int-e> > evalState (undefined >> return 42) undefined
16:59:33 <lambdabot> 42
16:59:55 <hololeap> evalState (undefined >>= return) undefined
16:59:58 <hololeap> > evalState (undefined >>= return) undefined
17:00:00 <lambdabot> *Exception: Prelude.undefined
17:00:21 × machinedgod quits (~machinedg@24.105.81.50) (Quit: Lost terminal)
17:00:22 finsternis joins (~X@23.226.237.192)
17:00:25 chomwitt joins (~chomwitt@94.66.61.137)
17:00:42 machinedgod joins (~machinedg@24.105.81.50)
17:00:50 <hololeap> int-e: are you saying the Applicative instance of IO and ST force the evaluation order?
17:00:58 <int-e> State is pretty lazy actually. And I need to remind myself what exactly is strict in the Control.Monad.State.Strict version of it.
17:01:01 <int-e> hololeap: Yes
17:01:11 <int-e> hololeap: I mean, no, I didn't say that. But they do.
17:01:20 <hololeap> :)
17:01:37 beka joins (~beka@104.193.170.240)
17:01:38 × machinedgod quits (~machinedg@24.105.81.50) (Client Quit)
17:02:25 <hololeap> I think that the strict version of State immediately evaluates the argument of `put` instead of having it hang around in a thunk until `get` gets called
17:03:40 machinedgod joins (~machinedg@24.105.81.50)
17:04:21 jakalx joins (~jakalx@base.jakalx.net)
17:05:50 <int-e> I think the ...Strict variant is strict in the /actions/. So the example above bottoms out, but this works fine: evalState (modify undefined >> return undefined >> return 42) undefined
17:06:56 <int-e> > evalState (modify' undefined >> return 42) undefined -- this would produce bottom with the .Strict variant
17:06:57 <lambdabot> 42
17:08:51 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
17:10:47 × mbuf quits (~Shakthi@122.178.225.141) (Remote host closed the connection)
17:13:12 jinsun joins (~quassel@user/jinsun)
17:15:32 hyiltiz joins (~quassel@31.220.5.250)
17:16:16 × Null_A quits (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) (Remote host closed the connection)
17:16:35 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
17:17:05 × DNH quits (~DNH@2a02:8108:1100:16d8:8019:716c:bcf7:99b0) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:19:04 Sgeo joins (~Sgeo@user/sgeo)
17:19:28 hendursaga joins (~weechat@user/hendursaga)
17:21:06 <hololeap> % import qualified Control.Monad.Trans.State.Strict as SS
17:21:06 <yahb> hololeap:
17:21:28 <hololeap> % SS.evalState (SS.modify' undefined >> return 42) undefined
17:21:28 <yahb> hololeap: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:75:14 in base:GHC.Err; undefined, called at <interactive>:3:26 in interactive:Ghci4
17:21:51 <hololeap> % SS.evalState (SS.modify' (error "e1") >> return 42) (error "e2")
17:21:51 <yahb> hololeap: *** Exception: e1; CallStack (from HasCallStack):; error, called at <interactive>:4:27 in interactive:Ghci4
17:22:00 hippoid joins (~hippoid@c-24-12-226-47.hsd1.il.comcast.net)
17:22:12 __monty__ joins (~toonn@user/toonn)
17:22:29 <hololeap> % SS.evalState (SS.modify (error "e1") >> return 42) (error "e2")
17:22:29 <yahb> hololeap: 42
17:22:57 <hololeap> % SS.evalState (SS.put (error "e1") >> return 42) (error "e2")
17:22:57 <yahb> hololeap: 42
17:23:09 <hololeap> hm
17:23:11 <hololeap> ok
17:24:12 <hololeap> % SS.evalState (SS.put (error "e1") >> SS.get >> return 42) (error "e2")
17:24:12 <yahb> hololeap: 42
17:26:19 × xff0x quits (~xff0x@2001:1a81:528b:f000:ce9b:808a:c5c5:1eb1) (Ping timeout: 252 seconds)
17:27:05 xff0x joins (~xff0x@2001:1a81:528b:f000:94c9:4d64:7cd:883c)
17:27:09 <peter71> hololeap: I don't think a1 >> a2 necessarily always evaluate in the same order but I hope a1 always gets executed first.
17:27:49 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
17:28:44 <hippoid> I'm trying to figure out why `fmap.const` is of type `b -> f a -> f b`. I thought it would be `(b->a) -> f a -> f b`
17:29:28 chisui joins (~chisui@200116b868714200c6634ed5d4863e91.dip.versatel-1u1.de)
17:29:42 <hololeap> hippoid: just follow the type signatures
17:31:10 <hippoid> hololeap: I tried following the type signatures and working it out on paper, yet I don't see what's going on
17:31:14 <hpc> start with (.)
17:31:18 <hpc> :t (.)
17:31:20 <lambdabot> (b -> c) -> (a -> b) -> a -> c
17:31:26 <hpc> fill in fmap's type for the first argument
17:31:31 <hpc> fill in const's type for the second argument
17:31:32 × pie_ quits (~pie_bnc@user/pie/x-2818909) (Quit: pie_)
17:31:40 <hpc> and solve for a, b, c
17:31:58 <hippoid> hpc: thanks, I'm going to try that
17:32:07 pie_ joins (~pie_bnc@user/pie/x-2818909)
17:32:22 <hpc> if you start with fmap, you're going to have trouble getting anywhere, since it's not actually the "root" of the expression
17:32:34 <geekosaur> it alos helps to rename the variables since the a -> b -> a in const is different from the a, b, c in (.)
17:33:28 <hololeap> fmap . const === \myVal myFunctor -> fmap (const myVal) myFunctor
17:34:24 <hololeap> === \myVal myFunctor -> fmap (\_ -> myVal) myFunctor
17:34:57 <hololeap> it also ends up just being (<$)
17:34:57 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
17:35:00 <hololeap> :t (<$)
17:35:01 <lambdabot> Functor f => a -> f b -> f a
17:35:25 MQ-17J joins (~MQ-17J@8.6.144.117)
17:35:43 <hippoid> hpc: what does "root" of expresssion mean?
17:36:08 <hpc> hippoid: imagine you're a compiler or parser or something, and you're given an expression
17:36:17 <hpc> you parse it into a tree
17:36:22 <hpc> and (.) here is the root of that tree
17:36:33 <hpc> it has two leaf nodes, fmap and const
17:36:56 <hippoid> ahhh, that makes sense
17:37:45 <hololeap> > 4 <$ Just 10
17:37:47 <lambdabot> Just 4
17:38:15 <hololeap> it just replaces the value in the functor with the first value you give it
17:39:08 <hpc> hololeap: don't give away the answer for free
17:39:17 <hololeap> haha sorry
17:39:20 <hpc> in #haskell we don't lead a horse to water, we teach a horse to fish
17:39:33 <hololeap> lol
17:43:19 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
17:43:56 aegon joins (~mike@174.127.249.180)
17:45:25 hyiltiz joins (~quassel@31.220.5.250)
17:46:30 × rond_ quits (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed)
17:46:52 × hippoid quits (~hippoid@c-24-12-226-47.hsd1.il.comcast.net) (Quit: Ping timeout (120 seconds))
17:47:03 hippoid joins (~hippoid@c-24-12-226-47.hsd1.il.comcast.net)
17:51:09 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:51:10 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
17:51:10 wroathe joins (~wroathe@user/wroathe)
17:57:56 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
17:59:26 × hendursaga quits (~weechat@user/hendursaga) (Remote host closed the connection)
18:01:38 wildsebastian joins (sid324688@id-324688.ilkley.irccloud.com)
18:06:59 × hippoid quits (~hippoid@c-24-12-226-47.hsd1.il.comcast.net) (Quit: Client closed)
18:09:02 ss4 joins (~wootehfoo@user/wootehfoot)
18:11:02 <maerwald> dhall doesn't even have string comparsion? ugh
18:13:01 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds)
18:20:43 notzmv joins (~zmv@user/notzmv)
18:26:53 × fendor quits (~fendor@91.141.39.19.wireless.dyn.drei.com) (Remote host closed the connection)
18:27:12 fendor joins (~fendor@91.141.39.19.wireless.dyn.drei.com)
18:27:28 × kawpuh quits (~kawpuh@66.42.81.80) (Quit: Ping timeout (120 seconds))
18:27:33 × Nahra quits (~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection)
18:27:39 kawpuh joins (~kawpuh@66.42.81.80)
18:27:49 × kaizen quits (sid501599@helmsley.irccloud.com) (Ping timeout: 245 seconds)
18:27:49 × kristjansson_ quits (sid126207@5.254.36.57) (Ping timeout: 245 seconds)
18:27:55 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
18:27:57 × grfn quits (sid449115@helmsley.irccloud.com) (Read error: Connection reset by peer)
18:28:06 grfn joins (sid449115@id-449115.helmsley.irccloud.com)
18:28:21 Nahra joins (~user@static.161.95.99.88.clients.your-server.de)
18:29:29 × hook54321 quits (sid149355@user/hook54321) (Ping timeout: 245 seconds)
18:29:40 kuribas joins (~user@ptr-25vy0i70f4sqphtlqko.18120a2.ip6.access.telenet.be)
18:30:15 kaizen joins (sid501599@id-501599.helmsley.irccloud.com)
18:30:27 × coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
18:30:31 kristjansson_ joins (sid126207@id-126207.tinside.irccloud.com)
18:30:38 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:31:05 × max22- quits (~maxime@2a01cb08833598008b508600e86e399b.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
18:33:26 hook54321 joins (sid149355@user/hook54321)
18:36:27 × T_S_ quits (sid501726@uxbridge.irccloud.com) (Read error: Connection reset by peer)
18:36:40 T_S_ joins (sid501726@id-501726.uxbridge.irccloud.com)
18:37:21 × FragByte quits (~christian@user/fragbyte) (Quit: Quit)
18:37:32 FragByte joins (~christian@user/fragbyte)
18:40:15 pavonia joins (~user@user/siracusa)
18:42:53 × pie_ quits (~pie_bnc@user/pie/x-2818909) (Quit: No Ping reply in 180 seconds.)
18:42:53 × VoidNoir0 quits (~VoidNoir0@72.80.203.52) (Quit: Ping timeout (120 seconds))
18:42:53 × fjmorazan quits (~quassel@user/fjmorazan) (Ping timeout: 245 seconds)
18:43:14 × Eoco quits (~ian@x-160-94-179-157.acm.umn.edu) (Ping timeout: 245 seconds)
18:43:30 Eoco joins (~ian@x-160-94-179-157.acm.umn.edu)
18:44:15 pie_ joins (~pie_bnc@user/pie/x-2818909)
18:47:21 × peter71 quits (~a@p200300ef971a68c8e4ca7f30fbe64496.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
18:48:33 × ss4 quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
18:50:59 <dsal> I really wanted to like Dhall. It seemed to do all the things I wanted.
18:51:26 <dsal> At least, like it could. There's that new one that looks like JSON. I didn't look into it that much because I'm pretty sure it's just differently disappointing.
18:52:56 lavaman joins (~lavaman@98.38.249.169)
18:55:52 <sm> was that https://hackage.haskell.org/package/config-schema dsal ?
18:56:03 <sm> https://glguy.net/config-demo rather
18:57:34 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
18:58:25 max22- joins (~maxime@2a01cb08833598006e737bbcf6bcf547.ipv6.abo.wanadoo.fr)
19:02:15 × chisui quits (~chisui@200116b868714200c6634ed5d4863e91.dip.versatel-1u1.de) (Ping timeout: 256 seconds)
19:04:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
19:10:04 × wildsebastian quits (sid324688@id-324688.ilkley.irccloud.com) ()
19:12:39 wildsebastian[m] joins (~wildsebas@2001:470:69fc:105::1:14b1)
19:14:28 × Farzad quits (~FarzadBek@46.100.116.53) (Quit: Leaving)
19:15:01 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
19:15:18 hendursaga joins (~weechat@user/hendursaga)
19:20:08 <maerwald> new aeson release already breaking lots of packages... :D
19:21:31 <awpr> presumably this is one that addresses the lack of salting? I didn't hear what resolution they ended up choosing
19:22:12 <maerwald> an API breaking solution that abstracts over 'KeyMap'
19:23:24 <awpr> so packages are broken by version bounds rejecting 2.0, or by incorrect version bounds and failing to compile?
19:23:32 <maerwald> both
19:23:41 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
19:24:52 <maerwald> conversion isn't really hard
19:24:58 wildsebastian[m] is now known as wildsebastian
19:26:00 <maerwald> but you know... getting maintainers to actually patch it is
19:28:05 <awpr> I don't think any of my packages have aeson deps, but I'll double-check
19:28:43 × wildsebastian quits (~wildsebas@2001:470:69fc:105::1:14b1) (Quit: Reconnecting)
19:28:48 <aegon> I'm trying to figure out a way to encode unique message id's -> message type for encoding / decoding a messageID / Bytestring pair but I'm not sure what extensions will get me there.
19:28:54 <aegon> Here's the current thing I'm running with
19:28:57 wildsebastian joins (~wildsebas@2001:470:69fc:105::1:14b1)
19:28:57 <aegon> https://paste.tomsmeding.com/qsCMpGYA
19:29:13 otulp joins (~otulp@ti0187q162-3172.bb.online.no)
19:31:31 <geekosaur> no aeson deps in xmonad, not even in -extras
19:40:03 <sm> I'll ask this here too: a practical haskell puzzle: how would you play a continuous sound, and vary the volume dynamically while it plays ?
19:40:16 <fuzzypixelz> is it just me or is stack build/test very slow?
19:40:45 <sm> fuzzypixelz: that entirely depends, but --fast is a quick way to speed it up a bit
19:41:02 <maerwald> fuzzypixelz: that's a pretty generic question
19:41:10 <maerwald> slow compared to what?
19:41:50 <sm> are you talking about installing-ghc-and-libs-before-building-my-thing, or just rebuilding-my-thing ?
19:42:29 <fuzzypixelz> compared to GHC? I'm only depending on Text and Megaparsec and stack run takes about 8 seconds _every time_, even after minor changes
19:42:36 <fuzzypixelz> just rebuilding
19:43:01 <sm> is it recompiling something ? or is this just a constant startup delay ?
19:43:07 <fuzzypixelz> to be fair I have all my lib in a 300 liner
19:43:34 <fuzzypixelz> but I did not know about --fast so I'll check it out
19:43:38 <kuribas> Does quickcheck try small values first, or is it completely random?
19:43:51 <fuzzypixelz> yes it's recompiling the ... 300 lines of my Lib.hs
19:44:09 ec joins (~ec@gateway/tor-sasl/ec)
19:44:15 <sm> is the compilation taking 8 seconds ? or the linking ?
19:45:43 <sm> you can avoid the slow linking step by using ghcid [-T main] instead of stack build/test/run
19:48:39 × tv quits (~tv@user/tv) (Ping timeout: 245 seconds)
19:49:04 <fuzzypixelz> I'd say the compilation is the one taking the longest. with --fast I'm down to 3-4 secs
19:49:29 × barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (Ping timeout: 245 seconds)
19:49:35 <fuzzypixelz> once the compilation is over the linking is almost instant
19:50:16 barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk)
19:50:25 <sm> ok, you could experiment with your source to see what's slow - it might be something you could change
19:50:34 <fuzzypixelz> if I do split my code into multiple source files, will I benefit from unchanged compiled parts
19:50:35 <sm> or a known slow case for your ghc version, which a different ghc version might handle better
19:50:35 <fuzzypixelz> ?
19:50:45 <sm> yes
19:50:48 tv joins (~tv@user/tv)
19:50:55 × jumper149 quits (~jumper149@80.240.31.34) (Ping timeout: 252 seconds)
19:51:06 × mei quits (~mei@user/mei) (Quit: mei)
19:51:40 <sm> are you generating a lot of code with derive or TH, perhaps
19:51:40 <fuzzypixelz> hmm, where can I read up on on module system? I've always put it off
19:51:59 jumper149 joins (~jumper149@80.240.31.34)
19:52:11 <fuzzypixelz> oh I have derive Eq on all my types
19:52:11 <sm> the haskell language report I guess
19:52:22 <fuzzypixelz> TH?
19:52:33 <sm> that doesn't sound slow, but worth comparing without it.. TH is template haskell
19:53:10 <geekosaur> Eq should be pretty fast since it generates very little code
19:53:27 <geekosaur> Generic's the really slow derive
19:54:40 <sm> regarding my sound question, would anyone have an example or a (penetrable) lib for synthesizng audio in a streaming way ?
19:56:24 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
19:57:32 the_proffesor joins (~theproffe@user/theproffesor)
20:00:20 <hololeap> sm: there's the synthesizer-* packages, but I couldn't wrap my head around them last time I tried
20:00:36 <fuzzypixelz> is there a variant of zipWith that only cosumes two elements if they both satisfy some predicate?
20:00:40 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
20:01:11 coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl)
20:01:26 <fuzzypixelz> as in zipWith___ :: (a -> b -> Maybe c) -> [a] -> [b] -> [c]
20:01:41 <sm> thanks
20:01:44 <fuzzypixelz> no that doesn't make sense
20:01:52 <sm> likewise with sox lib
20:05:16 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 252 seconds)
20:06:19 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
20:06:28 hyiltiz joins (~quassel@31.220.5.250)
20:07:00 juhp joins (~juhp@128.106.188.220)
20:07:41 <dsal> :t catMaybes . zipWith
20:07:42 <lambdabot> error:
20:07:42 <lambdabot> • Couldn't match type ‘[a] -> [b] -> [c]’ with ‘[Maybe a1]’
20:07:42 <lambdabot> Expected type: (a -> b -> c) -> [Maybe a1]
20:07:55 <dsal> Oh right. Something like that, though.
20:10:22 <maerwald> sm: did you check your aeson bounds? :>
20:11:11 <sm> some adjustments now needed, eh ?
20:11:18 × kimjetwav quits (~user@2607:fea8:235f:9730:44bb:5259:c248:1d7c) (Ping timeout: 260 seconds)
20:11:25 <maerwald> if you access the Object Hashmap
20:11:53 <sm> thanks, we shall see!
20:12:29 <maerwald> sm: https://paste.tomsmeding.com/WUjkytRu
20:12:39 <maerwald> there are some examples
20:12:53 acidjnk joins (~acidjnk@p200300d0c703cb057cbb8d7fdd6e5a46.dip0.t-ipconnect.de)
20:12:55 <sm> thanks maerwald
20:13:23 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
20:13:35 <hololeap> :t \f xs ys -> filter (\(x,y) -> f x y) (zip xs ys) -- fuzzypixelz
20:13:36 <lambdabot> (t1 -> t2 -> Bool) -> [t1] -> [t2] -> [(t1, t2)]
20:13:47 machinedgod joins (~machinedg@24.105.81.50)
20:13:51 × jtomas_ quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 245 seconds)
20:14:06 d34df00d joins (~d34df00d@2600:1700:8c60:3a10::48)
20:14:11 <d34df00d> Hi!
20:14:28 <geekosaur> œ
20:14:36 <sm> folks here might enjoy https://news.ycombinator.com/item?id=28794614 (small haskell compilers)
20:14:41 <hololeap> there's also padZip from the semialign package if the lists are of different lengths
20:14:54 <d34df00d> What's the library of choice nowadays to quickly plot logarithmic time distribution of some performance measurements?
20:15:07 jtomas_ joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
20:15:07 <d34df00d> I typically use Charts for that, but last time I did that was a year or two ago and I've forgotten its API again.
20:16:26 <aegon> d34df00d: vega-lite seems pretty good, but its the only lib i've used so there are prolly better out there
20:17:01 <d34df00d> aegon: yay, never heard of that, thanks!
20:17:32 <zero> is it possible to preserve color when running :!commands in ghci?
20:17:36 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 245 seconds)
20:17:52 × qwedfg quits (~qwedfg@user/qwedfg) (Read error: Connection reset by peer)
20:18:26 × xff0x quits (~xff0x@2001:1a81:528b:f000:94c9:4d64:7cd:883c) (Ping timeout: 245 seconds)
20:18:29 <aegon> d34df00d: np, happy library travels :)
20:18:38 <geekosaur> --color=always option for those commands that support it
20:19:06 <geekosaur> I think :! always goes though a pager so most commands will refuse to use colors
20:19:14 <aegon> d34df00d: this is a good run down https://hackage.haskell.org/package/hvega-0.4.0.0/docs/Graphics-Vega-Tutorials-VegaLite.html
20:19:17 xff0x joins (~xff0x@2001:1a81:528b:f000:e4dd:6ceb:f4d5:b9b2)
20:19:32 <zero> geekosaur: oh that's my mistake. im piping the output to less
20:19:39 <zero> so this is more a less question
20:19:42 <zero> sorry
20:20:07 <geekosaur> you still need something like --colors=always because otherwise the command will not output colors at all
20:20:18 <awpr> well, ghci also prevents shell commands from having color. maybe it's a ghci feature request to launch shell commands via a pty?
20:20:21 <geekosaur> there's also a less option to make it try to understand the color escapes
20:20:57 <geekosaur> awpr, it shouldn't need one normally since it'd be outputting to the current tty. unless, as I said, it pipes output to a pager anyway
20:21:02 × nl3dee quits (~nl3dee@ns388898.ip-176-31-255.eu) (Ping timeout: 245 seconds)
20:21:05 <hololeap> aegon: isn't vega some jupyter thing?
20:21:09 <sm> d34df00d: easyplot was mentioned yesterday. There's also r things if you're into r
20:21:29 <awpr> it evidently creates a pipe to talk to the subprocess, since it makes them default to no-color
20:21:55 qwedfg joins (~qwedfg@user/qwedfg)
20:21:59 <awpr> or maybe you mean "normally" as in "if it's doing things in the traditional way", in which case, it apparently isn't
20:23:00 <aegon> easyplot seems way simpler to use. hololeap possibly, i first ran into it working with hasktorch and that group is used to jupyter tools
20:23:27 <aegon> hololeap: it doesn't seem to have any hard ties though, i read it like a d3 style tool https://vega.github.io/vega-lite/
20:25:14 <aegon> outputting html seems overboard for simple graphs though, gonna read through easyplot, sounds like a better go-to for simple graphs
20:25:40 <sm> hvega is the one if you want pretty charts I think
20:25:48 <geekosaur> I think it's less -m to interpret escapes
20:26:01 <idnar> -R
20:26:09 <geekosaur> ah
20:27:53 <hololeap> aegon: ok, I just got confused last time I looked into that whole ecosystem
20:28:53 f-a parts (f2a@f2a.jujube.ircnow.org) ()
20:30:21 <sm> d34df00d: and there's also command-line tools like https://github.com/GregorySchwartz/ploterific
20:32:34 <d34df00d> Yay, thank you for the pointers!
20:32:42 <d34df00d> Onwards to making charts!
20:33:55 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 250 seconds)
20:35:34 acidjnk_new joins (~acidjnk@pd9e0b933.dip0.t-ipconnect.de)
20:39:33 × acidjnk quits (~acidjnk@p200300d0c703cb057cbb8d7fdd6e5a46.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
20:40:06 jaitoon joins (~Jaitoon@188.241.156.2)
20:41:01 <jaitoon> Hello, I have a question. If lists in Haskell are immutable, then why does the "length" function take linear time? Shouldn't the size be set and stored when the list is defined if it's immutable? Why would we need to traverse the whole linked list?
20:41:25 × awth13 quits (~awth13@user/awth13) (Quit: ZNC 1.8.2 - https://znc.in)
20:41:40 × bbear quits (~znc@21212.s.t4vps.eu) (Quit: ZNC 1.7.4 - https://znc.in)
20:41:41 awth13 joins (~awth13@user/awth13)
20:41:48 <geekosaur> who says the size is stored anywhere?
20:41:59 <geekosaur> also that's not quite what "immutable" means
20:42:03 bbear joins (~znc@21212.s.t4vps.eu)
20:42:20 <awpr> also, who says the size is finite?
20:42:24 × shailangsa quits (~shailangs@host217-39-45-200.range217-39.btcentralplus.com) (Killed (NickServ (GHOST command used by shailangsa_)))
20:43:21 <awpr> supposing you were to define lists s.t. they cache their size (which is a reasonable thing to want in some cases), then the size would be problematic for `let yes = "yes" : yes in yes`
20:44:05 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 245 seconds)
20:44:29 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
20:44:29 <aegon> jaitoon: if you want linear time and more c like lists for some domain theres Vector and Sequence
20:44:36 lambdabot joins (~lambdabot@silicon.int-e.eu)
20:44:36 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
20:44:36 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
20:45:20 <awpr> so, storing the size on the head of the list would make lists less useful as a streaming control structure, and more useful as a data structure. the problem is, they're still awful as a data structure, and they're meant to be good as a control structure
20:46:02 <fuzzypixelz> is there is a function/operator to take two f :: a -> Bool and g :: a -> Bool and return h :: a -> Bool s.t. "h a == f a || g a" ?
20:46:36 <d34df00d> awpr: ideally finite lists and infinite lists would be separate entities, because data and codata and all that.
20:46:42 Morrow joins (~Morrow@176.12.156.255)
20:47:30 brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d)
20:47:30 <fuzzypixelz> But maybe again just a lambda is simpler
20:47:42 <monochrom> I gave an exam question about "so you want a finite list type to store its own length..."
20:47:50 the_proffesor parts (~theproffe@user/theproffesor) (Leaving)
20:48:15 × euandreh quits (~euandreh@2804:14c:33:9fe5:9d95:c71:11e4:3e0f) (Quit: WeeChat 3.2)
20:48:34 euandreh joins (~euandreh@2804:14c:33:9fe5:9d95:c71:11e4:3e0f)
20:48:51 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
20:48:53 <Morrow[m]> fuzzypixelz: liftA2 (||)
20:49:12 <sm> can a haskell program test at runtime if a C lib is present, and then dynamically load it and start using it if so ?
20:50:04 <sm> also, relatedly: how hard would it be to make stack/cabal's script interpreter mode also able to download C libraries ?
20:50:05 <aegon> sm: yes but i forget the library
20:50:09 peter71 joins (~a@p200300ef971a68c8e4ca7f30fbe64496.dip0.t-ipconnect.de)
20:50:23 <aegon> sm: er, the module, i think theres info in ghcs user docs
20:50:34 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
20:50:40 <sm> aegon, thanks
20:50:53 justsomeguy joins (~justsomeg@user/justsomeguy)
20:51:15 <aegon> sm: https://downloads.haskell.org/ghc/latest/docs/html/users_guide/shared_libs.html#finding-shared-libraries-at-runtime
20:51:23 fjmorazan joins (~quassel@user/fjmorazan)
20:52:07 <aegon> sm: theres a module that does dynamic loading and then can give handles to functions given a symbol and all that jazz but I'm having trouble finding it, hopefully someone can link in the channel
20:52:17 <sm> nice! I'm thinking about using this to depend on say SDL-mixer but degrade gracefully when it's not installed
20:52:48 <sclv> sm: https://hackage.haskell.org/package/dynamic-linker-template
20:52:57 hyiltiz joins (~quassel@31.220.5.250)
20:56:13 <sm> thanks!
20:59:15 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Remote host closed the connection)
20:59:27 × kuribas quits (~user@ptr-25vy0i70f4sqphtlqko.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
20:59:45 <aegon> sm, this is the jumping off point I found when looking into it last time https://wiki.haskell.org/Foreign_Function_Interface#Dynamic_function_call has a ton of info on all that stuff
20:59:50 <geekosaur> sm, re downloading, the problem there is coming up with a registry of such libraries. or if you want to use youyr system package manager, first you have to figure out which package manager the system uses, then the package name which may not be the same as the C library, then you need some way to do installs as root…
21:01:07 <sm> yes indeed. Still I wonder how far one could get - perhaps just a few high value C libs, perhaps just certain on OS's/with certain system packaging tools available
21:01:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:02:06 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:02:33 <aegon> i can't tell, does ghc support dynamic linking on windows at the moment? it looks like maybe not
21:03:55 <aegon> i mean importing dll's on windows at runtime vai LoadLibrary etc, it looks like its only support in *nix land
21:04:35 <geekosaur> I have a vague recollection of LoadLibrary breaking badly on Windows when they tried it
21:05:20 <sm> ah. Yes that sounds rather likely
21:05:40 <sm> that would be the first platform to test
21:05:49 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:05:49 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
21:05:49 wroathe joins (~wroathe@user/wroathe)
21:06:17 <sm> another though is to use conditional compilation (CPP), if that works in a stack script
21:06:24 <sm> thought
21:07:03 <geekosaur> something about having to link in a separate libc for the dynamic libraries, and then any heap-stored CRT stuff breaks
21:07:09 <geekosaur> iirc
21:08:47 falafel joins (~falafel@2603-8000-d800-688c-f8c4-fecf-5832-bdd3.res6.spectrum.com)
21:11:04 × coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
21:11:31 <fuzzypixelz> I wrote something kind of ugly, using `takeWhile1P (\c -> c `elem' ['a'..'z'] || c == '.')` but because I don't care for the dots, I want to drop them so I `filter (\= '.')`
21:12:56 <sm> no, I think CPP does not work in a stack script
21:12:57 <fuzzypixelz> I read through https://hackage.haskell.org/package/parser-combinators-1.3.0/docs/Control-Monad-Combinators.html but there doesn't seem to be any combinator(s) for "takeIfPelseifQdrop""
21:13:44 <fuzzypixelz> chaining filter and takWhileP works but maybe it could be better?
21:13:52 <sm> it doesn't like the shebang line. A pity.
21:18:21 sm thinks about sdl2-foo-compat libs that would always build
21:18:47 <aegon> geekosaur: :( Thats rough, reading up on it doesn't give me much hope for dynamic loading to work out on windows
21:19:02 shailangsa joins (~shailangs@host217-39-45-200.range217-39.btcentralplus.com)
21:19:19 × beka quits (~beka@104.193.170.240) (Read error: Connection reset by peer)
21:19:52 <aegon> but then if one were to make a haskell game engine you couldn't really define a clean seperation point for character or game mode logic to be reimplimented externally for mods
21:20:46 aegon cries in the corner and makes more coffee to smother the existential despair
21:20:47 <sm> how do you mean aegon ?
21:21:46 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 245 seconds)
21:21:46 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
21:21:58 <sm> oh, you're thinking about plugin user modules written in haskell to be loaded by game
21:22:17 <aegon> quake 3 had a cool trick where it defined functions for the core engine to call to play out game logic, modders could do crazy stuff with mods because it didn't have to be handled by some engine scripting language, they could literally write new dll's / so's that implemented the exposed functions to be loaded at runtime and durastically extend or change engine behavior for their mod
21:22:23 <aegon> yeah
21:22:47 <aegon> i was hoping someday to experiment with recreating that sort of thing in haskell, but the windows issue is a new found roadblock
21:22:57 <sm> I'm just trying to have basic sound working for some people without making the app completely uninstallable
21:23:10 <aegon> i didn't do my research thoroughly enough, stopped at finding a LoadLibrary path for *nix
21:23:10 hippoid joins (~hippoid@c-24-12-226-47.hsd1.il.comcast.net)
21:24:19 <sm> there's the xmonad (and hledger, kind of) solution: make your mod the top level app, have it call the engine
21:25:42 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
21:28:12 <aegon> thats an interesting work around. Theo nly extra thing that imposes is that if the "mod" was implemented in a differnt language and compiled down you'd need to load the ghc runtime in that and manage its lifecycle
21:28:22 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c)
21:30:21 <aegon> i've never tried going that direction (external language -> haskell module). If everything is written in haskell the module as the top level seems the same. Anyone have experience trying to run some haskell code from c or similar war stories :)
21:31:59 × Morrow quits (~Morrow@176.12.156.255) (Ping timeout: 250 seconds)
21:33:31 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
21:35:29 <sm> realistically, I think a haskell game would use lua as its extension language
21:35:38 <sm> like pandoc
21:36:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
21:36:17 <sm> until we have an easily-embeddable haskellscript
21:37:59 <geekosaur> there is a mechanism for running Haskell from C
21:38:01 × falafel quits (~falafel@2603-8000-d800-688c-f8c4-fecf-5832-bdd3.res6.spectrum.com) (Ping timeout: 245 seconds)
21:38:17 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
21:38:34 <geekosaur> the basics are documented in the H2010 Report, ghc's additions are in its user guide
21:42:28 jgeerds joins (~jgeerds@55d4da80.access.ecotel.net)
21:42:36 DNH joins (~DNH@2a02:8108:1100:16d8:6451:5847:fe72:2ba1)
21:43:13 falafel joins (~falafel@2603-8000-d800-688c-f8c4-fecf-5832-bdd3.res6.spectrum.com)
21:45:49 <fuzzypixelz> I found (in Megaparsec.Char.Lexer) this: `data SP = SP !Integer {-# UNPACK #-} !Int`
21:46:16 <fuzzypixelz> what are the '!' before the types and the UNPACK extension for ?
21:46:23 <fuzzypixelz> https://hackage.haskell.org/package/megaparsec-9.2.0/docs/src/Text.Megaparsec.Char.Lexer.html#dotDecimal_
21:48:22 <aegon> fuzzypixelz: strictness annotations and using raw literals i think
21:48:48 <geekosaur> UNPACK means the value is stored directly instead of storing a pointer to it
21:48:49 <aegon> (no thunks or wrappers, like a struct by value)
21:48:52 justsomeguy joins (~justsomeg@user/justsomeguy)
21:49:01 <aegon> i'm wrong :P
21:49:42 <fuzzypixelz> does UNPACK only apply to the first value?
21:49:45 <geekosaur> it only works with simple values (one constructor, and I think it can only have one field as well?)
21:49:50 <fuzzypixelz> or .. the second?
21:49:50 × justsomeguy quits (~justsomeg@user/justsomeguy) (Client Quit)
21:50:15 <geekosaur> the UNPACK comes before the value to be unpacked. you'd need multiple UNPACK pragmas to unpack multiple fields
21:50:39 <fuzzypixelz> and ... what about the !s
21:50:53 <geekosaur> anyway this is just an implementation detail that doesn't change usage, just does some manual optimization
21:51:14 <fuzzypixelz> oh alright so I don't care for it then
21:51:21 <geekosaur> those indicate the field is strict (evaluated immediately when stored, instead of possibly storing a pointer to a computation that produces the final value)
21:51:23 <fuzzypixelz> still, would be nice to know
21:51:42 <geekosaur> which is what aegon meant by "thunk"
21:52:18 awpr adds another bullet point to his imaginary "why we should think about making a Haskell Syntax 2.0" list
21:52:20 <geekosaur> basically thunks are how laziness happens: the pointer to a "value" can instead be a pointer to code that computes the value when it's needed
21:52:35 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
21:52:47 <fuzzypixelz> you mean if I say `SP (2+3) (sum [1..]) it will immediatly start counting instead of later when I want my SP ?
21:53:06 hyiltiz joins (~quassel@31.220.5.250)
21:53:07 <awpr> it could be called Haskell 2077, because: a) that's when it'd be ready, b) it'd be full of bugs at launch, and c) it'd be very futuristic
21:53:17 <geekosaur> fuzzypixelz, yes
21:53:25 <geekosaur> which means it would hang
21:53:45 <geekosaur> you have to be fairly careful in the presence of strictness
21:54:11 <geekosaur> usually we don't annotate things, and the compiler will try to figure out what should be made strict
21:54:16 <fuzzypixelz> well strictness is the enemy of laziness afterall
21:54:17 <awpr> wait, I think the answer is no: "later when I want my SP", i.e. when you force the SP, is when it'd be evaluated
21:54:20 <geekosaur> but sometimes you need to give it some help
21:54:54 <geekosaur> the strictness annotation should be applied when the SP is built,m not when it is demanded
21:55:07 <awpr> but it doesn't make the SP be forced when it otherwise wouldn't be
21:55:28 <awpr> it just makes it so that forcing the SP constructor also forces the fields
21:55:37 <aegon> fuzzypixelz: $! is similar but for expressions if you run into it later
21:55:57 bradyt joins (~bradyt@user/bradyt)
21:56:03 bradyt parts (~bradyt@user/bradyt) ()
21:56:11 Morrow joins (~Morrow@176.12.156.255)
21:57:23 <awpr> actually my phrasing was a bit misleading: it makes it so that forcing the thunk that evaluates to an SP constructor must also involve forcing the fields so that they can have been put into that SP constructor
21:57:48 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
22:00:09 <awpr> not suggesting anything you said was wrong, just that I think you're answering the question from a perspective of assuming "now" = "when the SP is forced", but I suspect the question was asked from a perspective of "now" = "some time earlier than that when the SP thunk is built"
22:00:42 <dsal> Argh. This project is using ormolu and I just can't deal with having one word per line. This is a crime against humanity.
22:00:43 <geekosaur> yeh, hard to tell from what was asked
22:00:59 <geekosaur> but then they might not have thought about the fact that laziness means there's a difference
22:01:22 <awpr> o
22:01:22 <awpr> r
22:01:22 <awpr> m
22:01:22 <awpr> o
22:01:22 <awpr> l
22:01:23 <awpr> u
22:01:28 <geekosaur> …laziness can be really difficult to reason about
22:01:37 <dsal> OMG, yeah, awpr
22:02:03 <dsal> Also one line for ] and then another line for ) -- it somehow doesn't put $ on its own line.
22:02:05 Null_A joins (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c)
22:02:07 Rembane hands dsal an unormolu
22:03:14 <jaitoon> is there anything like this for windows or linux?http://haskellformac.com/
22:03:35 × hippoid quits (~hippoid@c-24-12-226-47.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
22:03:46 <dsal> jaitoon: Just use VS Code?
22:05:28 <geekosaur> nothing that fancy, no. someone made a start at one (manatee) and promptly vanished into some large corporation
22:05:56 × jtomas_ quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 245 seconds)
22:06:20 <geekosaur> so it's 10 years dead :(
22:06:32 MorrowM joins (~MorrowM_@176.12.156.255)
22:06:57 <jaitoon> that's sad
22:07:09 <jaitoon> dsal: is it as good
22:07:11 <Cajun> yeah vscode or emacs (its personal preference) is your best bet. the experience isnt even that bad
22:07:24 <jaitoon> i'm completely new but i've just been using vim
22:07:56 <Cajun> i couldnt imagine what a haskell IDE would even be like.. intellij is so complicated, yet most of it is never used
22:07:59 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:08:34 <aegon> i use neovim and haskell-language-server with nvim.coc and its been good to me
22:09:01 <Cajun> yeah vim is a good choice too. a lot of people like vscode/emacs because you get to utilize the HLS for pre-compilation error checking
22:09:19 <Cajun> but whatever works *shrug*
22:09:21 <dsal> I use emacs, but never got hls working. heh
22:10:06 <aegon> i use hls with vim :P
22:10:27 <hololeap> hls with kate here
22:14:10 CnnibisIndica is now known as CannabisIndica
22:21:11 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:23:22 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 260 seconds)
22:24:16 × falafel quits (~falafel@2603-8000-d800-688c-f8c4-fecf-5832-bdd3.res6.spectrum.com) (Remote host closed the connection)
22:26:37 × tchakka_ quits (~tchakkazu@static-47-180-28-65.lsan.ca.frontiernet.net) (Remote host closed the connection)
22:27:25 syntactic_sugar joins (~amoljha@2601:644:8601:2e30::822c)
22:36:40 <fuzzypixelz> If I'm writing a Show instance for Type and I have a bunch of constructors where I just want to run show on their inner value,
22:37:17 <fuzzypixelz> do I have to type in show (Constructor1 x) = show x, show (Constructor1 y) = show x ...
22:37:28 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:37:47 <fuzzypixelz> given that some _other_ constructors have "custom" behaviour
22:38:31 × DNH quits (~DNH@2a02:8108:1100:16d8:6451:5847:fe72:2ba1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:40:34 × MorrowM quits (~MorrowM_@176.12.156.255) (Read error: Connection reset by peer)
22:40:34 × Morrow quits (~Morrow@176.12.156.255) (Read error: Connection reset by peer)
22:43:01 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
22:43:54 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 276 seconds)
22:44:03 <geekosaur> first off, custom Show instances are disrecommended becuase Show is best used for debugging, not pretty-printing. There are pretty-printing libraries for that
22:44:13 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
22:44:13 × euandreh quits (~euandreh@2804:14c:33:9fe5:9d95:c71:11e4:3e0f) (Ping timeout: 252 seconds)
22:44:23 <geekosaur> second, yes if you *do* do that then you have to write it all out manually
22:45:22 <fuzzypixelz> aha! what pretty printing libraries do you recommend? (I really did think Show was peak Haskell)
22:45:32 ChaiTRex joins (~ChaiTRex@user/chaitrex)
22:45:43 × Null_A quits (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) (Remote host closed the connection)
22:46:12 <fuzzypixelz> but honesly my printing is pretty simple
22:48:27 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
22:48:49 ph88 joins (~ph88@dslb-178-001-158-182.178.001.pools.vodafone-ip.de)
22:50:09 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
22:51:26 hyiltiz joins (~quassel@31.220.5.250)
22:53:16 <geekosaur> the idea behind Show and Read is they work together, so you can feed the output of a Show instance to a Read instance (ideally; this doesn't, for example, work for values with loops in them, of course). it's also often useful for debugging to be able to cut and paste show output into ghci and get a valid expression
22:53:40 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:54:40 lavaman joins (~lavaman@98.38.249.169)
22:54:41 <geekosaur> that said, for simple programs it may well be easier to just abuse Show. it just makes your life harder later if you find yourself expanding the program (and I've seen too many "toy" programs turn into something real and important that just grows…)
22:55:46 × retro_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds)
22:56:49 <dsal> UTCTime et. al. are a great example. If you use that in a data structure and derive Show, you suddenly get output that isn't valid Haskell.
22:58:42 <sm> pretty-simple is quite good
22:58:51 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
22:58:54 CiaoSen joins (~Jura@p5dcc1e8d.dip0.t-ipconnect.de)
23:06:46 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
23:11:07 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
23:12:47 retroid_ joins (~retro@176.255.22.194)
23:14:55 Null_A joins (~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
23:15:34 Lycurgus joins (~juan@98.4.112.204)
23:19:05 × ggVGc quits (~ggVGc@a.lowtech.earth) (Remote host closed the connection)
23:19:41 × jgeerds quits (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 268 seconds)
23:20:31 × ph88 quits (~ph88@dslb-178-001-158-182.178.001.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
23:23:13 ph88 joins (~ph88@dslb-178-001-158-182.178.001.pools.vodafone-ip.de)
23:23:29 wroathe joins (~wroathe@user/wroathe)
23:28:10 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
23:29:25 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Remote host closed the connection)
23:31:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:33:58 × max22- quits (~maxime@2a01cb08833598006e737bbcf6bcf547.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
23:41:04 spider joins (~spider@vps-951ce37a.vps.ovh.ca)
23:41:18 spider is now known as spider_
23:42:11 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
23:54:54 hyiltiz joins (~quassel@31.220.5.250)
23:56:14 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
23:56:19 nvmd joins (~nvmd@user/nvmd)
23:58:16 euandreh joins (~euandreh@2804:14c:33:9fe5:c707:55db:3139:271f)

All times are in UTC on 2021-10-09.