Home liberachat/#haskell: Logs Calendar

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

00:00:17 justsomeguy joins (~justsomeg@user/justsomeguy)
00:02:30 debclair joins (~debclair@157.100.93.61)
00:02:51 wennefer0 joins (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
00:04:31 × zava quits (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3)
00:05:11 <dsal> sum should be lazy. If I only want to know a partial sum, I should be able to read part of the result.
00:05:19 <monochrom> haha
00:06:03 lambdandy[m] joins (~lambdandy@2001:470:69fc:105::1:3045)
00:07:18 <dolio> That's the sort of methodology that made containers have a major performance issue at one point. :þ
00:07:22 <Axman6> that's just scanl (+) 0
00:08:10 <shapr> random question, is there already a utility that calculates a "rebuild score" from a set of cabal files?
00:08:30 <sclv> what is a rebuild stor
00:08:32 <shapr> I think I want a package graph
00:08:44 <sclv> theres utils for that
00:08:46 <monochrom> byorgey is now promoting Data.Map.Lazy again because it helps with many programming contest problems :)
00:08:53 <shapr> sclv: any names / links?
00:09:26 × debclair quits (~debclair@157.100.93.61) (Quit: Leaving)
00:10:24 <shapr> I want a score that gives a higher cost to long chains of dependencies, but less to packages that can be built in parallel.
00:10:36 psydurr joins (~psydurr@pool-141-152-27-2.rcmdva.fios.verizon.net)
00:10:45 shapr thinks
00:10:56 <yin> monochrom: have you checked his game out?
00:11:02 <monochrom> No.
00:11:05 <sclv> you can get dotfiles directly out of ghc-pkg
00:11:09 × vysn quits (~vysn@user/vysn) (Ping timeout: 250 seconds)
00:11:12 <shapr> oh I didn't know that
00:11:30 <yin> monochrom: https://github.com/byorgey/swarm
00:12:11 <yin> #swarm here on libera
00:12:13 <shapr> sclv: thanks!
00:12:33 <yin> pretty cool
00:15:58 × wennefer0 quits (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection)
00:18:02 wennefer0 joins (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
00:18:41 × wennefer0 quits (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection)
00:20:23 hippoid joins (~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
00:20:24 <dsal> Is it crazy to just be like, "I don't understand all the exceptions things so I'm going to run some code in an async and observe it" ?
00:22:54 zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
00:23:10 wennefer0 joins (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
00:23:54 × wennefer0 quits (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection)
00:25:02 × acidjnk_new quits (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
00:25:24 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:25:24 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
00:25:24 wroathe joins (~wroathe@user/wroathe)
00:26:19 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
00:26:51 × emf_ quits (~emf@2620:10d:c090:400::5:4199) (Read error: Connection reset by peer)
00:27:02 × zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 240 seconds)
00:28:24 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:32:05 emf joins (~emf@2620:10d:c090:400::5:f986)
00:32:44 × servytor quits (uid525486@id-525486.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
00:33:19 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
00:34:21 <monochrom> It is not crazy to use observations to improve understanding. (Most people are crazy to do the opposite direction.)
00:35:26 <monochrom> But it may be less helpful to do that with async. (Threads are more basic and fewer moving parts.)
00:35:34 hippoid parts (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) ()
00:38:33 × psydurr quits (~psydurr@pool-141-152-27-2.rcmdva.fios.verizon.net) (Quit: Leaving)
00:39:56 <dsal> Knowing what might be thrown and how to manage the case positively and negatively got super hard. But it's trivial with an async.
00:39:59 renzhi joins (~xp@2607:fa49:6500:b100::6e7f)
00:46:04 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:46:28 deadmarshal joins (~deadmarsh@95.38.114.152)
00:48:25 × jkaye quits (~jkaye@2601:281:8300:7530:49b1:9f67:bcbc:61f) (Ping timeout: 250 seconds)
00:50:06 sprout joins (~quassel@2a02:a467:ccd6:1:5d00:eb1a:26:b28a)
00:51:01 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds)
00:53:26 × sprout_ quits (~quassel@2a02:a467:ccd6:1:e1e5:75f2:6059:4431) (Ping timeout: 245 seconds)
00:56:47 zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
00:59:47 × mmhat quits (~mmh@55d4bf19.access.ecotel.net) (Quit: WeeChat 3.3)
01:01:13 × zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds)
01:06:02 lavaman joins (~lavaman@98.38.249.169)
01:08:27 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
01:09:38 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:13:02 × mark__ quits (~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
01:18:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
01:22:44 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
01:26:09 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 256 seconds)
01:28:02 jmorris joins (uid433911@id-433911.hampstead.irccloud.com)
01:30:32 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
01:39:39 sugar joins (~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca)
01:40:29 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
01:41:52 geekosaur joins (~geekosaur@xmonad/geekosaur)
01:47:16 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:47:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
01:47:16 wroathe joins (~wroathe@user/wroathe)
01:48:09 zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
01:50:28 ees joins (~user@pool-108-18-30-46.washdc.fios.verizon.net)
01:52:17 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds)
01:52:32 × zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 240 seconds)
01:54:02 × lbseale quits (~lbseale@user/ep1ctetus) (Quit: Leaving)
01:54:50 sprout_ joins (~quassel@2a02:a467:ccd6:1:ec9d:c0:f2e1:89a6)
01:57:32 × sprout quits (~quassel@2a02:a467:ccd6:1:5d00:eb1a:26:b28a) (Ping timeout: 240 seconds)
02:01:46 × sugar quits (~sugar@bras-base-hmtnon1497w-grc-21-70-26-153-130.dsl.bell.ca) (Quit: Client closed)
02:05:48 ezzieygu1wuf is now known as ezzieyguywuf
02:08:11 × Inst quits (~Inst@2601:6c4:4080:3f80:c951:41b3:1b4a:c1f9) (Ping timeout: 264 seconds)
02:15:14 × xlei quits (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Read error: Connection reset by peer)
02:20:52 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
02:25:14 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 246 seconds)
02:25:31 × ees quits (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Remote host closed the connection)
02:26:49 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
02:31:21 × alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds)
02:35:44 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
02:35:53 × johnjay quits (~pi@192.142.100.50) (Ping timeout: 250 seconds)
02:37:51 alzgh joins (alzgh@user/alzgh)
02:38:45 johnjay joins (~pi@192.142.100.50)
02:39:54 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
02:43:33 × cjb quits (~cjbayliss@user/cjb) ()
02:55:02 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds)
02:56:03 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
02:56:28 lavaman joins (~lavaman@98.38.249.169)
02:56:46 × xff0x quits (~xff0x@2001:1a81:536d:7000:f003:c1eb:d2a3:5377) (Ping timeout: 245 seconds)
02:58:47 xff0x joins (~xff0x@2001:1a81:53aa:5400:49da:2933:d5c1:bd65)
03:00:32 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds)
03:00:47 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
03:04:24 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
03:06:37 sprout joins (~quassel@2a02:a467:ccd6:1:cc66:8cdf:6920:eedd)
03:10:02 × sprout_ quits (~quassel@2a02:a467:ccd6:1:ec9d:c0:f2e1:89a6) (Ping timeout: 240 seconds)
03:12:27 sprout_ joins (~quassel@2a02:a467:ccd6:1:646d:b422:185d:c10e)
03:14:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:16:17 × sprout quits (~quassel@2a02:a467:ccd6:1:cc66:8cdf:6920:eedd) (Ping timeout: 264 seconds)
03:18:00 jkaye joins (~jkaye@2601:281:8300:7530:c139:e489:8815:b330)
03:23:02 × betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 240 seconds)
03:29:06 SeungheonOh joins (~Thunderbi@2600:1700:5168:1400:d0db:f0d9:c386:c3c1)
03:29:32 × SeungheonOh quits (~Thunderbi@2600:1700:5168:1400:d0db:f0d9:c386:c3c1) (Client Quit)
03:35:49 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:35:49 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:35:49 finn_elija is now known as FinnElija
03:37:50 × alx741 quits (~alx741@181.196.68.101) (Quit: alx741)
03:43:59 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
03:45:15 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
03:45:22 × AlexNoo quits (~AlexNoo@178.34.163.82) (Read error: Connection reset by peer)
03:46:07 AlexNoo joins (~AlexNoo@178.34.163.82)
03:48:06 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
03:48:07 × jkaye quits (~jkaye@2601:281:8300:7530:c139:e489:8815:b330) (Ping timeout: 268 seconds)
03:49:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
03:51:26 × jlamothe_ quits (~jlamothe@198.251.61.229) (Quit: leaving)
03:51:59 flukiluke joins (~m-7humut@plum.alephc.xyz)
03:52:35 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 250 seconds)
03:59:11 × alzgh quits (alzgh@user/alzgh) (Ping timeout: 256 seconds)
04:00:54 justsomeguy joins (~justsomeg@user/justsomeguy)
04:04:17 × renzhi quits (~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 246 seconds)
04:04:37 alzgh joins (~alzgh@user/alzgh)
04:05:35 × jinsun quits (~quassel@user/jinsun) (Read error: Connection reset by peer)
04:08:26 jlamothe joins (~jlamothe@198.251.61.229)
04:11:57 jinsun joins (~quassel@user/jinsun)
04:13:20 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
04:15:29 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
04:19:48 mbuf joins (~Shakthi@122.174.254.232)
04:23:24 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
04:23:32 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 240 seconds)
04:26:21 × retroid_ quits (~retro@2e41e9c8.skybroadband.com) (Ping timeout: 268 seconds)
04:27:32 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds)
04:28:26 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
04:29:34 retroid_ joins (~retro@2e41e9c8.skybroadband.com)
04:30:02 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1))
04:32:24 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
04:42:16 deadmarshal joins (~deadmarsh@95.38.114.152)
04:55:07 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
04:58:38 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
05:00:11 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
05:03:03 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
05:03:29 zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
05:07:32 × zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 240 seconds)
05:09:44 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
05:09:45 sprout joins (~quassel@2a02:a467:ccd6:1:315a:c7df:cdab:4da8)
05:12:45 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
05:13:11 × sprout_ quits (~quassel@2a02:a467:ccd6:1:646d:b422:185d:c10e) (Ping timeout: 250 seconds)
05:15:39 × falafel quits (~falafel@cpe-76-168-195-162.socal.res.rr.com) (Ping timeout: 256 seconds)
05:21:02 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds)
05:27:08 × x_kuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
05:27:38 × monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER)
05:30:05 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds)
05:36:11 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
05:37:31 zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
05:42:17 × zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds)
05:43:49 monochrom joins (trebla@216.138.220.146)
05:44:06 rkrishnan joins (~user@122.167.19.65)
05:45:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:45:23 boxscape_ joins (~boxscape_@mue-88-130-59-079.dsl.tropolys.de)
05:53:35 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
06:01:17 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 264 seconds)
06:05:06 × emf quits (~emf@2620:10d:c090:400::5:f986) (Ping timeout: 245 seconds)
06:06:41 aliosablack joins (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374)
06:06:53 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
06:08:49 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
06:13:55 × CannabisIndica quits (~herb@user/mesaboogie) (Quit: ZNC - https://znc.in)
06:14:02 × hiruji quits (~hiruji@user/hiruji) (Ping timeout: 240 seconds)
06:15:53 × ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Quit: Client limit exceeded: 20000)
06:17:17 CannabisIndica joins (~herb@user/mesaboogie)
06:19:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
06:20:51 mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
06:24:04 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:28:32 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
06:33:02 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds)
06:34:32 hiruji joins (~hiruji@user/hiruji)
06:38:07 × mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds)
06:39:03 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
06:44:05 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
06:44:39 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
06:47:46 img joins (~img@user/img)
06:52:34 × Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:52:43 Sgeo joins (~Sgeo@user/sgeo)
06:59:26 deadmarshal joins (~deadmarsh@95.38.114.152)
07:05:06 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
07:07:31 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
07:09:06 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
07:09:46 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 268 seconds)
07:10:05 sprout_ joins (~quassel@2a02:a467:ccd6:1:3471:ef4b:ebc8:3b49)
07:13:39 × sprout quits (~quassel@2a02:a467:ccd6:1:315a:c7df:cdab:4da8) (Ping timeout: 250 seconds)
07:17:33 mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
07:24:49 noddy joins (~user@user/noddy)
07:27:01 mmhat joins (~mmh@55d4b224.access.ecotel.net)
07:38:34 × mmhat quits (~mmh@55d4b224.access.ecotel.net) (Quit: WeeChat 3.3)
07:40:28 zincy joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
07:43:23 vysn joins (~vysn@user/vysn)
07:44:37 johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl)
07:44:47 × zincy quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 246 seconds)
07:45:19 Inst joins (~Inst@2601:6c4:4080:3f80:75c6:91f1:4f95:975b)
07:47:31 × drdo quits (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds))
07:47:36 × johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection)
07:47:50 drdo joins (~drdo@roach0.drdo.eu)
07:50:17 johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl)
07:51:04 bairyn joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
07:51:32 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds)
07:53:06 lortabac joins (~lortabac@2a01:e0a:541:b8f0:54fc:9972:155c:27b0)
07:56:44 × johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection)
07:56:46 × Inst quits (~Inst@2601:6c4:4080:3f80:75c6:91f1:4f95:975b) (Ping timeout: 245 seconds)
07:57:06 johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl)
07:57:38 markusde joins (~makrus@2604:3d08:6f80:6b00::9610)
07:57:51 lavaman joins (~lavaman@98.38.249.169)
08:00:54 vshabanov joins (~vshabanov@85.203.46.25)
08:02:22 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
08:10:29 <markusde> Yo- looking to start contributing to some oss projects. Anyone know of any that are newbie friendly and need help?
08:10:30 ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a)
08:14:09 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds)
08:14:39 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds)
08:15:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:15:54 × johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 260 seconds)
08:20:51 robosexual joins (~spaceoyst@88.85.216.62)
08:22:22 <[exa]> markusde: hard to tell. do you have any specific project you want to improve?
08:22:30 ubert joins (~Thunderbi@p200300ecdf4fca6ff42c1e431d1c483e.dip0.t-ipconnect.de)
08:23:22 <[exa]> generally, most OSS is friendly and will happily accept PRs that make sense, the usual advice is to do something _you_ are interested in/need to have working
08:24:43 deadmarshal joins (~deadmarsh@95.38.114.152)
08:24:56 <markusde> exa: ic ic. I'l just troll around github then
08:25:13 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:25:42 <[exa]> like, if all OSS works just right for you, there's no reason to code more, right? :]
08:27:28 × ubert quits (~Thunderbi@p200300ecdf4fca6ff42c1e431d1c483e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
08:27:32 <markusde> exa: lmao
08:27:47 <[exa]> anyway if you just need practice, there's afaik no library for regexes that has a good machine-buildable&representable immediate representation of the regexes... :]
08:27:49 ubert joins (~Thunderbi@p548c9652.dip0.t-ipconnect.de)
08:28:01 <[exa]> s/representable/analyzable/
08:31:43 × boxscape_ quits (~boxscape_@mue-88-130-59-079.dsl.tropolys.de) (Quit: Connection closed)
08:34:07 <tomsmeding> that sounds like something you might personally like [exa] :p
08:35:19 <[exa]> yes.
08:35:54 <tomsmeding> does it need to be fast? how expressive the regexen?
08:36:09 <[exa]> I basically want to build a lexer online
08:36:40 <[exa]> so basically taking tiny pieces of regexes, connecting them into a larger DFA, triggering actions when some state gets reached
08:37:09 <tomsmeding> online as in online algorithm, not as in web-based?
08:37:17 × xff0x quits (~xff0x@2001:1a81:53aa:5400:49da:2933:d5c1:bd65) (Ping timeout: 264 seconds)
08:37:25 <[exa]> online as "the lexing specification is the input of the user"
08:37:32 <tomsmeding> right
08:37:51 <tomsmeding> sounds hard to get fast due to the dynamic nature
08:37:52 michalz joins (~michalz@185.246.204.33)
08:37:58 xff0x joins (~xff0x@2001:1a81:53aa:5400:2665:d30f:dc60:ace5)
08:38:37 <[exa]> I might have talked about that here already
08:38:44 chele joins (~chele@user/chele)
08:38:55 kuribas joins (~user@188.189.234.163)
08:38:59 johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl)
08:39:50 <[exa]> basically I want something that can cut programs into labeled whitespace and non-whitespace tokens; the meaning of whitespace depends on context (e.g. in C, ' ' in a string is not a whitespace, and comments tokenize differently than the text around)
08:40:34 <[exa]> and well you know, languages are infinite so having the user supply the language spec themselves saves me a lot of stress :D
08:40:39 <tomsmeding> for C specifically, the better solution would be to statically write a state machine
08:40:47 <tomsmeding> right
08:41:12 <tomsmeding> you have indeed talked about this before
08:41:33 <[exa]> yap, still no time to actually push it :D
08:41:44 <tomsmeding> https://ircbrowse.tomsmeding.com/day/haskell/2020/12/30?id=226295#trid226295
08:41:51 tomsmeding used search superpowers
08:42:00 <tomsmeding> aka SELECT
08:43:03 <[exa]> oh what a nice tool, people can just grab random good ideas from #haskell now and start businesses around them. :D
08:43:10 <[exa]> ^ wishful thinking
08:43:12 <tomsmeding> ircbrowse really needs search
08:43:32 <[exa]> throw it into elasticsearch
08:43:39 <tomsmeding> no
08:43:45 <[exa]> y no
08:43:48 <tomsmeding> I already have one annoying to install dep, postgres
08:43:55 <tomsmeding> original ircbrowse used sphinx
08:44:01 <tomsmeding> haven't bothered to install that yet
08:44:26 <tomsmeding> I've done some work to try to eliminate the postgres dep but ended up in the weeds
08:44:26 <[exa]> in postgres there are pretty good text search things
08:44:59 <tomsmeding> better than LIKE '%regex%' ?
08:45:16 <[exa]> yeah, literal fulltext search with inverted indexes
08:45:23 <tomsmeding> ö
08:45:23 <[exa]> don't even start with LIKE :D
08:45:55 <tomsmeding> yeah because LIKE is nice for one-off searching like I just did but is a performance nightmare
08:46:05 <[exa]> basically add a table like (postID int, author text, message tsvector, msgcontext tsvector )
08:46:25 <[exa]> to context you add a bit of messages from the environs, you can even weight them
08:47:04 <[exa]> and then there's some operator (iirc @@) that allows you to efficiently match the table rows using a googlish text query in tsvector
08:47:09 × markusde quits (~makrus@2604:3d08:6f80:6b00::9610) (Quit: Leaving)
08:47:27 <[exa]> unfortunately markusde just left, this would be a nice OSS project.. :D
08:47:33 <tomsmeding> :p
08:47:50 <tomsmeding> fancy, noting down; currently swamped in work but that may change at some point ever maybe
08:48:10 gaff joins (~gaff@49.207.214.48)
08:48:19 <[exa]> https://www.postgresql.org/docs/9.5/textsearch-tables.html
08:48:26 × gaff quits (~gaff@49.207.214.48) (Client Quit)
08:48:39 zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
08:48:43 zava joins (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
08:48:45 acidjnk_new joins (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de)
08:48:45 <[exa]> if you're not into details such as correct stemming, it's literally just about adding a few columns
08:49:03 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 268 seconds)
08:50:04 × kuribas quits (~user@188.189.234.163) (Read error: Connection reset by peer)
08:50:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
08:50:13 <[exa]> postgres = underrated
08:50:36 <tomsmeding> that particular point I was already aware of
08:51:37 kuribas joins (~user@188.189.234.163)
08:53:10 gehmehgeh joins (~user@user/gehmehgeh)
08:53:14 × zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 260 seconds)
08:55:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:55:18 kuribas` joins (~user@188.188.45.223)
08:55:54 mei3 joins (~mei@user/mei)
08:56:53 × kuribas quits (~user@188.189.234.163) (Ping timeout: 246 seconds)
09:00:00 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
09:02:38 deadmarshal joins (~deadmarsh@95.38.114.152)
09:04:49 × vshabanov quits (~vshabanov@85.203.46.25) (Quit: Client closed)
09:06:20 × x6C697370 quits (~michael@2600:1700:7c02:3180::49) (Ping timeout: 246 seconds)
09:09:26 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
09:10:35 × c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 264 seconds)
09:11:25 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
09:12:21 cfricke joins (~cfricke@user/cfricke)
09:12:35 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Remote host closed the connection)
09:12:53 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
09:15:51 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds)
09:17:33 allbery_b joins (~geekosaur@xmonad/geekosaur)
09:17:33 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
09:17:36 allbery_b is now known as geekosaur
09:17:46 × kuribas` quits (~user@188.188.45.223) (Quit: ERC (IRC client for Emacs 26.3))
09:24:05 zincy joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
09:27:31 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
09:28:48 <Profpatsch> I’m trying to fullfill the requirements for https://hackage.haskell.org/package/servant-conduit-0.15.1/docs/Servant-Conduit.html#t:ConduitToSourceIO in my Monad m
09:28:53 × zincy quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 264 seconds)
09:28:57 CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
09:29:03 <Profpatsch> Namely m ~ IO => ConduitToSourceIO (ResourceT m)
09:29:10 <tomsmeding> [exa]: would something like this work for your purpose, or am I misunderstanding? https://paste.tomsmeding.com/Hx3MUFXv (not saying I'm going to build this any time soon, was just procrastinating)
09:29:13 <Profpatsch> My m is in (MonadIO m)
09:29:21 <Profpatsch> Can I somehow make the m ~ IO work for it?
09:29:31 <Profpatsch> Maybe with some fancy lifting?
09:29:48 <tomsmeding> Profpatsch: no, you'll never get m ~ IO from just MonadIO m
09:29:56 <Profpatsch> I would say I’m a pretty good Haskeller, but monad-transformer shenanigans always make me cry very hard
09:30:26 <tomsmeding> usually when people require hard IO instead of just MonadIO, they do some fancy exception handling where they can't tolerate other, unknown monads getting in the way
09:30:29 <Profpatsch> tomsmeding: I don’t know how this is supposed to work then; Do I have to just propagate (MonadResource m) out of my function?
09:30:41 <dminuoso> Profpatsch: this is why I generally follow the RIO pattern (without actually using RIO)
09:30:49 <dminuoso> So I can always unlift back to IO
09:30:53 <Profpatsch> I had an error where it hard-required (MonadResource IO)
09:31:06 <Profpatsch> But that might have been a type sig that was too specific
09:31:13 <tomsmeding> where did that constraint come from?
09:31:16 <tomsmeding> not from this class
09:31:37 <dminuoso> 10:29:48 tomsmeding | Profpatsch: no, you'll never get m ~ IO from just MonadIO m
09:31:48 <dminuoso> I think I must misunderstand what you're saying here, tomsmeding.
09:32:02 <dminuoso> If something is polymorphic over m with a MonadIO m constraint, surely I can simply pick m ~ IO?
09:32:11 × andjjj23 quits (~irc@107.170.228.47) (Ping timeout: 264 seconds)
09:32:14 <tomsmeding> if you have control over the choice of m, yes
09:32:16 <Profpatsch> tomsmeding: That’s usually my question, where do contraints come from :) GHC is really bad at telling you without a lot of poking
09:32:24 <tomsmeding> if you don't and only know that MonadIO m holds, then tough luck
09:32:35 <dminuoso> Profpatsch: Type error slices would be really wonderful to have.
09:32:36 × mmaruseacph2 quits (~mihai@198.199.100.72) (Ping timeout: 245 seconds)
09:32:46 <tomsmeding> classic caller/consumer duality :)
09:33:07 <dminuoso> Imagine if GHC could generate type error slices, transport these via LSP and have a specialized visualization in haskell-lsp in emacs.
09:33:19 <dminuoso> Perhaps with some ergonomics to chase/follow inference
09:33:42 <Profpatsch> tomsmeding: So basically I want to return a (MonadIO m, MonadError ServantError m) => m (SourceIO returnType) from my servant handler, so that it can stream the result
09:33:45 <tomsmeding> gut feeling says Helium should have some of the required machinery for such a thing (not necessarily all)
09:33:59 <Profpatsch> But unfortunately Servant documentation is horrible, so I’m dumbfounded at how to do that when it requires a hard IO
09:34:04 mmhat joins (~mmh@55d4b224.access.ecotel.net)
09:34:28 <Profpatsch> My intuition is that in order to do correct resource handling, I have to pass the ResourceT in somehow
09:34:32 <tomsmeding> SourceIO itself is already a monad
09:35:05 <tomsmeding> are you sure (I don't know either, just guessing) that you don't want something like 'SourceT m returnType' instead?
09:35:18 <Profpatsch> tomsmeding: Ohhh, hmmm
09:35:20 <Profpatsch> let me try
09:36:45 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection)
09:36:51 <Profpatsch> I’m very close to throwing out all of servant and starting over with a good web framework tbh
09:37:24 <Profpatsch> tomsmeding: I don’t think it’s so easily possible, the documentation in https://hackage.haskell.org/package/servant-0.18/docs/Servant-API.html#t:SourceIO says
09:37:30 <Profpatsch> > Stream endpoints may be implemented as producing a SourceIO chunk.
09:37:32 <lambdabot> <hint>:1:67: error:
09:37:32 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
09:37:37 zincy joins (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
09:37:41 <tomsmeding> poor lambdabot
09:37:56 <tomsmeding> but yeah I don't know either :p
09:38:04 <Profpatsch> who uses a blockquote character for eval anyway :)
09:38:12 <tomsmeding> just saying that 'm (SourceIO r)' looks weird to me if SourceIO is already a monad
09:38:22 <Profpatsch> yeah, same
09:38:29 <tomsmeding> not impossible, just weird
09:38:31 <Profpatsch> But the type is kinda forced by the Servant typelevel bullshit
09:38:52 <zincy> How best would you "go back in time" for a hashmap. I was thinking [(UtcTime Map]) is there something better?
09:38:54 <Profpatsch> Plus the bad decision to try and abstract over pipe libraries instead of just requiring one pipe lib
09:38:57 <zincy> tuple that is
09:39:03 <dminuoso> zincy: What does "go back in time" mean?
09:39:17 <dminuoso> And what is `UtcTime Map` supposed to denote?
09:39:21 <zincy> Have a record of changes associated to timestamps
09:39:32 <zincy> So going back in time would mean iteration
09:39:50 <dminuoso> Without knowing way more context, this is going to be difficult to answer.
09:40:37 jzsinatra joins (~jzsinatra@88-114-238-31.elisa-laajakaista.fi)
09:40:50 <zincy> Say you have a todo list represented by newtype TodoList = TodoList (Map TodoId Todo)
09:41:17 <zincy> I can do CRUD on my todo list which is simple.
09:41:27 <dminuoso> zincy: First question is, do you just want to maintain a linear history, or some tree history?
09:41:36 <zincy> Ooh good question
09:41:54 <zincy> Tree history sounds fun
09:42:50 <tomsmeding> tree history is only relevant if you want to undo, then apply changes again, then undo once more and go back into your original branch
09:43:12 <dminuoso> Side note, tree-mode in emacs is absolutely amazing.
09:43:22 <tomsmeding> tree undo in text editors is amazing
09:43:23 <dminuoso> Linear history for a code editor is frustratingly limiting
09:43:31 <tomsmeding> in a todo app it feels quite overpowered :p
09:43:38 × fluxit quits (~fluxit@techsmix.net) (Quit: Bye!)
09:43:39 <dminuoso> Yes, no, perhaps.
09:44:06 <dminuoso> tomsmeding: What can I say, tree-mode + org-mode gives me *both*
09:44:16 <dminuoso> sorry *tree undo + org-mode
09:44:27 <tomsmeding> tree-org
09:45:06 <dminuoso> Btw, I recently did the mistake of looking at the.. original "specification" of markdown
09:45:11 <dminuoso> Wow, what a huge mistake.
09:45:34 <dminuoso> I assumed to find some document with a formal bnf grammar and some clean semantics.
09:45:45 <tomsmeding> you assumed wrong
09:45:53 <dminuoso> Heh yeah.
09:45:57 <tomsmeding> wasn't it a perl script
09:46:09 <yushyin> markdown is just a bad format through and through
09:46:14 <tomsmeding> like, originally
09:46:29 <dminuoso> It doesnt even have semantics, it just presents a bunch of *examples* and then shows how it renders. I managed to trigger a dozen undesirable side effects in the reference implementation
09:46:31 <tomsmeding> markdown is an amazing format because it works for a lot of people in a lot of contexts
09:46:33 deadmarshal joins (~deadmarsh@95.38.114.152)
09:46:35 <dminuoso> yushyin: Its not even a format.
09:46:36 <tomsmeding> the lack of standardisation is annoying though
09:46:38 <dminuoso> It's just.. something.
09:47:03 <dminuoso> The reference implementation is just some quickly written adhoc nonsense that misbehaves in so many bizarre ways
09:47:13 <dminuoso> It's not even wrong.
09:47:16 <tomsmeding> I format my personal notes in markdown even if I'm not actually pulling it through a renderer
09:47:38 × yahb quits (xsbot@user/mniip/bot/yahb) (Ping timeout: 268 seconds)
09:47:42 <tomsmeding> and the non-definedness of the format makes that possible :D
09:48:03 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
09:48:05 <zincy> Oh thanks I will try tree mode in emacs!
09:48:08 <Profpatsch> Oh god there is an example https://github.com/haskell-servant/servant/blob/master/servant-conduit/example/Main.hs
09:48:14 <Profpatsch> Why isn’t this mentioned anywhere in the docs
09:48:16 <dminuoso> zincy: https://www.emacswiki.org/emacs/UndoTree
09:48:22 <Profpatsch> why isn’t it *in* the docs
09:48:34 <zincy> Yeah lets go for linear history
09:48:34 <dminuoso> It's really amazing. :)
09:48:37 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:48:37 <tomsmeding> but yeah </trolling>, the ill-definedness is annoying and I'm consistently annoyed by the indentation requirements for lists as well
09:48:40 <zincy> Its a todo app :D
09:49:17 <dminuoso> zincy: As a starter you can simply maintain some [TodoList]
09:49:29 <dminuoso> And each modification just prepends a new TodoList to that.
09:49:42 <zincy> Thanks!
09:49:54 <dminuoso> The main difficulty will consist in keeping enough state around to bring your editor into a sensible state when you go back
09:50:01 <dminuoso> that is if you undo or redo
09:50:15 <zincy> yeah
09:53:49 yahb joins (xsbot@user/mniip/bot/yahb)
09:56:45 <Profpatsch> tomsmeding: even the example just has all handlers in IO
09:57:14 <Profpatsch> So idk how to do any of that. I can’t add it to my servant routes that way
09:57:34 <Profpatsch> Maybe I can implement an orphan instance that is in MonadIO somehow
09:57:43 <Profpatsch> Or I have to do MonadUnliftIO stuff
09:59:14 <int-e> does this count as a todo app? https://paste.debian.net/1218951/
10:00:55 <zincy> int-e: haha
10:01:08 <zincy> Todo lists all the way down
10:01:51 × zava quits (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3)
10:04:00 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:06:53 hololeap joins (~hololeap@user/hololeap)
10:07:11 × eruditass quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
10:09:12 × pop3 quits (~pop3@user/pop3) (Remote host closed the connection)
10:10:43 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
10:11:02 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
10:11:12 <Profpatsch> tomsmeding: Uh, when I try to create an orphan instacnce instance MonadIO m => Servant.Conduit.ConduitToSourceIO (ResourceT m) where
10:11:23 <Profpatsch> GHC complains that it already exists, and points to the m ~ IO => instance
10:11:33 c_wraith joins (~c_wraith@adjoint.us)
10:11:44 <tomsmeding> yeah, that instance is basically saying that you can't do what you want
10:12:26 <tomsmeding> writing 'instance m ~ X => Class m where' means that whenever GHC sees "Class m", it's going to use this instance, and then discover that m ~ X
10:12:47 <tomsmeding> as opposed to 'instance Class X where', where the instance only gets chosen if it is already known that m ~ X
10:13:09 <Profpatsch> hrm
10:13:13 fluxit joins (~fluxit@techsmix.net)
10:13:20 tomsmeding knows nothing about servant
10:13:26 mmaruseacph2 joins (~mihai@198.199.100.72)
10:13:36 <Profpatsch> I assume it has something to do with how ResourceT wants to free resources?
10:13:56 <Profpatsch> But I don’t understand why I can’t put a ResourceT in my m and then have it handle it for me
10:13:59 <tomsmeding> yeah finalizers are fundamentally incompatible with arbitrary monad transformers
10:14:13 <tomsmeding> like, what if the user layers an except monad on top? then finalizers might never get run
10:14:41 <tomsmeding> or hm, this depends on in which order you compose the transformers exactly
10:15:34 <tomsmeding> I don't know :D
10:15:38 <Profpatsch> tomsmeding: But ResourceT in particular is in MonadUnliftIO http://localhost:9090/file/nix/store/1an4ayakan989gr05h0qf65w3zzs4q61-conduit-1.3.4.1-doc/share/doc/conduit-1.3.4.1/html/Conduit.html#t:MonadUnliftIO
10:15:47 <Profpatsch> So that points to it maybe being possible just not done yet?
10:15:58 <Profpatsch> Now if there were only comments somewhere that described the restriction
10:16:18 <Profpatsch> I feel like this is all accidental complexity
10:18:07 <[exa]> tomsmeding: I got caught in the meeting but yes, that's it
10:18:17 <merijn> tomsmeding: ResourceT works by forcing everything into, effectively, a giant "with" bracket
10:19:09 <[exa]> tomsmeding: on top of that something like `Map LexState [(regexlike, LexState)]` for making actual DFA out of that
10:20:08 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
10:20:20 nschoe joins (~quassel@2a01:e0a:8e:a190:5cf1:3cc3:9b0b:354b)
10:21:51 hololeap joins (~hololeap@user/hololeap)
10:24:47 mc47 joins (~mc47@xmonad/TheMC47)
10:25:56 __monty__ joins (~toonn@user/toonn)
10:29:07 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Remote host closed the connection)
10:31:11 andjjj23 joins (~irc@107.170.228.47)
10:32:31 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
10:33:02 × johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 240 seconds)
10:34:25 <[exa]> tomsmeding: anyway, if this is slow then at very worst I can literally compile it to flex using this representation. :D
10:34:49 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
10:37:16 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
10:39:47 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
10:41:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 246 seconds)
10:42:37 × bairyn quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds)
10:44:58 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
10:58:13 DNH joins (~DNH@2a09:bac0:48::82b:7a35)
10:59:26 × mei3 quits (~mei@user/mei) (Read error: Connection reset by peer)
11:00:21 kadir joins (~kadir@78.178.105.36)
11:00:52 alx741 joins (~alx741@181.196.68.101)
11:07:13 × mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: No Ping reply in 180 seconds.)
11:08:34 mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es)
11:16:17 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
11:20:39 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
11:24:07 zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
11:27:23 Neuromancer joins (~Neuromanc@user/neuromancer)
11:28:53 × zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 264 seconds)
11:34:24 mbuf parts (~Shakthi@122.174.254.232) (Leaving)
11:36:02 × CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
11:40:45 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
11:41:46 <mcgroin> can we use coerce on a function and turn it into another function accepting the coerced parameters?
11:44:58 <amesgen[m]> mcgroin: Yes, thats e.g. how deriving via is implemented.
11:45:00 <merijn> mcgroin: Yes
11:45:29 shriekingnoise joins (~shrieking@186.137.144.80)
11:45:54 <mcgroin> great
11:46:13 <tomsmeding> [exa]: ah so you actually want Automaton to be non-opaque
11:46:33 <tomsmeding> (sorry meetings)
11:51:47 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
11:56:36 × jmorris quits (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
11:57:46 × DNH quits (~DNH@2a09:bac0:48::82b:7a35) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:58:24 × bliminse quits (~bliminse@host86-185-253-43.range86-185.btcentralplus.com) (Quit: leaving)
11:59:39 lavaman joins (~lavaman@98.38.249.169)
11:59:54 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 260 seconds)
12:01:11 × hololeap quits (~hololeap@user/hololeap) (Read error: Connection reset by peer)
12:02:41 hololeap joins (~hololeap@user/hololeap)
12:03:45 deadmarshal joins (~deadmarsh@95.38.114.152)
12:04:02 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
12:08:33 bliminse joins (~bliminse@host86-185-253-43.range86-185.btcentralplus.com)
12:22:12 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
12:25:01 johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl)
12:25:46 <maerwald> is there a solution to use `cabal build`, but then install binaries and libraries in a way that makes it work (if `-dynamic` is used)?
12:30:25 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
12:31:40 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
12:31:46 gehmehgeh joins (~user@user/gehmehgeh)
12:31:56 neurocyte0132889 joins (~neurocyte@94.46.71.199)
12:31:56 × neurocyte0132889 quits (~neurocyte@94.46.71.199) (Changing host)
12:31:56 neurocyte0132889 joins (~neurocyte@user/neurocyte)
12:32:19 jmorris joins (uid433911@id-433911.hampstead.irccloud.com)
12:35:48 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
12:36:18 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
12:39:51 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
12:40:44 × awpr quits (uid446117@id-446117.lymington.irccloud.com) (Quit: Connection closed for inactivity)
12:43:10 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:44:02 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 240 seconds)
12:45:01 machinedgod joins (~machinedg@24.105.81.50)
12:47:53 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 246 seconds)
12:50:04 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
12:50:53 gehmehgeh_ joins (~user@user/gehmehgeh)
12:53:47 mark__ joins (~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de)
12:54:22 neurocyte0132889 joins (~neurocyte@94.46.71.199)
12:54:22 × neurocyte0132889 quits (~neurocyte@94.46.71.199) (Changing host)
12:54:22 neurocyte0132889 joins (~neurocyte@user/neurocyte)
12:54:48 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds)
12:59:08 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
12:59:11 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
12:59:25 × johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 268 seconds)
12:59:33 deadmarshal joins (~deadmarsh@95.38.114.152)
13:00:01 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:02:14 × max22- quits (~maxime@2a01cb0883359800c49e7f6f9540e9e4.ipv6.abo.wanadoo.fr) (Ping timeout: 246 seconds)
13:02:34 ubert1 joins (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
13:03:38 DNH joins (~DNH@8.43.122.53)
13:08:02 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
13:08:58 boxscape_ joins (~boxscape_@134.171.69.87)
13:11:29 <boxscape_> gratuitous syntax extension idea #27: Use !<class> to introduce a new variable whose type must be an instance of that class. e.g. `5 :: !Num` or `pure :: a -> !Applicative a`
13:13:53 CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
13:15:17 <robosexual> so it's basically `anonymous` constrained type variables. since `pure :: a -> !Applicative a` <=> `pure :: Applicative _f => a -> _f a` where `_f` can be reffered only once
13:15:38 <boxscape_> right
13:16:15 <robosexual> might make some stuff a bit more readable for sure
13:18:42 <robosexual> there is a lot of functiouns with signature as such `some :: (Monad m) => A -> B -> m C` which could be just `some :: A -> B -> !Monad C`
13:19:03 <boxscape_> yeah
13:19:24 <robosexual> nice:)
13:19:44 <boxscape_> alas, probably not actually worth an extension
13:21:44 <robosexual> ideas shall be spoken:)
13:22:20 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
13:22:25 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds)
13:23:13 zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
13:23:26 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Ping timeout: 260 seconds)
13:24:21 deadmarshal joins (~deadmarsh@95.38.114.152)
13:24:55 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
13:27:36 × zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 245 seconds)
13:31:51 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
13:31:52 chele_ joins (~chele@user/chele)
13:33:45 × chele quits (~chele@user/chele) (Ping timeout: 256 seconds)
13:44:35 × aliosablack quits (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) (Ping timeout: 246 seconds)
13:44:39 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
13:45:37 chomwitt joins (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374)
13:47:03 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
13:47:42 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 260 seconds)
13:47:59 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
13:52:55 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
13:55:11 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
13:55:25 servytor joins (uid525486@id-525486.hampstead.irccloud.com)
13:55:31 × vysn quits (~vysn@user/vysn) (Ping timeout: 245 seconds)
13:56:10 motherfsck joins (~motherfsc@user/motherfsck)
13:57:32 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 240 seconds)
13:59:49 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
14:01:02 × rkrishnan quits (~user@122.167.19.65) (Ping timeout: 240 seconds)
14:01:25 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
14:04:41 <adamCS> My hls setup (emacs, mac os) often tries to make such a long and not-useful completion list that it gets in the way much more than it helps. Anyone know how to configure anything about that or where to look to figure it out? I haven't found a lot of documentation of the options I can configure.
14:08:32 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds)
14:12:57 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
14:13:25 stiell joins (~stiell@gateway/tor-sasl/stiell)
14:13:29 zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
14:14:26 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
14:18:07 justCity is now known as justache
14:18:21 × zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 268 seconds)
14:19:14 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:22:18 tomku|two is now known as tomku
14:29:31 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
14:33:32 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 240 seconds)
14:35:24 johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl)
14:39:13 <cigsender> adamCS: you might get a faster reply on #haskell-language-server :)
14:39:41 <adamCS> cigsender: yep. I'll try that...Thanks!
14:39:45 <tomsmeding> adamCS: what editor?
14:40:19 <tomsmeding> there have been result ordering issues with HLS, that have been fixed with a PR _today_, so not in any released version yet -- but whether you're hit by this depends on your editor
14:40:47 <geekosaur> "My hls setup (emacs, mac os)"
14:40:54 <adamCS> tomsmeding: emacs. I think my issue might be company rather than hls?
14:41:20 <tomsmeding> adamCS: see https://github.com/haskell/haskell-language-server/issues/2291#issuecomment-949477646 and https://github.com/haskell/haskell-language-server/issues/2291
14:41:31 <tomsmeding> is it possible that the problem is simply result _ordering_? If so, probably this
14:41:48 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
14:42:37 <adamCS> I'm trying to simplify the company setup. Half the problem was having number completions on and a bunch of my variables have numbers in the names and so things often went...haywire. But also, emacs would hang when gathering the list (I think) and then the list wouldn't make sense. That last bit might be ordering.
14:45:56 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 245 seconds)
14:46:12 × nschoe quits (~quassel@2a01:e0a:8e:a190:5cf1:3cc3:9b0b:354b) (Remote host closed the connection)
14:47:24 nschoe joins (~quassel@2a01:e0a:8e:a190:b8f5:7f5:bf66:e7c)
14:47:35 × gentauro_ quits (~gentauro@185.107.12.141) (Changing host)
14:47:35 gentauro_ joins (~gentauro@user/gentauro)
14:47:53 max22- joins (~maxime@2a01cb0883359800a8cb049c70e9b71a.ipv6.abo.wanadoo.fr)
14:48:31 × gentauro_ quits (~gentauro@user/gentauro) (Quit: leaving)
14:48:45 gentauro joins (~gentauro@user/gentauro)
14:48:47 jkaye joins (~jkaye@2601:281:8300:7530:212b:79de:3c7b:f9e0)
14:49:17 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
14:50:02 × mark__ quits (~a@p200300ef973db1e34086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
14:50:23 xkuru joins (~xkuru@user/xkuru)
14:52:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
14:53:43 deadmarshal joins (~deadmarsh@95.38.114.152)
14:54:49 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:54:49 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:54:49 wroathe joins (~wroathe@user/wroathe)
14:56:04 dyeplexer joins (~dyeplexer@user/dyeplexer)
14:59:27 slowButPresent joins (~slowButPr@user/slowbutpresent)
15:00:47 × adamCS quits (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (Ping timeout: 250 seconds)
15:01:10 alzgh joins (~alzgh@user/alzgh)
15:02:41 × gehmehgeh_ quits (~user@user/gehmehgeh) (Remote host closed the connection)
15:02:47 zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
15:03:25 gehmehgeh_ joins (~user@user/gehmehgeh)
15:04:41 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds)
15:05:24 k` joins (~user@152.1.137.158)
15:05:33 adamCS joins (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com)
15:06:09 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
15:06:23 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds)
15:06:54 mark__ joins (~a@p200300ef973db1dc4086f0a6a24fc4dd.dip0.t-ipconnect.de)
15:07:22 timCF joins (~timCF@200-149-20-81.sta.estpak.ee)
15:07:35 × zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 264 seconds)
15:07:52 <k`> Is there a way to use associated type families with functional dependencies? Like `class Foo a b | (Bar a) -> b where type Bar a` ?
15:08:32 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds)
15:08:49 <geekosaur> have you tried it?
15:10:35 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 264 seconds)
15:12:47 <timCF> Hello! Is there the way to declare somehow system library dependencies in package.yaml file?
15:14:11 <boxscape_> k` hmmm I'm not sure if that has the inference advantages you're likely looking for but maybe something like `class (c ~ Bar a) => Foo a b c | c -> b where type Bar a` could work
15:15:39 <geekosaur> timCF, why are you still using package.yaml? even the stack folks have gone back to cabal files, because package.yaml is so limited
15:16:31 <timCF> geekosaur: I didn't know this :) But is it possible to do the same thing in cabal file?
15:16:49 <geekosaur> at least two ways to do it in the cabal file
15:17:46 <timCF> geekosaur: and how?
15:18:26 [Kalisto]_ joins (~nico@user/kalisto/x-8968079)
15:18:33 × [Kalisto] quits (~nico@user/kalisto/x-8968079) (Ping timeout: 250 seconds)
15:18:38 <geekosaur> pkgconfig-depends and extra-libraries
15:18:46 <geekosaur> had to doublecheck the names, sorry
15:19:18 <geekosaur> pkgconfig-depends is used when the library has a pkg-config specification (*.pc file), otherwise extra-libraries is used
15:19:22 Andrew_ joins (~andrew@user/andrewyu)
15:19:29 <timCF> geekosaur: thanks a lot, I'll check corresponding docs!
15:19:32 × johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 240 seconds)
15:20:15 × AndrewYu quits (~andrew@user/andrewyu) (Read error: Connection reset by peer)
15:21:04 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:21:16 dyeplexer joins (~dyeplexer@user/dyeplexer)
15:21:42 justsomeguy joins (~justsomeg@user/justsomeguy)
15:22:34 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:22:34 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
15:22:34 wroathe joins (~wroathe@user/wroathe)
15:23:07 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
15:23:14 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
15:23:24 <maerwald> you can also use a custom Setup.hs
15:23:47 p_____ joins (~dyeplexer@user/dyeplexer)
15:23:54 <maerwald> e.g. https://github.com/llvm-hs/llvm-hs/blob/llvm-12/llvm-hs/Setup.hs
15:24:21 <geekosaur> but the cabal folks don't like custom Setup.hs
15:24:23 × p_____ quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
15:24:47 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
15:25:10 <maerwald> so?
15:25:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
15:25:35 <maerwald> cabal has insufficient means to discover libraries
15:25:56 <maerwald> in fact, pkg-config shouldn't even be a cabal feature imo. The main reason it's used is because it's fed into the solver
15:26:04 v01d4lph4 joins (~v01d4lph4@223.190.93.72)
15:26:04 × v01d4lph4 quits (~v01d4lph4@223.190.93.72) (Changing host)
15:26:04 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
15:26:20 <maerwald> but in reality... pkg-config files are not a standard, just one of many ways for libraries to expose such info
15:26:43 mimmy joins (~mimmyjau@72.142.88.18)
15:26:46 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 245 seconds)
15:27:02 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
15:27:07 <geekosaur> pkg-config is really useful when you need custom build flags (-I, defines etc.) as well as libraries
15:27:20 <sclv> its mainly used not for the solver but as geekosaur said, for the linker flags
15:27:43 × asthasr_ quits (~asthasr@162.210.28.151) (Quit: asthasr_)
15:28:11 zer0bitz joins (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
15:28:28 <maerwald> geekosaur: for that it's also not a standard
15:28:56 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
15:29:02 <maerwald> instead, cabal should provide better/easier API to write custom Setup.hs without understanding all the internals
15:29:20 <sclv> no we should eliminate all custom setup
15:29:49 <maerwald> how do you support llvm then as linked above?
15:29:57 <geekosaur> but with custom Setup, just one thing that occurs to me is now you need to run package configure while running the solver, and possibly restart the solver afterward
15:30:23 <geekosaur> because your list of dependencies may have changed
15:30:38 <sclv> maerwald: we extend the grammar of cabal files to express what people currently need custom setup for
15:30:45 Sgeo joins (~Sgeo@user/sgeo)
15:30:52 <maerwald> I don't think that's a good idea
15:32:04 <maerwald> you can never satisfy all and it's a constantly evolving story
15:32:24 <kritzefitz> sclv so you say Cabal shouldn't be extendable?
15:32:29 <maerwald> cargo also has build.rs
15:35:02 <sclv> well i mean i think we'll be stuck with custom setups foreverish
15:35:11 <sclv> but ideally we can minimize how many we need continously
15:35:33 <k`>
15:35:33 <k`> boxscape_: I'm trying to avoid having `Bar a` as a type parameter of the class instance that defines it. That would pretty much defeat the purpose.
15:35:49 xddq[m] joins (~xddqmatri@2001:470:69fc:105::bfd8)
15:36:04 johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl)
15:36:14 zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
15:36:30 <tomsmeding> adamCS: I tested 'master' of haskell-language-server and that fixes ordering problems for me; note that it now also makes the first character of the completion case-sensitive, where previously the whole match was case-insensitive.
15:36:51 Sgeo_ joins (~Sgeo@user/sgeo)
15:36:55 <kritzefitz> sclv: so ideally Cabal should support compiling gettext PO files and installing the results?
15:37:31 <sclv> kritzefitz: why would that be necessary?
15:37:39 <maerwald> Anything that isn't pkg-config, such as llvm-config, is likely gonna be ad-hoc and can't be used to design an interface. Unless you require the user to write wrapper scripts that convert to known format (which Ben has been doing with fake pkg-config scripts)
15:37:42 <boxscape_> k` if you also add `a -> c` as functional dependency you might be able to always write _ (with -XPartialTypeSignatures) instead of actually passing the c argument, I think
15:37:57 <adamCS> tomsmeding: That's great! Thanks! Can I just cabal build it and then put in the ghcup/bin directory and point all the links to it? Or should I just wait for a release?
15:38:11 <boxscape_> ideally you'd want a way to have an invisible argument for the class, but as far as I can tell that's not supported
15:38:22 <kritzefitz> sclv, because some packages might want to use gettext localization files and thus need to compile them on build and install them accordingly?
15:38:25 <sclv> i imagine custom preprocessors can cover a lot of the ground currently used by Setup.hs
15:38:30 <maerwald> https://github.com/bgamari/nix-pkgconfig
15:38:32 <maerwald> I think that
15:38:47 <tomsmeding> adamCS: if you're using cabal, then yes, just cabal build and put the binary somewhere in your path, doesn't even need to be .ghcup/bin -- though it needs to be _before_ .ghcup/bin in your path if you put it anywhere else
15:38:54 <k`> boxscape_: Thanks, that's what I was wondering. Not the answer I wanted, but it's good to know I can stop trying.
15:38:57 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
15:39:10 × mimmy quits (~mimmyjau@72.142.88.18) (Quit: WeeChat 3.3)
15:39:12 <tomsmeding> adamCS: if you're using ghc >= 9.0, mind the custom cabal.project files
15:39:14 × Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 260 seconds)
15:39:17 <tomsmeding> (otherwise hls won't build)
15:39:22 <maerwald> adamCS: you can compile hls via ghcup
15:39:39 <adamCS> maerwald: un unreleased version?
15:39:42 <maerwald> yes
15:39:46 <adamCS> HOW?
15:39:51 <maerwald> ghcup compile hls --help
15:40:36 <tomsmeding> maerwald++
15:40:42 <adamCS> wow.
15:40:50 <adamCS> That's cool.
15:40:53 × zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 264 seconds)
15:40:55 <k`> Was hoping I could do something like `class Mapping a b | b (Object a) -> a, a (Object b) -> b where type Object a; type Object a = Param a; map :: (Object a -> Object b) -> a -> b`
15:40:57 <kritzefitz> sclv: preprocessors process haskell(ish) source files to output haskell, right? How does that help in compiling non-haskell to other non-haskell or installing files in special locations?
15:41:36 <sclv> i mean clearly a cabal package should not just be installing and compiling nonhaskell to nonhaskell, i would argue that is not the job of a haskell package
15:41:48 <sclv> people should not do that
15:41:54 <tomsmeding> maerwald: I assume for ghc >= 9.0 you'll need to explicitly give the --cabal-project file?
15:41:55 <k`> Rather than forcing folks to write, e.g., `instance Mapping (T a) (T b) a b where ...`
15:42:08 <kritzefitz> sclv so how do you propose people use gettext?
15:42:21 <sclv> i don't want to have a build depends on some haskell library and then have nonhaskell compiled and installed randomly on my system
15:42:27 <maerwald> tomsmeding: I guess
15:42:34 <adamCS> maerwald, tomsmeding: I'm still not on 9 since too many packages have...issues. I try every couple weeks!
15:42:37 <tomsmeding> maerwald: makes sense
15:43:00 <kritzefitz> sclv so you think data files are evil as well?
15:43:10 <sclv> no we control where data files go
15:43:17 <sclv> in the standard format
15:43:31 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 256 seconds)
15:43:37 <kritzefitz> There are also standard locations for gettext files. Cabal just doesn't know about them.
15:44:02 <sclv> gettext is low level enough i can imagine cabal support tbqh
15:44:20 <adamCS> maerwald: Does the version number need to match in that command need to match the cabal file in the repo or can I set to, e.g., 1.4.1 so I keep the old 1.4 around?
15:44:22 <sclv> but i imagine with some concerted effort then preprocessors and other tools would suffice
15:44:39 <maerwald> adamCS: see --overwrite-version option
15:45:07 <adamCS> maerwald: nice
15:45:54 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
15:46:35 × jmorris quits (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
15:46:43 <maerwald> I don't see what's wrong with Setup.hs being a low-level interface like build.rs, providing useful library helpers for common things like pkg-config, gettext etc
15:47:07 <sclv> well we'd maybe just want to cut out some features of setup.hs in that case
15:47:22 <sclv> like have a subset that doesn't dynamically create a haskell module manifest
15:47:31 <kritzefitz> sclv: maybe. Excuse my nagging. I'm just a bit frustrated sometimes, because it feels like Cabal seems to loose basic features from time to time, because people think they're not used.
15:47:33 <sclv> the problem is that its entirely unrestricted
15:47:45 <sclv> nobody is getting rid of setup.hs anytime soon
15:47:49 <maerwald> sclv: yes, but that's can be solved with seccomp :)
15:47:55 <sclv> the GOAL is that we try to make as many things as possible not need it
15:48:24 <sclv> so that we can analyze statically as much about a package ecosystem as possible without running haskell code
15:48:30 <sclv> or rather without running arbitrary haskell code
15:48:43 <maerwald> package managers also use sandboxes
15:48:53 <maerwald> that's the right solution... it's just hard cross-platform
15:50:02 <sclv> no also you just don't want to have to run everyone's code just to understand their packages
15:50:04 <sclv> even without security
15:50:28 <kritzefitz> Mostly I'm a bit sore, because installing packages to prefixes isn't a thing since new-style cabal. And I'm pretty stuck on a project where I would need that.
15:50:46 <sclv> that's something we need a good story for
15:51:00 <sclv> the datafiles stuff is really hacky and we don't have a good full answer
15:51:05 coady joins (~coady@31.132.2.93)
15:51:32 <maerwald> sclv: uhm... you're constantly running a lot of code from your package manager that you didn't write. I don't think that's a criteria.
15:51:37 <adamCS> maerwald: Can't make it work. When I specify the repo via "-r https://github.com/haskell/haskell-language-server" I get "Invalid option `-r'" though then it lists that as an option in the subsequent help.
15:51:55 <maerwald> like, do you read all the source rpms, ebuilds, etc?
15:52:03 <kritzefitz> sclv: If that's what is missing, I would gladly help by writing down my intended use case. (Just not right now)
15:52:21 <sclv> kritzefitz: please do browse the tickets, and either comment on one or open a new one!
15:52:37 <maerwald> adamCS: sure the entire line
15:52:41 <maerwald> *show
15:52:56 ec joins (~ec@gateway/tor-sasl/ec)
15:53:06 <adamCS> maerwald: ghcup compile hls -v 1.4.0 -r "https://github.com/haskell/haskell-language-server" -g 9415e55672a0c60a353f0bff3ae8546bdf0e7903 -o 1.4-ro 8.10.7
15:53:29 <maerwald> adamCS: you can't combine -v and -r
15:53:29 burnsidesLlama joins (~burnsides@dhcp168-030.wadham.ox.ac.uk)
15:53:55 <maerwald> you want -g instead of -r
15:54:09 <adamCS> Oh!
15:54:14 <adamCS> That makes sense.
15:54:31 deadmarshal joins (~deadmarsh@95.38.114.152)
15:54:40 <maerwald> I'd also avoid 1.4-ro and use 1.4.1.1 or so (there's a bug in 0.1.17.3 with version suffixes)
15:54:57 <maerwald> which is fixed on master but not released
15:55:35 <adamCS> maerwald: Thank you!
15:55:59 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
15:56:12 <maerwald> sclv: my point is... I don't even trust cabal, not just Setup.hs. Ultimately, even ghcup would run within a syscall sandbox (e.g. because it invokes GHC makefiles, unrestricted)
15:56:14 chexum joins (~quassel@gateway/tor-sasl/chexum)
15:57:24 <maerwald> reducing custom API surface is a never ending effort
15:57:47 × johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection)
15:59:03 <maerwald> paludis uses sydbox (seccomp based), portage uses something else afair
15:59:13 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
15:59:26 × alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds)
16:00:07 <maerwald> https://gitweb.gentoo.org/proj/sandbox.git
16:00:46 <maerwald> ah, it uses ptrace
16:01:02 lavaman joins (~lavaman@98.38.249.169)
16:03:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:05:37 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
16:06:11 × boxscape_ quits (~boxscape_@134.171.69.87) (Ping timeout: 256 seconds)
16:08:12 [Kalisto]_ is now known as [Kalisto]
16:09:36 roconnor joins (~roconnor@host-45-58-217-8.dyn.295.ca)
16:11:19 <roconnor> When the Haskell report says "A Word is an unsigned integral type, with the same size as Int." What does the same "size" mean? Does it guarentee that it can hold at least up to 2^30-1 (twice maxBound of Int) or does it only guarentee up to 2^29-1 like Int?
16:11:29 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 264 seconds)
16:11:47 <k`> `WORD_SIZE`
16:11:48 <c_wraith> it means the same bit size
16:12:11 <c_wraith> also, it means "as the implementation's Int type"
16:12:35 <roconnor> okay, and Int's bitsize is at least 30, right?
16:12:36 <c_wraith> so it's less about the minimum range required for Int, and more about how the same compiler defined Int
16:13:06 alzgh joins (alzgh@user/alzgh)
16:13:07 <c_wraith> yes, it does mean it must be at least 30 bits
16:13:14 <roconnor> thanks.
16:13:19 <c_wraith> But more to the point, it must be the same size as Int
16:15:55 <roconnor> bitSize.
16:21:25 johnny_sitar joins (~artur@078088015209.bialystok.vectranet.pl)
16:22:46 rkrishnan joins (~user@122.167.19.65)
16:25:02 mimmyjau joins (~mimmyjau@72.142.88.18)
16:27:16 × mimmyjau quits (~mimmyjau@72.142.88.18) (Client Quit)
16:27:36 mimmyjau joins (~mimmy@72.142.88.18)
16:27:50 zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
16:28:01 jakalx joins (~jakalx@base.jakalx.net)
16:28:48 × mimmyjau quits (~mimmy@72.142.88.18) (Client Quit)
16:32:15 × zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds)
16:33:42 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
16:35:27 geekosaur joins (~geekosaur@xmonad/geekosaur)
16:35:31 × Kaipi quits (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer)
16:35:42 Kaipi joins (~Kaiepi@156.34.44.192)
16:36:44 × acidjnk_new quits (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Remote host closed the connection)
16:37:08 acidjnk_new joins (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de)
16:38:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
16:38:34 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:54fc:9972:155c:27b0) (Quit: WeeChat 2.8)
16:42:38 × acidjnk_new quits (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Remote host closed the connection)
16:42:59 acidjnk_new joins (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de)
16:45:57 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
16:46:18 × DNH quits (~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:47:27 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
16:51:45 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
16:52:07 <nf> hi, i'm trying to refactor this code https://github.com/ncfavier/ni/blob/master/src/Nirc.hs#L110 to float the execStateT [] initialContext to the top of the program, so that the main loop happens in the state monad
16:53:11 <nf> so now i need "lifted" versions of timeout and tryIOError that work with StateT (with the obvious semantics "restore the old state on timeout"). i was only able to find such a timeout in lifted-base, and tryIO in unliftio and others, but this feels a bit scattered
16:53:52 <nf> alternatively i could just store the context in an IORef
16:54:01 <nf> what would you do?
16:54:07 <monochrom> I recommend not.
16:54:41 <monochrom> But if you insist, perhaps the "layers" package offers yet another solution, complete or incomplete, I haven't deeply looked.
16:55:23 <monochrom> "lifting" is a very naïve idea once control flow is involved.
16:55:43 <monochrom> and a pandora's box
16:55:50 <monochrom> can of worms
16:56:52 <monochrom> The difficulty of timeout is that you now have two threads, too.
16:57:04 <nf> i'll look into layers
16:57:20 <nf> when you say you recommend not, did you mean the IORef part or the refactoring part?
16:57:23 <monochrom> What does it even mean to "lift" forkIO to StateT.
16:57:34 <nf> well, nothing
16:57:34 <monochrom> refactoring.
16:57:39 <monochrom> "refactoring"
16:57:45 <nf> i'm only interested in the special case of lifting timeout, with the semantics i mentioned
16:58:02 v01d4lph4 joins (~v01d4lph4@223.190.93.72)
16:58:02 × v01d4lph4 quits (~v01d4lph4@223.190.93.72) (Changing host)
16:58:02 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
16:58:08 <nf> yeah i guess it's more than refactoring
16:58:18 <monochrom> timeout is done by forkIO and a lot of other moving parts
16:58:32 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
16:59:49 notzmv joins (~zmv@user/notzmv)
17:00:10 <nf> so to be clear, what would you rather do? the goal being to reuse the context across invocations, instead of using initialContext every time
17:01:21 DNH joins (~DNH@8.43.122.53)
17:02:11 × ubert1 quits (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
17:02:50 lbseale joins (~lbseale@user/ep1ctetus)
17:05:10 × alzgh quits (alzgh@user/alzgh) (Ping timeout: 256 seconds)
17:07:18 dsal lifts pandora's box of worms
17:08:40 alzgh joins (~alzgh@user/alzgh)
17:09:22 <tomsmeding> dsal: pray don't open it
17:09:53 dsal unlifts
17:09:59 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection)
17:13:29 × nschoe quits (~quassel@2a01:e0a:8e:a190:b8f5:7f5:bf66:e7c) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:17:03 × hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Quit: Konversation terminated!)
17:18:57 zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
17:21:28 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
17:22:43 hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
17:23:22 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
17:23:58 × zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 268 seconds)
17:30:08 × urdh quits (~urdh@user/urdh) (Remote host closed the connection)
17:30:11 deadmarshal joins (~deadmarsh@95.38.114.152)
17:31:35 × rkrishnan quits (~user@122.167.19.65) (Ping timeout: 250 seconds)
17:34:03 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
17:34:28 awpr joins (uid446117@id-446117.lymington.irccloud.com)
17:34:40 ec joins (~ec@gateway/tor-sasl/ec)
17:39:07 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 256 seconds)
17:41:54 × royo quits (~royo@user/royo) (Ping timeout: 260 seconds)
17:42:10 deadmarshal joins (~deadmarsh@95.38.114.152)
17:44:35 × johnny_sitar quits (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 250 seconds)
17:45:08 × nvmd quits (~nvmd@user/nvmd) (Quit: Later, nerds.)
17:45:30 coady1 joins (~coady@94.196.131.116.threembb.co.uk)
17:46:50 coady2 joins (~coady@159.48.55.98)
17:48:11 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
17:48:39 × coady2 quits (~coady@159.48.55.98) (Client Quit)
17:49:19 × coady quits (~coady@31.132.2.93) (Ping timeout: 256 seconds)
17:50:11 × coady1 quits (~coady@94.196.131.116.threembb.co.uk) (Ping timeout: 264 seconds)
17:50:41 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
17:51:13 ec joins (~ec@gateway/tor-sasl/ec)
17:51:31 ski_ is now known as ski
17:51:48 × chele_ quits (~chele@user/chele) (Remote host closed the connection)
17:56:29 zebrag joins (~chris@user/zebrag)
17:56:49 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
17:57:33 × robosexual quits (~spaceoyst@88.85.216.62) (Quit: Konversation terminated!)
18:00:45 cheater joins (~Username@user/cheater)
18:01:35 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
18:03:03 td_ joins (~td@94.134.91.32)
18:04:26 econo joins (uid147250@user/econo)
18:10:22 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
18:10:44 zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
18:14:53 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
18:15:09 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Ping timeout: 268 seconds)
18:15:23 × zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 256 seconds)
18:15:31 v01d4lph4 joins (~v01d4lph4@223.190.93.72)
18:15:31 × v01d4lph4 quits (~v01d4lph4@223.190.93.72) (Changing host)
18:15:31 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
18:18:42 × DNH quits (~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:19:01 cosimone joins (~user@93-44-184-123.ip98.fastwebnet.it)
18:20:06 × jkaye quits (~jkaye@2601:281:8300:7530:212b:79de:3c7b:f9e0) (Ping timeout: 245 seconds)
18:22:33 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
18:22:43 yauhsien joins (~yauhsien@61-231-16-137.dynamic-ip.hinet.net)
18:25:38 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
18:28:05 neurocyte0132889 joins (~neurocyte@94.46.71.199)
18:28:05 × neurocyte0132889 quits (~neurocyte@94.46.71.199) (Changing host)
18:28:05 neurocyte0132889 joins (~neurocyte@user/neurocyte)
18:28:23 pgib joins (~textual@173.38.117.83)
18:29:02 × yauhsien quits (~yauhsien@61-231-16-137.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
18:33:07 × mcgroin quits (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds)
18:33:08 <joel135> can i get ghc/ghci to spit out the types of all subterms of a code block, like a typing derivation?
18:34:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:39:11 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
18:41:20 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:43:55 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Read error: Connection reset by peer)
18:43:58 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
18:44:23 ec joins (~ec@gateway/tor-sasl/ec)
18:44:32 emf joins (~emf@2620:10d:c090:400::5:69be)
18:50:49 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
18:54:52 jeslie0 joins (~user@135-23-172-182.cpe.pppoe.ca)
18:58:21 zincy_ joins (~zincy@host86-181-60-139.range86-181.btcentralplus.com)
18:58:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection)
18:58:51 <shapr> joel135: You can use haskell-language-server to do some of that.
18:59:45 × justache quits (~justache@user/justache) (Read error: Connection reset by peer)
19:00:08 jkaye joins (~jkaye@2601:281:8300:7530:65b4:1325:4217:bff5)
19:00:40 justache joins (~justache@user/justache)
19:03:05 × zincy_ quits (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Ping timeout: 264 seconds)
19:03:21 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
19:03:37 urdh joins (~urdh@user/urdh)
19:05:20 ec joins (~ec@gateway/tor-sasl/ec)
19:07:24 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
19:07:27 <mark__> Sorry, still trying to understand MMR and WHNF. If I do ":set -XNoMonomorphismRestriction; x = Just 1" and then force evaluation to WHNF "seq x ()" I get x = _. Why does it not eval until the first value constructor Just. The polymorphic thing is inside the Just.
19:08:31 <monochrom> If you don't mind one subterm at a time, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#ghci-cmd-:type-at
19:08:39 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
19:08:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
19:09:08 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
19:09:09 <monochrom> Or, if you don't mind all subterms of the whole file, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#ghci-cmd-:all-types
19:09:38 <monochrom> :type-at is what emacs haskell-mode and dante use.
19:09:42 DNH joins (~DNH@8.43.122.53)
19:09:57 <monochrom> It is also why I still don't need IDEs.
19:11:10 <monochrom> mark__, unfortunately you have "Num a => Maybe a" not "Maybe (Num a => a)".
19:11:33 <mark__> Thanks for the links. My theory is that (Just (1 :: Num a => a)) is in core something like (\$dNum -> Just ..) so the dict must be supplied at the start.
19:11:51 <monochrom> Equivalently, the polymorphic thing is precisely outside the Just.
19:12:22 <mark__> That makes sense.
19:12:23 <monochrom> Why? Because Hindley-Milner does neither rank-n nor impredicativity.
19:17:45 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 250 seconds)
19:21:07 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
19:21:21 jgeerds joins (~jgeerds@55d41b94.access.ecotel.net)
19:22:07 <joel135> shapr: good idea. i ended up settling with holes for now though
19:22:32 × chomwitt quits (~chomwitt@2a02:587:dc0f:7c00:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds)
19:22:53 <joel135> and simple redundant let bindings
19:33:13 zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
19:35:34 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
19:37:32 × zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 240 seconds)
19:40:32 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds)
19:41:10 × DNH quits (~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:41:15 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
19:51:14 player205 joins (~player205@net-93-71-138-138.cust.vodafonedsl.it)
19:51:37 × player205 quits (~player205@net-93-71-138-138.cust.vodafonedsl.it) (Client Quit)
19:51:55 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:52:20 player205 joins (~player205@net-93-71-138-138.cust.vodafonedsl.it)
19:54:03 ec joins (~ec@gateway/tor-sasl/ec)
19:56:30 × michalz quits (~michalz@185.246.204.33) (Remote host closed the connection)
19:56:55 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:02:38 lavaman joins (~lavaman@98.38.249.169)
20:03:26 DNH joins (~DNH@8.43.122.53)
20:05:02 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 240 seconds)
20:05:05 kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
20:06:41 × pgib quits (~textual@173.38.117.83) (Quit: 00 PC LOAD LETTER)
20:06:42 juhp joins (~juhp@128.106.188.220)
20:06:47 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 246 seconds)
20:08:58 × sander quits (~sander@user/sander) (Quit: So long! :))
20:13:36 mei3 joins (~mei@user/mei)
20:15:31 coady joins (~coady@159.48.55.98)
20:16:48 × coady quits (~coady@159.48.55.98) (Client Quit)
20:18:06 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
20:18:48 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
20:19:29 × alx741 quits (~alx741@181.196.68.101) (Ping timeout: 256 seconds)
20:20:03 × gehmehgeh_ quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds)
20:20:16 hololeap joins (~hololeap@user/hololeap)
20:21:05 gehmehgeh_ joins (~user@user/gehmehgeh)
20:21:38 nineonine joins (~nineonine@2604:3d08:7780:cd00:187c:a4eb:abb4:3c17)
20:22:46 deadmarshal joins (~deadmarsh@95.38.114.152)
20:24:02 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
20:24:49 zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
20:25:25 jushur joins (~human@user/jushur)
20:27:02 × deadmarshal quits (~deadmarsh@95.38.114.152) (Ping timeout: 240 seconds)
20:27:03 × burnsidesLlama quits (~burnsides@dhcp168-030.wadham.ox.ac.uk) (Remote host closed the connection)
20:27:17 Guest4249 joins (~Guest42@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
20:27:52 mc47 joins (~mc47@xmonad/TheMC47)
20:27:53 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
20:28:22 × hololeap quits (~hololeap@user/hololeap) (Read error: Connection reset by peer)
20:29:15 × zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 250 seconds)
20:30:08 kadir parts (~kadir@78.178.105.36) (WeeChat 3.3)
20:30:42 hololeap joins (~hololeap@user/hololeap)
20:30:55 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816) (Remote host closed the connection)
20:31:02 kayprish joins (~kayprish@46.240.130.158)
20:33:47 alx741 joins (~alx741@186.178.109.114)
20:34:49 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood)
20:35:04 themc47 joins (~mc47@xmonad/TheMC47)
20:35:11 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
20:36:42 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
20:37:34 falafel joins (~falafel@cpe-76-168-195-162.socal.res.rr.com)
20:38:17 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:40:30 × kayprish quits (~kayprish@46.240.130.158) (Quit: leaving)
20:40:40 kayprish joins (~kayprish@46.240.130.158)
20:47:02 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds)
20:50:00 beka joins (~beka@104.193.170.240)
20:51:20 jespada joins (~jespada@190.7.36.46)
20:51:55 × player205 quits (~player205@net-93-71-138-138.cust.vodafonedsl.it) (Quit: WeeChat 3.0.1)
20:55:09 <fendor[m]> Can I not pass -package-env to ghci using `:seti` or `:set`? ☹️
20:55:15 mcgroin joins (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
20:56:28 × jespada quits (~jespada@190.7.36.46) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:56:44 <monochrom> Probably too late after ghci has started.
20:56:49 <geekosaur> I think it's too late for that by that point? although 9.2.1 at least seems to think it's a dynamic option
20:58:18 <fendor[m]> well clearing the package db, and setting a couple of new ones should be easily possible at run-time
20:58:27 <fendor[m]> or am I missing a feature of package-envs?
20:59:17 <monochrom> No. Long in the past, I already discovered that ghci doesn't want to even know any change in the package db after startup.
21:00:02 <monochrom> And generally I wouldn't think in terms of "it should be easy for someone else to add a feature I want".
21:01:19 <fendor[m]> I am not, I rather mean "it should be possible, is there a reason why it isn't right now?" And if the answer is no, I am inclined to add that feature
21:02:06 <fendor[m]> and I bet the answer is "no particular reason, but it is complicated"
21:02:10 lavaman joins (~lavaman@98.38.249.169)
21:02:28 <geekosaur> one thoing thatoccurs to me is you'd potenntially have to throw out everything ghci currently knows and start over (like :load)
21:03:01 <geekosaur> perhaps not complicated, but possibly invasive and annoying to the user
21:03:21 <geekosaur> this said, many things ghci doesn't do just because nobody asked for it before
21:04:01 <fendor[m]> that is indeed true, if that is the only option that causes such reloads then it is rather annoying and unexpected
21:04:05 <geekosaur> ghci wasn't designed, it just kinda grew
21:04:58 burnsidesLlama joins (~burnsides@dhcp168-030.wadham.ox.ac.uk)
21:05:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:07:19 <fendor[m]> it is still amazingly good, imo
21:11:03 × themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:11:37 × burnsidesLlama quits (~burnsides@dhcp168-030.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
21:14:11 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:17:42 zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
21:19:13 <dsal> Heh, I just saw this via rss: http://logicaltypes.blogspot.com/2021/11/november-2021-1haskelladay-1liners.html
21:21:23 × mei3 quits (~mei@user/mei) (Ping timeout: 268 seconds)
21:22:17 × zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 264 seconds)
21:23:12 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
21:23:21 ec joins (~ec@gateway/tor-sasl/ec)
21:24:34 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:24:51 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:25:05 geekosaur joins (~geekosaur@xmonad/geekosaur)
21:25:09 × mikoto-c1 quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 250 seconds)
21:25:33 <yin> fun!
21:25:45 mikoto-c1 joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi)
21:26:02 <yin> @pl \f -> (\x -> f (x x)) (\x -> f (x x))
21:26:02 <lambdabot> ap (. join id) (. join id)
21:26:12 burnsidesLlama joins (~burnsides@dhcp168-030.wadham.ox.ac.uk)
21:26:15 <yin> @pl \f -> (\x -> x x) (\x -> f (x x))
21:26:15 <lambdabot> join id . (. join id)
21:26:19 <yin> :)
21:27:53 <kronicmage> @t \f -> (\x -> x x) (\x -> f (x x))
21:27:53 <lambdabot> Maybe you meant: tell thank you thanks thesaurus thx tic-tac-toe ticker time todo todo-add todo-delete type v @ ? .
21:27:59 vysn joins (~vysn@user/vysn)
21:29:02 <kronicmage> huh pl works on maltyped things
21:29:04 <kronicmage> til
21:29:23 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
21:29:24 <geekosaur> yeh, @pl just does substitutions, it doesn't really know haskell
21:30:00 <yin> fun!
21:31:00 <yin> what can we learn from this? i feel that `ap (. join id) (. join id)` should be a big insight
21:34:17 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds)
21:34:35 <dsal> I can learn that if I see that in code somewhere, someone didn't come up with it and probably doesn't understand it, but sent it through @pl and copied it because they thought it looked cool.
21:34:46 acidjnk_new3 joins (~acidjnk@p200300d0c721b7398586a2e711bd371d.dip0.t-ipconnect.de)
21:35:50 <Taneb> I did once write a horrifying program to calculate factorials that was mostly "pure", "(<*>)", and "unsafeCoerce"
21:36:04 <Taneb> It ran out of memory for numbers bigger than 11
21:36:20 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
21:38:29 × acidjnk_new quits (~acidjnk@p200300d0c724a7710420fe3aa4fdb454.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
21:39:41 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
21:39:48 <Taneb> If anyone has IRC logs for June 2012, it's probably linked to from there
21:42:48 <tomsmeding> for bonus points, replace (.) with fmap
21:43:06 <tomsmeding> fmap (join id) `ap` fmap (join id)
21:43:13 pavonia joins (~user@user/siracusa)
21:46:11 yauhsien joins (~yauhsien@118-167-47-187.dynamic-ip.hinet.net)
21:46:18 <dsal> :t fmap (join id) `ap` fmap (join id)
21:46:19 <lambdabot> error:
21:46:19 <lambdabot> • Occurs check: cannot construct the infinite type: a ~ a -> b1
21:46:19 <lambdabot> Expected type: a -> a -> b1
21:46:40 <dsal> So annoyed by haskell's finite types.
21:47:33 <yin> what would be the undesirable consequences of allowing infinite types?
21:47:46 <yin> besides non termination
21:48:28 <dsal> It's kind of hard to think about.
21:49:53 jmorris joins (uid433911@id-433911.hampstead.irccloud.com)
21:50:33 sander joins (~sander@user/sander)
21:50:43 × yauhsien quits (~yauhsien@118-167-47-187.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
21:51:45 zincy_ joins (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
21:52:23 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
21:52:43 alzgh joins (~alzgh@user/alzgh)
21:53:12 f-a joins (f2a@f2a.jujube.ircnow.org)
21:53:45 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 250 seconds)
21:55:55 × zincy_ quits (~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Ping timeout: 250 seconds)
21:57:02 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds)
21:57:27 <maerwald> tomsmeding: I love fmap so much, I think I actually did that once in production code
21:57:54 royo joins (~royo@user/royo)
21:58:14 <k`> :q
21:58:22 × k` quits (~user@152.1.137.158) (Remote host closed the connection)
21:59:39 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
21:59:57 <yin> dsal: too hard even for this channel?
21:59:59 <dolio> yin: Almost every time you under/over apply a function by accident, you could give it an infinite type.
22:00:48 <dolio> So, the only thing that gives you an error message instead of something much more confusing to figure out is rejecting infinite types.
22:01:19 f-a parts (f2a@f2a.jujube.ircnow.org) ()
22:01:39 <dolio> At least, deciding not to infer infinite types.
22:02:37 Noobish joins (~Noobish@64.150.15.15)
22:03:43 <monochrom> "f (x:xs) = ... f x ..." is also a common beginner mistake that, if accepted, would cause an infinite type.
22:03:56 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
22:04:04 <dolio> Yeah, lots of typos.
22:04:20 <dolio> (xs:x) instead of (x:xs).
22:04:29 <monochrom> Practical experience says that 99.99% of infinite types are typos, not intentional.
22:04:35 <dsal> infinite typos
22:04:53 <yin> :)
22:05:13 <dsal> I've not run into a situation where I wish I had an infinite type.
22:05:28 <monochrom> And among the intentional legit ones, 99% lead to hard-to-follow code.
22:05:34 <dsal> Why can't an element of a list be the same type as the list of the elements of that list?
22:06:05 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 264 seconds)
22:06:45 <yin> let a = [a] in [a]
22:06:46 <dolio> That's set theory.
22:07:33 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
22:07:48 <monochrom> It turns out that when you intend to have an infinite type, going isorecursive is nicer for your readers, e.g., with "newtype D = MkD{unD :: D->D}", your explicit "MkD foo" and "unD bar" help your reader recognize "ah you're now converting D to D->D" "ah you're now convering D->D to D".
22:08:26 <monochrom> In fact the same can be said of all recursive ADTs.
22:08:56 <monochrom> Infinite type is just a special case of the stance of equirecursive types.
22:09:24 × Noobish quits (~Noobish@64.150.15.15) (Remote host closed the connection)
22:11:14 <monochrom> And equi-vs-iso is in turn just a special case of structural-vs-nomial.
22:11:18 <monochrom> err, nominal
22:12:16 <monochrom> "type IntStream = (Int, IntStream)" vs "newtype IntStream = Ctor (Int, IntStream)"
22:13:21 × sagax quits (~sagax_nb@user/sagax) (Quit: Konversation terminated!)
22:18:34 <monochrom> Set theory has an "axiom of foundation" that disallows x = {x}, among related infinite-descent things.
22:19:03 <dolio> Yeah, but the cool set theories have the axiom of anti-foundation.
22:19:11 <monochrom> However! There are CS areas that find it useful to omit that axiom and allow infinite-descent sets.
22:20:12 <dolio> Actually, there are multiple variants of anti-foundation axioms, I think.
22:20:21 lbseale_ joins (~lbseale@user/ep1ctetus)
22:20:48 <dolio> Depending to the different kinds of cyclic graphs you allow sets to correspond to.
22:21:22 <yin> @def data Fix f = Fix (f (Fix f))
22:21:23 <lambdabot> Defined.
22:21:30 <monochrom> My favourite anti-foundation axiom is "it's lasagna all the way down" :P
22:21:32 <yin> @kind Fix
22:21:32 <lambdabot> (* -> *) -> *
22:21:54 <dolio> Also, like, if `x = {x}` and `y = {y}` does x = y?
22:23:15 <dolio> x is a set that contains itself, and y is a set that contains itself, but do they contain all the same sets?
22:23:33 <dsal> yin: do you have a good understanding of fix/Fix?
22:23:35 <dolio> Extensionality can't answer the question. :)
22:23:56 <yin> dsal: fix yes, Fix i think i'm struggling with
22:24:09 × lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 256 seconds)
22:24:44 <dsal> Fix is just fix at the type level. This is a good read: https://chrispenner.ca/posts/asts-with-fix-and-free
22:25:15 <yin> thanks!
22:25:17 × max22- quits (~maxime@2a01cb0883359800a8cb049c70e9b71a.ipv6.abo.wanadoo.fr) (Quit: Leaving)
22:28:14 <monochrom> We almost had the same issue with streams for example (generally coinductive types). If x=():x and y=():y, does x=y?
22:28:43 <monochrom> The narrow version of extensionality (two records are equal iff respect fields are equal) can't answer it either.
22:29:17 <monochrom> Eventually someone figured out "x and y are bisimilar, let's define 'equal' to just mean that".
22:29:26 <dolio> Exactly.
22:33:13 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds)
22:33:36 <yin> what if y = ():x ?
22:34:10 <monochrom> Then x and this y are bisimilar, too.
22:34:37 Sgeo joins (~Sgeo@user/sgeo)
22:34:52 × Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
22:34:55 <yin> so infinity+1 == infinity
22:35:25 <monochrom> I wouldn't jump to that conclusion. : is not +, x is not infinity.
22:35:32 × zebrag quits (~chris@user/zebrag) (Ping timeout: 246 seconds)
22:35:53 zebrag joins (~chris@user/zebrag)
22:36:07 <yin> can't you make the argument that at the type level that wuld be peano infinity?
22:36:36 <yin> (i don't know what i'm saying)
22:36:37 <monochrom> I don't know peano infinity and I don't know that argument.
22:36:44 × cosimone quits (~user@93-44-184-123.ip98.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1))
22:37:43 <awpr> sounds to me like: if you define a peano naturals type in Haskell, you get an extra inhabitant `infinity = S infinity`, and that is in the same sense bisimilar to `S infinity`
22:37:59 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
22:38:11 <dolio> Depends how you define it.
22:38:13 <awpr> IIUC it's not supposed to be a member of the Peano naturals, but it sneaks in due to laziness
22:38:15 × gehmehgeh_ quits (~user@user/gehmehgeh) (Quit: Leaving)
22:38:32 <awpr> "how you define it" = by not using a strict field?
22:38:39 <dolio> Right.
22:39:53 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
22:41:33 × opqdonut quits (opqdonut@pseudo.fixme.fi) (Ping timeout: 268 seconds)
22:41:48 opqdonut joins (opqdonut@pseudo.fixme.fi)
22:41:52 <monochrom> Yes, I was waiting for you to set up an explicit homomorphism from [()] to "data N = Z | S N", and then the conclusion is OK.
22:42:40 <yin> ^
22:42:58 finsternis joins (~X@23.226.237.192)
22:43:54 <Axman6> type FatPeano = [()]
22:44:49 <yin> @type [( )]
22:44:50 <lambdabot> [()]
22:47:40 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
22:51:20 <yin> can a compiler optimize something like `data L a = L a (Maybe (L a))` to `data L a = E a | N a (L a)` ?
22:51:39 <sclv> kritzefitz: btw is this ticket germane to the discussion we were having this morning? https://github.com/haskell/cabal/issues/3586
22:53:32 <Axman6> yin: no
22:53:46 <yin> Axman6: could it, theretically?
22:53:51 <Axman6> unboxed sum types might helkp though
22:54:24 <Axman6> you''d end up with data L a = L a (#a|Void#) or something
22:54:38 <Axman6> uh,
22:54:55 <Axman6> data L a = L a (#L a|Void#)
22:55:06 <Axman6> which... doesn't make sense I think
22:55:21 <Axman6> that would lead to an infinitely sized L so no
22:55:33 <hpc> rust does something like this, but it helps that rust is strict
22:55:43 <Axman6> anyway, no - maybe it could but it doesn't. what would be the reason for doing that? Saving an indirection?
22:56:09 <yin> yes, that's what i has in mind
22:56:24 <yin> s/has/had
22:56:42 <monochrom> Saves a little memory, "E 3" stores less than "L 3 Nothing".
22:57:23 wootehfoot joins (~wootehfoo@user/wootehfoot)
22:57:26 <yin> and all the Justs, i'm thinking
22:57:29 <yin> n?
22:57:45 <janus> another cabal-docspec success story: https://github.com/sol/doctest/issues/301#issuecomment-965818593 oh happy day
22:57:56 sagax joins (~sagax_nb@user/sagax)
23:00:05 <Axman6> it's an interesting idea, but possibly only works in a small number of cases. what do you want the compiler to do with data L a = L a (Maybe (L a)) (Maybe (L a))? should we get four constructors?
23:01:35 × CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
23:01:43 <geekosaur> a sufficiently clever compiler might convert that into a tree. question becomes, what kind of tree?
23:03:36 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:06:09 <yin> that would be `data K a = E | K a; data L a = L a (K a) (K a)`
23:07:15 <yin> i mean: `data K a = E | K (L a); data L a = L a (K a) (K a)` ?
23:07:35 <yin> K is Maybe
23:07:43 <yin> ok i get your point
23:08:12 brandonh joins (brandonh@gateway/vpn/protonvpn/brandonh)
23:08:20 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
23:09:42 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
23:10:35 × jkaye quits (~jkaye@2601:281:8300:7530:65b4:1325:4217:bff5) (Ping timeout: 264 seconds)
23:13:26 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds)
23:16:31 × xff0x quits (~xff0x@2001:1a81:53aa:5400:2665:d30f:dc60:ace5) (Ping timeout: 250 seconds)
23:17:13 xff0x joins (~xff0x@2001:1a81:53aa:5400:8327:d2de:b0b3:bf1)
23:19:40 lbseale__ joins (~lbseale@user/ep1ctetus)
23:19:55 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:dcad:8023:d7ab:9816)
23:23:02 × lbseale_ quits (~lbseale@user/ep1ctetus) (Ping timeout: 240 seconds)
23:28:32 × beka quits (~beka@104.193.170.240) (Ping timeout: 240 seconds)
23:35:38 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:41:59 brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d)
23:42:13 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
23:45:13 × servytor quits (uid525486@id-525486.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
23:51:38 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:57:32 × jiribenes quits (~jiribenes@rosa.jiribenes.com) (Remote host closed the connection)
23:57:37 ec joins (~ec@gateway/tor-sasl/ec)
23:57:41 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds)
23:58:16 jiribenes joins (~jiribenes@rosa.jiribenes.com)
23:58:54 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)

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