2023/02/04

2023-02-04 00:00:26 +0100kassouni(~kassouni@2601:646:400:68b0:f5a4:b4c5:300f:d7b8)
2023-02-04 00:08:55 +0100tessier(~treed@98.171.210.130) (Ping timeout: 252 seconds)
2023-02-04 00:10:43 +0100tessier(~treed@98.97.142.157)
2023-02-04 00:12:21 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2023-02-04 00:13:48 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-02-04 00:15:11 +0100slack1256(~slack1256@186.11.59.217) (Ping timeout: 248 seconds)
2023-02-04 00:16:50 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 00:21:04 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 248 seconds)
2023-02-04 00:31:23 +0100Alex_test(~al_test@178.34.160.79) (Ping timeout: 260 seconds)
2023-02-04 00:32:16 +0100AlexZenon(~alzenon@178.34.160.79) (Ping timeout: 248 seconds)
2023-02-04 00:35:26 +0100Alex_test(~al_test@178.34.160.79)
2023-02-04 00:37:00 +0100AlexZenon(~alzenon@178.34.160.79)
2023-02-04 00:39:11 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
2023-02-04 00:41:03 +0100kassouni(~kassouni@2601:646:400:68b0:f5a4:b4c5:300f:d7b8) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-02-04 00:41:05 +0100theproffesor(~theproffe@user/theproffesor) (Ping timeout: 260 seconds)
2023-02-04 00:41:38 +0100kassouni(~kassouni@2601:646:400:68b0:f5a4:b4c5:300f:d7b8)
2023-02-04 00:44:19 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-02-04 00:46:57 +0100tessier(~treed@98.97.142.157) (Ping timeout: 268 seconds)
2023-02-04 00:48:32 +0100tessier(~treed@98.171.210.130)
2023-02-04 00:50:04 +0100gurkenglas(~gurkengla@dynamic-046-114-179-193.46.114.pool.telefonica.de) (Ping timeout: 260 seconds)
2023-02-04 00:59:31 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 01:04:36 +0100jakalx(~jakalx@base.jakalx.net) ()
2023-02-04 01:06:07 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2023-02-04 01:06:31 +0100brettgilio(~brettgili@x-irc.gq) (Ping timeout: 252 seconds)
2023-02-04 01:06:50 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-02-04 01:07:23 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 01:08:08 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-02-04 01:11:01 +0100kassouni(~kassouni@2601:646:400:68b0:f5a4:b4c5:300f:d7b8) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-02-04 01:11:37 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
2023-02-04 01:13:40 +0100kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
2023-02-04 01:21:51 +0100kassouni(~kassouni@2601:646:400:68b0:f5a4:b4c5:300f:d7b8)
2023-02-04 01:26:14 +0100tessier(~treed@98.171.210.130) (Ping timeout: 260 seconds)
2023-02-04 01:27:48 +0100tessier(~treed@98.97.142.157)
2023-02-04 01:35:35 +0100Guest57(~Guest57@a109-51-125-39.cpe.netcabo.pt)
2023-02-04 01:35:56 +0100Guest57(~Guest57@a109-51-125-39.cpe.netcabo.pt) (Client Quit)
2023-02-04 01:38:42 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-02-04 01:38:57 +0100kassouni(~kassouni@2601:646:400:68b0:f5a4:b4c5:300f:d7b8) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-02-04 01:45:02 +0100falafel(~falafel@2607:fb91:143f:e47f:6cd4:3764:846a:ef34)
2023-02-04 01:47:43 +0100acidjnk_new3(~acidjnk@p200300d6e715c4384c61433e25d9b335.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-02-04 01:51:10 +0100kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2023-02-04 01:57:49 +0100xff0x(~xff0x@2405:6580:b080:900:e7c5:c7:8d46:6e81) (Ping timeout: 252 seconds)
2023-02-04 01:58:26 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 01:58:52 +0100enthropy(~enthropy@66.7.90.250) (Quit: Client closed)
2023-02-04 01:59:43 +0100falafel(~falafel@2607:fb91:143f:e47f:6cd4:3764:846a:ef34) (Ping timeout: 248 seconds)
2023-02-04 01:59:45 +0100xff0x(~xff0x@178.255.149.135)
2023-02-04 02:01:27 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2023-02-04 02:01:58 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-02-04 02:02:37 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
2023-02-04 02:03:40 +0100califax(~califax@user/califx)
2023-02-04 02:03:49 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2023-02-04 02:04:03 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds)
2023-02-04 02:04:49 +0100_leo___(~emmanuelu@user/emmanuelux) (Ping timeout: 252 seconds)
2023-02-04 02:05:29 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-02-04 02:08:15 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-02-04 02:09:13 +0100xff0x(~xff0x@178.255.149.135) (Ping timeout: 252 seconds)
2023-02-04 02:09:46 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-02-04 02:09:46 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-02-04 02:09:46 +0100wroathe(~wroathe@user/wroathe)
2023-02-04 02:10:29 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-02-04 02:10:57 +0100xff0x(~xff0x@2405:6580:b080:900:e7c5:c7:8d46:6e81)
2023-02-04 02:11:36 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-02-04 02:12:34 +0100talismanick(~talismani@campus-119-100.ucdavis.edu)
2023-02-04 02:16:35 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-02-04 02:19:27 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 252 seconds)
2023-02-04 02:20:38 +0100enthropy(~enthropy@66.7.90.250)
2023-02-04 02:22:14 +0100tessier(~treed@98.97.142.157) (Ping timeout: 260 seconds)
2023-02-04 02:23:09 +0100troydm(~troydm@user/troydm) (Ping timeout: 268 seconds)
2023-02-04 02:23:55 +0100tessier(~treed@98.171.210.130)
2023-02-04 02:26:03 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 02:30:27 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 252 seconds)
2023-02-04 02:33:59 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 02:34:28 +0100 <segfaultfizzbuzz> "abstract away too little and you're doing something the computer ought to be doing for you" - this is a good quote
2023-02-04 02:35:25 +0100 <smol-hors> Downloading the latest package list from hackage.haskell.org
2023-02-04 02:35:32 +0100 <smol-hors> does this usually take a fairly long time?
2023-02-04 02:35:47 +0100 <segfaultfizzbuzz> smol-hors: what kind of dialup are you using
2023-02-04 02:35:57 +0100 <smol-hors> no
2023-02-04 02:35:59 +0100 <segfaultfizzbuzz> do you have at least a 14400 baud modem?
2023-02-04 02:36:16 +0100 <smol-hors> well it's been there for like 5 minutes
2023-02-04 02:36:19 +0100 <segfaultfizzbuzz> what about at least a pentium?
2023-02-04 02:36:50 +0100 <monochrom> Ugh please don't mock.
2023-02-04 02:37:27 +0100 <smol-hors> should I just ^C and try again?
2023-02-04 02:37:31 +0100 <monochrom> But it usually don't take 5 minutes.
2023-02-04 02:37:49 +0100 <monochrom> I don't know. I would try that.
2023-02-04 02:37:56 +0100 <segfaultfizzbuzz> i'm just joking around ;-)
2023-02-04 02:39:45 +0100 <smol-hors> ok it worked, thanks monochrom
2023-02-04 02:40:15 +0100 <enthropy> is there a better name than generalizing the instance head for the following: `instance C (Either a a)` -> `instance a ~ b => C (Either a b)`?
2023-02-04 02:43:23 +0100cheater_(~Username@user/cheater)
2023-02-04 02:44:43 +0100 <c_wraith> Name for it? dunno. "making it work right?" :P
2023-02-04 02:45:55 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2023-02-04 02:45:59 +0100cheater_cheater
2023-02-04 02:46:05 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 02:48:07 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
2023-02-04 02:48:25 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2023-02-04 03:00:15 +0100nek0(~nek0@2a01:4f8:222:2b41::12) (Ping timeout: 260 seconds)
2023-02-04 03:01:58 +0100hounded_woodstoc(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Quit: Leaving)
2023-02-04 03:01:58 +0100hounded(~hounded@2603-7000-da43-eccc-0000-0000-0000-0cec.res6.spectrum.com) (Quit: Leaving)
2023-02-04 03:02:43 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 03:07:05 +0100slack1256(~slack1256@186.11.59.217)
2023-02-04 03:08:25 +0100ddellacosta(~ddellacos@146.70.166.170)
2023-02-04 03:16:55 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-02-04 03:20:34 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2023-02-04 03:21:00 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-02-04 03:24:20 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-02-04 03:24:50 +0100thongpv(~thongpv87@2402:9d80:3b2:62da:2b21:8460:5472:b842)
2023-02-04 03:26:55 +0100Cadey(~cadey@tailscale/xe)
2023-02-04 03:28:27 +0100Xe(~cadey@tailscale/xe) (Quit: WeeChat 3.5)
2023-02-04 03:32:58 +0100CadeyXe
2023-02-04 03:33:37 +0100razetime(~Thunderbi@117.193.5.54)
2023-02-04 03:34:28 +0100enthropy(~enthropy@66.7.90.250) (Quit: Client closed)
2023-02-04 03:36:54 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
2023-02-04 03:36:54 +0100cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 260 seconds)
2023-02-04 03:37:07 +0100cods(~fred@82-65-232-44.subs.proxad.net)
2023-02-04 03:44:29 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
2023-02-04 03:46:24 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-04 03:46:35 +0100talismanick(~talismani@campus-119-100.ucdavis.edu) (Ping timeout: 260 seconds)
2023-02-04 03:55:54 +0100gmg(~user@user/gehmehgeh)
2023-02-04 03:58:41 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-02-04 03:59:08 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 03:59:48 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 04:04:31 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-04 04:09:13 +0100td_(~td@i5387090B.versanet.de) (Ping timeout: 268 seconds)
2023-02-04 04:10:38 +0100td_(~td@i53870930.versanet.de)
2023-02-04 04:11:19 +0100jero98772(~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) (Remote host closed the connection)
2023-02-04 04:13:35 +0100bilegeek(~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e) (Remote host closed the connection)
2023-02-04 04:13:56 +0100bilegeek(~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e)
2023-02-04 04:15:33 +0100bilegeek_(~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e)
2023-02-04 04:16:10 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-02-04 04:18:40 +0100bilegeek(~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e) (Ping timeout: 260 seconds)
2023-02-04 04:20:23 +0100slack1256(~slack1256@186.11.59.217) (Remote host closed the connection)
2023-02-04 04:21:38 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 04:26:15 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 260 seconds)
2023-02-04 04:31:51 +0100falafel(~falafel@2607:fb91:143f:e47f:6cd4:3764:846a:ef34)
2023-02-04 04:32:44 +0100motherfsck(~motherfsc@user/motherfsck) (Quit: quit)
2023-02-04 04:34:24 +0100nek0(~nek0@2a01:4f8:222:2b41::12)
2023-02-04 04:36:06 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2023-02-04 04:37:21 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-02-04 04:37:21 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-02-04 04:37:21 +0100finn_elijaFinnElija
2023-02-04 04:42:04 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat)
2023-02-04 04:42:04 +0100tomku(~tomku@user/tomku) (Read error: Connection reset by peer)
2023-02-04 04:42:18 +0100tomku(~tomku@user/tomku)
2023-02-04 04:43:24 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::)
2023-02-04 04:45:58 +0100falafel(~falafel@2607:fb91:143f:e47f:6cd4:3764:846a:ef34) (Ping timeout: 252 seconds)
2023-02-04 04:48:46 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 04:50:11 +0100rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-05-174-88-194-86.dsl.bell.ca) (Ping timeout: 256 seconds)
2023-02-04 04:56:35 +0100Guest75(~Guest75@178.141.147.162)
2023-02-04 04:57:31 +0100razetime(~Thunderbi@117.193.5.54) (Ping timeout: 252 seconds)
2023-02-04 05:08:07 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2023-02-04 05:08:51 +0100tessier(~treed@98.171.210.130) (Ping timeout: 252 seconds)
2023-02-04 05:09:32 +0100irrgit_(~irrgit@146.70.27.218)
2023-02-04 05:10:32 +0100tessier(~treed@98.97.142.157)
2023-02-04 05:10:44 +0100irrgit__(~irrgit@89.47.234.26)
2023-02-04 05:13:37 +0100irrgit(~irrgit@86.106.90.226) (Ping timeout: 252 seconds)
2023-02-04 05:14:43 +0100irrgit_(~irrgit@146.70.27.218) (Ping timeout: 252 seconds)
2023-02-04 05:24:38 +0100thongpv(~thongpv87@2402:9d80:3b2:62da:2b21:8460:5472:b842) (Remote host closed the connection)
2023-02-04 05:24:44 +0100razetime(~Thunderbi@117.193.5.54)
2023-02-04 05:26:08 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-04 05:33:08 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 05:35:13 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 05:39:27 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-04 05:44:55 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 05:46:47 +0100falafel(~falafel@172.58.187.198)
2023-02-04 05:51:25 +0100infinity0(~infinity0@pwned.gg) (Ping timeout: 252 seconds)
2023-02-04 05:53:44 +0100thongpv(~thongpv87@123.31.161.115)
2023-02-04 05:56:05 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-02-04 05:58:43 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
2023-02-04 06:07:09 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2023-02-04 06:11:43 +0100gawen_(~gawen@user/gawen) (Quit: cya)
2023-02-04 06:13:04 +0100gawen(~gawen@user/gawen)
2023-02-04 06:13:10 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 268 seconds)
2023-02-04 06:14:42 +0100mechap_(~mechap@user/mechap)
2023-02-04 06:15:24 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-02-04 06:15:24 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-02-04 06:15:24 +0100wroathe(~wroathe@user/wroathe)
2023-02-04 06:16:09 +0100tessier(~treed@98.97.142.157) (Ping timeout: 260 seconds)
2023-02-04 06:17:39 +0100laalyn(~laalyn@c-73-241-126-7.hsd1.ca.comcast.net)
2023-02-04 06:17:54 +0100mechap(~mechap@user/mechap) (Ping timeout: 260 seconds)
2023-02-04 06:22:47 +0100tessier(~treed@98.171.210.130)
2023-02-04 06:23:02 +0100falafel(~falafel@172.58.187.198) (Ping timeout: 268 seconds)
2023-02-04 06:23:02 +0100dolio(~dolio@130.44.134.54) (Ping timeout: 268 seconds)
2023-02-04 06:23:21 +0100dolio(~dolio@130.44.134.54)
2023-02-04 06:29:58 +0100opticblast(~Thunderbi@172.58.82.233) (Read error: Connection reset by peer)
2023-02-04 06:30:11 +0100opticblast(~Thunderbi@172.58.86.236)
2023-02-04 06:38:54 +0100thongpv(~thongpv87@123.31.161.115) (Ping timeout: 260 seconds)
2023-02-04 07:06:56 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2023-02-04 07:08:07 +0100theproffesor(~theproffe@2601:282:8800:3f30::d2a1)
2023-02-04 07:08:07 +0100theproffesor(~theproffe@2601:282:8800:3f30::d2a1) (Changing host)
2023-02-04 07:08:07 +0100theproffesor(~theproffe@user/theproffesor)
2023-02-04 07:08:36 +0100czy(~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net)
2023-02-04 07:11:15 +0100varoo(~varoo@117.203.246.41)
2023-02-04 07:15:18 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-02-04 07:15:41 +0100czy(~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net) (ERC 5.4 (IRC client for GNU Emacs 28.2))
2023-02-04 07:28:14 +0100jakalx(~jakalx@base.jakalx.net)
2023-02-04 07:28:55 +0100tessier(~treed@98.171.210.130) (Ping timeout: 252 seconds)
2023-02-04 07:29:35 +0100tessier(~treed@98.171.210.130)
2023-02-04 07:31:18 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-02-04 07:44:20 +0100bilegeek_(~bilegeek@2600:1008:b024:9ac8:31f:a878:7a7e:b80e) (Quit: Leaving)
2023-02-04 07:46:12 +0100Feuermagier_(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2023-02-04 07:50:26 +0100Feuermagier(~Feuermagi@user/feuermagier)
2023-02-04 07:51:11 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-04 07:57:13 +0100talismanick(~talismani@2601:200:c181:4c40::1be2)
2023-02-04 08:03:45 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 08:05:14 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 08:08:15 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
2023-02-04 08:17:52 +0100roconnor(~quassel@coq/roconnor) (Ping timeout: 248 seconds)
2023-02-04 08:19:25 +0100gurkenglas(~gurkengla@dynamic-046-114-179-193.46.114.pool.telefonica.de)
2023-02-04 08:21:36 +0100thongpv(~thongpv87@2402:9d80:3bd:3161:3524:4b7d:4e21:676)
2023-02-04 08:32:47 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-04 08:41:38 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 08:42:48 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
2023-02-04 08:42:58 +0100Feuermagier_(~Feuermagi@user/feuermagier)
2023-02-04 08:43:00 +0100Feuermagier_(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2023-02-04 08:44:52 +0100opticblast(~Thunderbi@172.58.86.236) (Ping timeout: 268 seconds)
2023-02-04 08:45:15 +0100Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 260 seconds)
2023-02-04 08:47:19 +0100phma(~phma@2001:5b0:210d:59b8:b6b0:7ecf:e3da:b5e5) (Read error: Connection reset by peer)
2023-02-04 08:48:03 +0100phma(~phma@host-67-44-208-10.hnremote.net)
2023-02-04 08:57:12 +0100gurkenglas(~gurkengla@dynamic-046-114-179-193.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2023-02-04 09:01:06 +0100razetime(~Thunderbi@117.193.5.54) (Read error: Connection reset by peer)
2023-02-04 09:01:31 +0100razetime(~Thunderbi@117.193.5.54)
2023-02-04 09:05:35 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-02-04 09:05:51 +0100razetime(~Thunderbi@117.193.5.54) (Ping timeout: 248 seconds)
2023-02-04 09:08:29 +0100eruditass(uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-02-04 09:10:57 +0100Lycurgus(~juan@user/Lycurgus)
2023-02-04 09:13:08 +0100Guest75(~Guest75@178.141.147.162) (Ping timeout: 260 seconds)
2023-02-04 09:13:22 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2023-02-04 09:13:50 +0100thongpv(~thongpv87@2402:9d80:3bd:3161:3524:4b7d:4e21:676) (Ping timeout: 260 seconds)
2023-02-04 09:14:30 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds)
2023-02-04 09:15:24 +0100Feuermagier(~Feuermagi@user/feuermagier)
2023-02-04 09:20:17 +0100thongpv(~thongpv87@123.31.161.115)
2023-02-04 09:20:40 +0100razetime(~Thunderbi@117.193.5.54)
2023-02-04 09:28:30 +0100 <Inst> curious about Haskell syntax
2023-02-04 09:28:57 +0100 <Inst> would Haskell have better syntax if, say, you could have a name be an operator by default by including a non-reserved symbol in it?
2023-02-04 09:29:32 +0100 <Inst> actually, if it starts with a symbol, it's an operator, if it starts with a character or underscore, it's a name binding or function
2023-02-04 09:29:38 +0100 <Inst> =is
2023-02-04 09:30:21 +0100 <mauke> that's already how it works
2023-02-04 09:39:52 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-02-04 09:40:04 +0100 <freeside> Inst: are you saying you want to be able to define something like (<p>) in the same way you can define (<+>)
2023-02-04 09:40:47 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-02-04 09:41:59 +0100 <Inst> ya
2023-02-04 09:42:19 +0100 <Inst> "parse error on put )
2023-02-04 09:42:32 +0100 <Inst> input, it's not how it already works
2023-02-04 09:42:45 +0100 <Inst> I want to be able to use =is and get default operator without backticks
2023-02-04 09:42:47 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2023-02-04 09:42:50 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-02-04 09:43:37 +0100kuribas(~user@ptr-17d51eoxqxns4cyal2u.18120a2.ip6.access.telenet.be)
2023-02-04 09:43:58 +0100Feuermagier_(~Feuermagi@user/feuermagier)
2023-02-04 09:44:03 +0100Feuermagier(~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
2023-02-04 09:48:01 +0100 <mauke> ah, you want to change the tokenizer to produce new kinds of symbols, not change how existing symbols are interpreted
2023-02-04 09:49:41 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-02-04 09:55:37 +0100Feuermagier(~Feuermagi@user/feuermagier)
2023-02-04 09:58:53 +0100Feuermagier_(~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds)
2023-02-04 10:13:47 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-02-04 10:16:52 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-02-04 10:17:13 +0100Athas(~athas@sigkill.dk) (Quit: ZNC 1.8.2 - https://znc.in)
2023-02-04 10:18:05 +0100Athas(~athas@2a01:7c8:aaac:1cf:70d2:94d:d702:e8d6)
2023-02-04 10:27:33 +0100viktorvalen(~viktorval@pool-98-116-90-86.nycmny.fios.verizon.net)
2023-02-04 10:32:01 +0100acidjnk_new3(~acidjnk@p200300d6e715c439d991e45717e1c302.dip0.t-ipconnect.de)
2023-02-04 10:37:41 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-02-04 10:38:48 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-02-04 10:46:12 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad) (Remote host closed the connection)
2023-02-04 10:46:59 +0100 <freeside> I have been browsing the IntertubeOverflow24DaysWikiBook but the closest thing I've found is PostfixOperators.
2023-02-04 10:51:42 +0100mc47(~mc47@xmonad/TheMC47)
2023-02-04 10:51:47 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-02-04 10:53:17 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-02-04 10:53:29 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-02-04 10:56:04 +0100Feuermagier(~Feuermagi@user/feuermagier) (Quit: Leaving)
2023-02-04 11:06:08 +0100varoo(~varoo@117.203.246.41) (Remote host closed the connection)
2023-02-04 11:06:24 +0100varoo(~varoo@117.203.246.41)
2023-02-04 11:07:04 +0100acidjnk_new3(~acidjnk@p200300d6e715c439d991e45717e1c302.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2023-02-04 11:08:56 +0100varoo(~varoo@117.203.246.41) (Client Quit)
2023-02-04 11:09:08 +0100varoo(~varoo@117.203.246.41)
2023-02-04 11:09:29 +0100Feuermagier(~Feuermagi@user/feuermagier)
2023-02-04 11:12:23 +0100Feuermagier(~Feuermagi@user/feuermagier) (Client Quit)
2023-02-04 11:14:00 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-02-04 11:14:40 +0100acidjnk(~acidjnk@p200300d6e715c439801b1c59a37bf11b.dip0.t-ipconnect.de)
2023-02-04 11:14:47 +0100cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 252 seconds)
2023-02-04 11:14:59 +0100cods(~fred@82-65-232-44.subs.proxad.net)
2023-02-04 11:20:51 +0100irrgit_(~irrgit@86.106.90.226)
2023-02-04 11:22:20 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-02-04 11:23:28 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-02-04 11:23:57 +0100irrgit__(~irrgit@89.47.234.26) (Ping timeout: 252 seconds)
2023-02-04 11:24:57 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-02-04 11:31:16 +0100thongpv87(~thongpv87@123.31.161.115)
2023-02-04 11:33:07 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds)
2023-02-04 11:33:36 +0100thongpv(~thongpv87@123.31.161.115) (Ping timeout: 248 seconds)
2023-02-04 11:38:57 +0100mechap_mechap
2023-02-04 11:45:58 +0100danza(~francesco@151.37.157.83)
2023-02-04 11:46:40 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad)
2023-02-04 11:46:49 +0100 <razetime> i'm trying to use cabal repl in a package and it rebuilds the whole project even after i do cabal build. what do i do?
2023-02-04 11:47:39 +0100mastarija(~mastarija@2a05:4f46:e03:6000:d6e5:35ff:2a87:b1b7)
2023-02-04 11:52:21 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad) (Ping timeout: 256 seconds)
2023-02-04 11:54:28 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-02-04 11:57:00 +0100varoo(~varoo@117.203.246.41) (Remote host closed the connection)
2023-02-04 11:57:18 +0100varoo(~varoo@117.203.246.41)
2023-02-04 11:59:51 +0100caef^(~caef@c-24-30-76-89.hsd1.ga.comcast.net)
2023-02-04 12:03:58 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-02-04 12:16:08 +0100 <freeside> based on my experiences with 'stack build' followed by 'stack ghci', i believe this is expected behaviour.
2023-02-04 12:16:38 +0100 <freeside> what do i do? i make tea. you may prefer coffee.
2023-02-04 12:20:18 +0100 <razetime> sigh, I guess I will go out for a walk.
2023-02-04 12:21:16 +0100mastarija(~mastarija@2a05:4f46:e03:6000:d6e5:35ff:2a87:b1b7) (Quit: WeeChat 3.7.1)
2023-02-04 12:22:07 +0100razetime(~Thunderbi@117.193.5.54) (Quit: See You Space Cowboy)
2023-02-04 12:23:06 +0100tabaqui(~root@88.231.63.172)
2023-02-04 12:24:01 +0100 <freeside> this may be helpfuL: in my .ghcid, I have --test=":main --rerun-all-on-success" --warn
2023-02-04 12:24:39 +0100 <freeside> and in my .ghci I have :set -isrc and :l test/Spec.hs
2023-02-04 12:25:11 +0100 <freeside> in combination, when i run ghcid, it runs a watch on my src dir, automatically reloads upon change, and runs tests
2023-02-04 12:30:44 +0100haskl(~haskl@user/haskl) (Read error: Connection reset by peer)
2023-02-04 12:33:15 +0100haskl(~haskl@user/haskl)
2023-02-04 12:37:33 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de)
2023-02-04 12:45:34 +0100hpc(~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 252 seconds)
2023-02-04 12:47:11 +0100hpc(~juzz@ip98-169-35-163.dc.dc.cox.net)
2023-02-04 12:50:06 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 12:56:28 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2023-02-04 13:04:54 +0100danza(~francesco@151.37.157.83) (Read error: Connection reset by peer)
2023-02-04 13:07:02 +0100santiagopim(~user@90.167.66.131)
2023-02-04 13:12:34 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-02-04 13:16:54 +0100Angelz(Angelz@Angelz.oddprotocol.org) (Quit: IRCNow and Forever!)
2023-02-04 13:18:51 +0100talismanick(~talismani@2601:200:c181:4c40::1be2) (Ping timeout: 255 seconds)
2023-02-04 13:19:21 +0100danza(~francesco@151.57.102.160)
2023-02-04 13:21:19 +0100biberu(~biberu@user/biberu) (Ping timeout: 252 seconds)
2023-02-04 13:24:06 +0100biberu(~biberu@user/biberu)
2023-02-04 13:34:35 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
2023-02-04 13:35:04 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-02-04 13:37:06 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 13:42:25 +0100Guest75(~Guest75@178.141.147.162)
2023-02-04 13:53:31 +0100 <jean-paul[m]> is there something like Data.Binary.Put that admits the possibility of failure?
2023-02-04 13:56:06 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-02-04 13:59:03 +0100biberu(~biberu@user/biberu) (Quit: ZNC - https://znc.in)
2023-02-04 14:00:04 +0100biberu(~biberu@user/biberu)
2023-02-04 14:02:13 +0100 <danza> it might be possible to add a Put instance for MonadFail
2023-02-04 14:02:25 +0100biberu(~biberu@user/biberu) (Client Quit)
2023-02-04 14:02:46 +0100 <freeside> the changelog https://github.com/kolmodin/binary/blob/master/changelog.md#binary-0870 is intriguing
2023-02-04 14:03:24 +0100biberu(~biberu@user/biberu)
2023-02-04 14:04:27 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
2023-02-04 14:06:42 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Client Quit)
2023-02-04 14:10:45 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
2023-02-04 14:11:36 +0100 <danza> i am trying to write some classes and the complexity of errors escalated quickly. This is code that provides Read and Show instances to types that have a simple string representation: https://paste.tomsmeding.com/8snVgg1C. When trying to compile, i get this error: https://paste.tomsmeding.com/beffCrGJ. I do not see how overlapping instances could come out of an usage of toEnum here, and i am unfamiliar with tags so the reported syntax looks
2023-02-04 14:11:36 +0100 <danza> inscrutable. As an aside question, i have been a bit surprised by having to add FlexibleInstances and UndecidableInstances for such simple relationships among classes: are those needed or am i doing something wrong?
2023-02-04 14:11:40 +0100 <jean-paul[m]> Get has a MonadFail instance so maybe that's what the changelog is referring to
2023-02-04 14:16:12 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-02-04 14:19:07 +0100razetime(~Thunderbi@117.193.5.54)
2023-02-04 14:21:50 +0100 <danza> solved. The code revealed that Simple was isomorphic to Show, so i realised that i just need Show. Semantics are clearer now: we get an `instance (Show e, Enum e) => Read e` in this new version paste.tomsmeding.com/tftQmt8O, to easily define custom show-read isomorphisms. Simpler and neat, although we still seem to need the pragmas
2023-02-04 14:22:41 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 14:23:13 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-02-04 14:27:14 +0100elevenkb(~elevenkb@105.224.35.82)
2023-02-04 14:32:33 +0100Athas(~athas@2a01:7c8:aaac:1cf:70d2:94d:d702:e8d6) (Quit: ZNC 1.8.2 - https://znc.in)
2023-02-04 14:32:43 +0100Athas(~athas@sigkill.dk)
2023-02-04 14:32:59 +0100 <[Leary]> danza: `instance ... => C e` is universal; there's no structure in the instance head, so it overlaps with any other conceivable instance for `C`. Haskell98/2010 don't support such instances, hence the pragmata. Rather than a `Read` instance, you probably want to write an ordinary function `parseEnum :: (Enum a, Bounded a, Show a) => String -> Maybe a`.
2023-02-04 14:37:37 +0100 <danza> thanks for the explanation Leary. The idea of writing an ordinary function is appealing, but having a read instance i can easily use these types side by side with any other type derived from (Show, Read)
2023-02-04 14:39:52 +0100 <elevenkb> Is there any way to save marks, etc. in a PDF view document?
2023-02-04 14:42:01 +0100 <elevenkb> i meant `pdf-tools` sorry.
2023-02-04 14:42:07 +0100 <elevenkb> just saw that there might be something helpful
2023-02-04 14:42:32 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 268 seconds)
2023-02-04 14:46:30 +0100 <[exa]> elevenkb: "marks"? I'm normally adding annotations/comments/highlighting with evince, does that count?
2023-02-04 14:46:43 +0100 <[Leary]> danza: I doubt that. Merely having that instance in scope effectively breaks the `Read` class, as you'll get overlap errors trying to use any other instance.
2023-02-04 14:46:58 +0100 <elevenkb> [exa] sorry about this, completely the wrong channel.
2023-02-04 14:47:03 +0100 <elevenkb> meant to post in #emacs.
2023-02-04 14:47:44 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
2023-02-04 14:48:51 +0100 <danza> you guessed right Leary, i am getting those errors. So does `instance (Show e, Enum e) => Read e` not produce Read instances only for types with a `Show, Enum` constraint? Maybe i am using the wrong syntax for what i mean. Happy to read on some doc to learn better
2023-02-04 14:49:17 +0100 <[exa]> elevenkb: ah :D ok, marks explained
2023-02-04 14:49:29 +0100razetime(~Thunderbi@117.193.5.54) (Quit: See You Space Cowboy)
2023-02-04 14:52:45 +0100 <tomsmeding> danza: no, that creates an instance for _all_ types e; that instance, when used, then introduces Show e and Enum e constraints in scope
2023-02-04 14:52:47 +0100 <[Leary]> danza: That means "for any type `e`, we have `Read` (but you must supply `Show` and `Enum` to use it)".
2023-02-04 14:52:53 +0100 <tomsmeding> instance resolution is not depth-first search, it's greedy
2023-02-04 14:54:43 +0100 <danza> i see, that is not what i was trying to achieve. Might have more luck with an ordinary function. Cheers!
2023-02-04 14:56:34 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 14:56:59 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2023-02-04 14:58:23 +0100 <tomsmeding> danza: you can see why what you were expecting would be hard to specify completely in general; for example, what if someone else writes `instance (Show e, Ord e) => Read e`? Which instance should be picked for some type which implements Show, Enum and Ord?
2023-02-04 14:58:58 +0100 <tomsmeding> You could disallow such an additional instance, but then it becomes a non-trivial problem just to decide which instance declarations are valid
2023-02-04 14:59:22 +0100 <tomsmeding> (and instance resolution would be really slow because you have a proper logic programming language at that point)
2023-02-04 15:00:57 +0100 <danza> in that case there would be overlapping ones, i guess, while in many other cases there could not be. But sure, this might make compiling hard, i cannot tell
2023-02-04 15:02:19 +0100 <tomsmeding> harder, not impossible. I guess it's not a strong argument for the current system. But in any case the current system is as it is :p
2023-02-04 15:02:41 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 15:03:06 +0100oldfashionedcow(~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.8)
2023-02-04 15:05:57 +0100 <danza> :)
2023-02-04 15:09:35 +0100 <geekosaur> it's just an incoherent instance, you can get that in other ways now
2023-02-04 15:10:55 +0100 <geekosaur> the real problem is you need a runtime witness to "this type has these instances", the compiler can't prove it in all cases at compile time
2023-02-04 15:12:22 +0100 <geekosaur> in ghc's case that is a typeclass dictionary, but it'd come up in other ways with other implementations
2023-02-04 15:15:34 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-02-04 15:17:17 +0100kjak(~kjak@pool-72-66-75-40.washdc.fios.verizon.net)
2023-02-04 15:20:41 +0100elevenkb(~elevenkb@105.224.35.82) (Quit: Ping timeout (120 seconds))
2023-02-04 15:28:07 +0100Feuermagier(~Feuermagi@user/feuermagier)
2023-02-04 15:40:37 +0100ddellacosta(~ddellacos@146.70.166.170) (Ping timeout: 252 seconds)
2023-02-04 15:53:57 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 15:58:35 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 15:59:07 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 260 seconds)
2023-02-04 15:59:35 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
2023-02-04 16:06:15 +0100danza(~francesco@151.57.102.160) (Ping timeout: 260 seconds)
2023-02-04 16:16:25 +0100kimiamania(~65804703@user/kimiamania) (Quit: PegeLinux)
2023-02-04 16:16:47 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 16:17:39 +0100kimiamania(~924ba01c@user/kimiamania)
2023-02-04 16:17:44 +0100inversed(~inversed@bcdcac82.skybroadband.com) (Read error: Connection reset by peer)
2023-02-04 16:18:41 +0100inversed(~inversed@bcdcac82.skybroadband.com)
2023-02-04 16:21:49 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 268 seconds)
2023-02-04 16:22:08 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-02-04 16:22:24 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-02-04 16:22:33 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 16:22:50 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-02-04 16:24:13 +0100ubert(~Thunderbi@p200300ecdf13018dd908b28f61036a98.dip0.t-ipconnect.de)
2023-02-04 16:24:17 +0100opqdonut(opqdonut@pseudo.fixme.fi) (Ping timeout: 268 seconds)
2023-02-04 16:24:54 +0100edwtjo(~edwtjo@fsf/member/edwtjo) (Ping timeout: 268 seconds)
2023-02-04 16:25:12 +0100edwtjo(~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se)
2023-02-04 16:25:12 +0100edwtjo(~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) (Changing host)
2023-02-04 16:25:12 +0100edwtjo(~edwtjo@fsf/member/edwtjo)
2023-02-04 16:26:37 +0100opqdonut(opqdonut@pseudo.fixme.fi)
2023-02-04 16:26:37 +0100ubert1(~Thunderbi@p200300ecdf13018d0f8ce183c4b5c4af.dip0.t-ipconnect.de)
2023-02-04 16:27:27 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-04 16:29:11 +0100titibandit1(~titibandi@xdsl-85-197-0-96.nc.de)
2023-02-04 16:32:36 +0100Guest72(~Guest72@2607:fea8:e0a2:2600:b113:ae71:51cc:4765)
2023-02-04 16:32:39 +0100ub(~Thunderbi@p548c8ef0.dip0.t-ipconnect.de)
2023-02-04 16:32:47 +0100ubert(~Thunderbi@p200300ecdf13018dd908b28f61036a98.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-02-04 16:32:48 +0100ububert
2023-02-04 16:32:48 +0100ubert068AAD9K6
2023-02-04 16:32:48 +0100ubert1048AAGB9P
2023-02-04 16:37:38 +0100Guest72(~Guest72@2607:fea8:e0a2:2600:b113:ae71:51cc:4765) (Ping timeout: 260 seconds)
2023-02-04 16:41:44 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 16:41:47 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 16:47:13 +0100 <segfaultfizzbuzz> does anyone know "how" achronix fpgas are programmed? as in, what language(s) are used? do common programming language abstractions break when the timing possibilities become more complicated?
2023-02-04 16:48:08 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2023-02-04 16:49:18 +0100enthropy(~enthropy@66.7.90.250)
2023-02-04 16:49:43 +0100 <[exa]> segfaultfizzbuzz: do you know verilog?
2023-02-04 16:52:14 +0100roconnor(~quassel@coq/roconnor)
2023-02-04 16:52:24 +0100roconnor(~quassel@coq/roconnor) ()
2023-02-04 16:53:14 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 16:56:13 +0100 <juri_> segfaultfizzbuzz: if you're interested, clash is an interesting FPGA programming system, written in haskell.
2023-02-04 16:56:17 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2023-02-04 16:56:46 +0100 <segfaultfizzbuzz> i have seen clash
2023-02-04 16:57:01 +0100infinity0(~infinity0@pwned.gg)
2023-02-04 16:57:13 +0100 <segfaultfizzbuzz> i don't know verilog, i am interested in the more fundamental question around whether clocks and synchrony are tied to programming languages
2023-02-04 16:59:32 +0100 <[exa]> yeah my point was that I don't know any other programming language that would be close to hardware timing of stuff. Except maybe if you're programming in some ISAs where you need to make sure to fit into specific time constraints so that e.g. a hardware component works
2023-02-04 17:00:03 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 268 seconds)
2023-02-04 17:00:04 +0100oak-(~oak-@2001:470:69fc:105::fcd) (Quit: You have been kicked for being idle)
2023-02-04 17:00:33 +0100 <[exa]> especially on embedded architectures the instruction count is a valid high-precise timing mechanism.
2023-02-04 17:00:55 +0100 <segfaultfizzbuzz> on the one hand there is timing precision and on the other there is the asynchronicity (ultra-large timing possibility space, i guess?)
2023-02-04 17:01:52 +0100 <segfaultfizzbuzz> i sense that the design of haskell should be *less* dependent on synchronicity as compared to uh, C or something, but i don't know how to continue that thought
2023-02-04 17:02:46 +0100 <geekosaur> hard realtime languages exist; I programmed in one (a dialect of BASIC, of all things) for a while
2023-02-04 17:03:26 +0100 <geekosaur> more common is EDSLs that generate code in such languages: Clash is such an EDSL that generates Verilog
2023-02-04 17:03:51 +0100 <geekosaur> oh, I see someone already mentioned it
2023-02-04 17:04:05 +0100Angelz(Angelz@2605:6400:30:fc15:d55b:fa6c:bd14:9973)
2023-02-04 17:04:18 +0100 <geekosaur> but yes, Haskell would make a poor HRT language
2023-02-04 17:04:24 +0100 <segfaultfizzbuzz> HRT?
2023-02-04 17:04:29 +0100 <segfaultfizzbuzz> realtime hardware?
2023-02-04 17:04:33 +0100 <geekosaur> hard realtime
2023-02-04 17:05:00 +0100 <segfaultfizzbuzz> and i can't quite tell the difference between a thread and like independent temporally parallel paths on a chip
2023-02-04 17:05:12 +0100 <geekosaur> guaranteed response within some small number of microseconds
2023-02-04 17:05:27 +0100 <geekosaur> neither can Intel (see hyperthreading) 🙂
2023-02-04 17:08:41 +0100inversed(~inversed@bcdcac82.skybroadband.com) (Quit: Connection error?!)
2023-02-04 17:09:08 +0100 <[exa]> geekosaur: we might generalize that none of the platforms directly supported by haskell currently make a good RT platform. :D
2023-02-04 17:11:22 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-02-04 17:12:59 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
2023-02-04 17:15:19 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 17:15:59 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
2023-02-04 17:17:52 +0100inversed(~inversed@bcdcac82.skybroadband.com)
2023-02-04 17:18:30 +0100thongpv(~thongpv87@2402:9d80:3bd:3161:8bb6:af59:3726:3ab4)
2023-02-04 17:18:56 +0100razetime(~Thunderbi@117.193.5.54)
2023-02-04 17:19:02 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 17:20:34 +0100thongpv87(~thongpv87@123.31.161.115) (Ping timeout: 260 seconds)
2023-02-04 17:21:30 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 17:23:46 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 17:27:23 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
2023-02-04 17:32:01 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 17:34:24 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 17:35:11 +0100 <segfaultfizzbuzz> i was asking about achronix fpgas in particular by the way because they are asynchronous, so whatever they do with timing presumably needs to be as loose (not realtime?) as possible (??)
2023-02-04 17:35:37 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2023-02-04 17:41:26 +0100 <tomsmeding> segfaultfizzbuzz: https://www.achronix.com/sites/default/files/docs/ACE_User_Guide_UG070_7.pdf
2023-02-04 17:41:49 +0100 <tomsmeding> > This guide is a reference manual for the Achronix CAD Environment (ACE), used for placing, routing, configuring, and debugging Achronix FPGAs.
2023-02-04 17:42:25 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 17:42:29 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze)
2023-02-04 17:42:54 +0100 <tomsmeding> product of a few mins of searching, I know zero about fpgas
2023-02-04 17:42:54 +0100 <enthropy> evaluation order is less important in haskell because of laziness. At the beginning they were selling it as being good for a future computer architecture that would or could evaluate things in parallel. Mentally I don't commit to an evaluation order, since I want to get the right answer and then solve the stack overflow. I don't think this
2023-02-04 17:42:55 +0100 <enthropy> difference influences their suitability for circuits in the same way that "a shallow embedding" can make haskell better for writing interpreters
2023-02-04 17:43:26 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2023-02-04 17:43:46 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 17:45:50 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-02-04 17:45:50 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 17:47:26 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 17:47:47 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 246 seconds)
2023-02-04 17:52:06 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad)
2023-02-04 17:53:21 +0100econo(uid147250@user/econo)
2023-02-04 17:55:00 +0100mastarija(~mastarija@2a05:4f46:e03:6000:7b59:e06e:5bb0:7fe8)
2023-02-04 17:56:15 +0100 <mastarija> So, I get this message when I try to add the `amdgpu-pro` kernel module:
2023-02-04 17:56:19 +0100 <mastarija> modprobe: FATAL: Module amdgpu-pro not found in directory /nix/store/14hqyjn2hrwbk0xxqlvnd2df8341n8nr-linux-6.1.9-modules/lib/modules/6.1.9
2023-02-04 17:56:33 +0100 <mastarija> Two relevant lines:
2023-02-04 17:56:36 +0100 <mastarija> boot.extraModulePackages = with pkgs.linuxPackages_latest; [ amdgpu-pro ];
2023-02-04 17:56:43 +0100 <mastarija> boot.initrd.kernelModules = [ "amdgpu-pro" ];
2023-02-04 17:56:43 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad) (Ping timeout: 248 seconds)
2023-02-04 17:57:33 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 17:57:45 +0100 <mastarija> I've checked in repl, and `pkgs.linuxPackages_latest.amdgpu-pro` exists, so I'm not sure what's going on here.
2023-02-04 17:58:39 +0100 <mastarija> Oops. Wrong channel.
2023-02-04 18:02:31 +0100mvk(~mvk@2607:fea8:5caa:ac00::f944) (Ping timeout: 252 seconds)
2023-02-04 18:05:25 +0100Feuermagier_(~Feuermagi@user/feuermagier)
2023-02-04 18:05:30 +0100Feuermagier_(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2023-02-04 18:08:01 +0100Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds)
2023-02-04 18:10:20 +0100ddellacosta(~ddellacos@146.70.166.170)
2023-02-04 18:13:43 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 18:15:49 +0100 <segfaultfizzbuzz> " i want to get the right answer and then solve the stack overflow" - lol this is a great quote
2023-02-04 18:16:15 +0100 <segfaultfizzbuzz> enthropy: yes the evaluation order consideration was why i was bringing up asynchronicity
2023-02-04 18:18:21 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 18:18:38 +0100 <segfaultfizzbuzz> tomsmeding: "The Achronix implementation flow uses an industry standard RTL synthesis flow " - so i guess they are writing things i "raw" RTL...?
2023-02-04 18:20:36 +0100nunggu(~q@user/nunggu)
2023-02-04 18:26:46 +0100 <segfaultfizzbuzz> it seems like the best thing to do would be to allow everything to be as lazy and asynchronous as possible and then to explicitly annotate "points of synchronization", and then minimize those points of synchronization as much as possible
2023-02-04 18:29:30 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 18:29:45 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
2023-02-04 18:31:26 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 18:31:32 +0100thongpv(~thongpv87@2402:9d80:3bd:3161:8bb6:af59:3726:3ab4) (Ping timeout: 246 seconds)
2023-02-04 18:37:41 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 18:38:45 +0100ozkutuk53(~ozkutuk@176.240.174.60)
2023-02-04 18:40:15 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 18:40:16 +0100razetime(~Thunderbi@117.193.5.54) (Remote host closed the connection)
2023-02-04 18:42:35 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze)
2023-02-04 18:43:57 +0100Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2023-02-04 18:45:50 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 18:47:00 +0100danza(~francesco@151.43.83.147)
2023-02-04 18:53:15 +0100Vajb(~Vajb@2001:999:404:9516:d621:6cbe:c71e:5686) (Remote host closed the connection)
2023-02-04 18:53:25 +0100Vajb(~Vajb@2001:999:404:9516:d621:6cbe:c71e:5686)
2023-02-04 18:57:55 +0100dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2023-02-04 19:01:16 +0100dolio(~dolio@130.44.134.54)
2023-02-04 19:01:19 +0100Midjak(~Midjak@82.66.147.146) (Ping timeout: 265 seconds)
2023-02-04 19:04:05 +0100dolio(~dolio@130.44.134.54) (Client Quit)
2023-02-04 19:07:04 +0100nunggu_(~q@user/nunggu)
2023-02-04 19:07:07 +0100nunggu(~q@user/nunggu) (Remote host closed the connection)
2023-02-04 19:09:30 +0100dolio(~dolio@130.44.134.54)
2023-02-04 19:14:49 +0100titibandit1(~titibandi@xdsl-85-197-0-96.nc.de) (Remote host closed the connection)
2023-02-04 19:17:14 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
2023-02-04 19:19:09 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 19:21:19 +0100Midjak(~Midjak@82.66.147.146)
2023-02-04 19:22:45 +0100mastarija(~mastarija@2a05:4f46:e03:6000:7b59:e06e:5bb0:7fe8) (Quit: WeeChat 3.7.1)
2023-02-04 19:23:49 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 19:27:57 +0100safinaskar(~quassel@212.73.77.98)
2023-02-04 19:28:05 +0100 <safinaskar> look here! https://godbolt.org/z/fToj3M1eY
2023-02-04 19:28:17 +0100 <safinaskar> i implemented red black trees using GADTs!!
2023-02-04 19:28:33 +0100cheater_(~Username@user/cheater)
2023-02-04 19:28:39 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
2023-02-04 19:28:47 +0100 <safinaskar> i embedded into red black tree invariant "heights of both subtrees should match" using GADTs!
2023-02-04 19:29:09 +0100 <safinaskar> i implemented "insert" and this invariant is checked during compile time!
2023-02-04 19:29:22 +0100 <safinaskar> feel free to steal the code and blog somewhere
2023-02-04 19:29:51 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 252 seconds)
2023-02-04 19:29:59 +0100mechap_(~mechap@user/mechap)
2023-02-04 19:30:43 +0100 <segfaultfizzbuzz> safinaskar: we have submitted a nobel prize nomination for you
2023-02-04 19:31:40 +0100 <juri_> insufficient comments. cool looking code, tho. ;)
2023-02-04 19:31:45 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-02-04 19:31:51 +0100cheater_cheater
2023-02-04 19:31:57 +0100mechap_(~mechap@user/mechap) (Client Quit)
2023-02-04 19:32:34 +0100 <safinaskar> segfaultfizzbuzz: :)
2023-02-04 19:33:04 +0100mechap(~mechap@user/mechap) (Ping timeout: 248 seconds)
2023-02-04 19:33:12 +0100 <safinaskar> juri_: just open wikipedia article with colorful images. everything will be clear
2023-02-04 19:33:15 +0100mechap(~mechap@user/mechap)
2023-02-04 19:33:48 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-02-04 19:33:52 +0100 <segfaultfizzbuzz> safinaskar: what about actually running it, some demo code which fills the tree and runs some queries
2023-02-04 19:34:03 +0100 <segfaultfizzbuzz> and what are the advantages and disadvantages of doing it this way?
2023-02-04 19:34:23 +0100enthropy(~enthropy@66.7.90.250) (Ping timeout: 260 seconds)
2023-02-04 19:34:55 +0100 <safinaskar> segfaultfizzbuzz: red black tree has invariant: children of a given node should have same "black height". i implemented the tree using GADTs and thus this invariant is checked in compile time!!
2023-02-04 19:35:20 +0100 <safinaskar> segfaultfizzbuzz: "Node h" is type of valid subtrees with black height "h", where "h" is encoded as Peano number
2023-02-04 19:36:07 +0100 <safinaskar> segfaultfizzbuzz: so more properties are checked in compile time as opposed to non-GADT version. and i see no disadvantages
2023-02-04 19:37:14 +0100 <safinaskar> also, if you want to, say, read red black tree from stdin, you will also need existential types
2023-02-04 19:38:24 +0100acidjnk(~acidjnk@p200300d6e715c439801b1c59a37bf11b.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-02-04 19:38:27 +0100 <safinaskar> segfaultfizzbuzz: "what about actually running it" - i don't want, i'm too lazy. :) but GADTs are so good, so i'm 100% sure the code is correct :)
2023-02-04 19:38:41 +0100 <segfaultfizzbuzz> safinaskar: i suppose it's interesting that you don't need dependent type theory to do this (?)
2023-02-04 19:39:03 +0100 <segfaultfizzbuzz> safinaskar: so what you are saying basically is that you have created the code and not actually tried it? lol ;-)
2023-02-04 19:39:12 +0100 <segfaultfizzbuzz> err that was supposed to be a knuth quote
2023-02-04 19:39:59 +0100 <safinaskar> segfaultfizzbuzz: my code needs dependent types. dependent types means that types can depend on values. in my code type "Node" depends on values of type "PA", so, yes, this is dependent types
2023-02-04 19:40:22 +0100 <segfaultfizzbuzz> does compile time code need to be total? why is code which executes at compile time any different at all from code which executes at runtime? why not just wrap compile-time code in an annotation which says that it is compile-time code
2023-02-04 19:40:40 +0100 <segfaultfizzbuzz> safinaskar: oh, i thought haskell didn't have those
2023-02-04 19:40:54 +0100 <geekosaur> you can simulate them in various ways
2023-02-04 19:41:03 +0100 <geekosaur> see the `singletons` package, in particular
2023-02-04 19:41:54 +0100 <geekosaur> and in this case it's not so much that the code is compile time, but that it's encoded as types which get typechecked at compile time
2023-02-04 19:42:12 +0100 <geekosaur> so if the program typechecks, the "code" should be correct
2023-02-04 19:42:45 +0100 <segfaultfizzbuzz> understood, i meant more fundamentally, why not just say at_compile_time { ...my_code... }
2023-02-04 19:42:57 +0100 <geekosaur> (assuming of course that your types correctly describe the problem you're trying to solve)
2023-02-04 19:43:02 +0100 <geekosaur> that's template haskell
2023-02-04 19:43:12 +0100 <segfaultfizzbuzz> i see
2023-02-04 19:43:20 +0100 <geekosaur> it solves a different problem
2023-02-04 19:43:25 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 19:43:59 +0100opticblast(~Thunderbi@172.58.80.152)
2023-02-04 19:44:08 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-02-04 19:47:16 +0100 <geekosaur> anyway, here the point is to make the typechecker prove as much as it can, which means the associated failures can't happen at runtime
2023-02-04 19:47:17 +0100nunggu_(~q@user/nunggu) (Ping timeout: 255 seconds)
2023-02-04 19:48:06 +0100 <geekosaur> that's what strict typing is about in general, but sometimes you need types that depend on values to prove invariants based on those values at type level
2023-02-04 19:50:23 +0100 <segfaultfizzbuzz> yeah hmm
2023-02-04 19:50:49 +0100nunggu_(~q@user/nunggu)
2023-02-04 19:53:12 +0100 <safinaskar> some time ago i asked in #haskell are GADTs useful for type checking and provers only. now i see that they are also useful for red black trees! :))
2023-02-04 19:53:51 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
2023-02-04 20:00:11 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-02-04 20:01:39 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-02-04 20:02:13 +0100Jadeitits[m]jadey[m]
2023-02-04 20:02:44 +0100ddellacosta(~ddellacos@146.70.166.170) (Ping timeout: 260 seconds)
2023-02-04 20:06:14 +0100Heffalump(~ganesh@urchin.earth.li) (Remote host closed the connection)
2023-02-04 20:10:11 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:4054:34b8:499a:7d46) (Remote host closed the connection)
2023-02-04 20:10:30 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-02-04 20:20:45 +0100varoo(~varoo@117.203.246.41) (Ping timeout: 252 seconds)
2023-02-04 20:21:42 +0100varoo(~varoo@117.203.246.41)
2023-02-04 20:23:19 +0100varoo_(~varoo@117.203.246.41)
2023-02-04 20:24:04 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de)
2023-02-04 20:26:23 +0100varoo(~varoo@117.203.246.41) (Ping timeout: 248 seconds)
2023-02-04 20:26:35 +0100acidjnk(~acidjnk@p200300d6e715c402e54e919fb479e010.dip0.t-ipconnect.de)
2023-02-04 20:30:51 +0100random-jellyfish(~random-je@user/random-jellyfish)
2023-02-04 20:34:21 +0100Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-02-04 20:34:47 +0100Batzy(~quassel@user/batzy)
2023-02-04 20:36:55 +0100Batzy(~quassel@user/batzy) (Client Quit)
2023-02-04 20:38:11 +0100Batzy(~quassel@user/batzy)
2023-02-04 20:42:23 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
2023-02-04 20:45:41 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 252 seconds)
2023-02-04 20:48:48 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de) (Ping timeout: 248 seconds)
2023-02-04 20:55:56 +0100jakalx(~jakalx@base.jakalx.net) ()
2023-02-04 20:57:32 +0100Hammdist(~Hammdist@67.169.114.135)
2023-02-04 20:59:14 +0100 <Hammdist> main = do x <- 7 putStrLn (show x)      doesn't work. how do I get a Num saved into a variable to pass to show?
2023-02-04 20:59:17 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 21:00:39 +0100 <geekosaur> you only need `let` there, not `<-`
2023-02-04 21:01:08 +0100 <geekosaur> % do {let {x = 7}; putStrLn (show x) }
2023-02-04 21:01:09 +0100 <yahb2> 7
2023-02-04 21:01:29 +0100 <geekosaur> (extra braces because it's all on one line; `let` uses layout too)
2023-02-04 21:02:37 +0100 <geekosaur> you could also say `x <- return 7` but it's pretty pointless
2023-02-04 21:03:30 +0100 <Hammdist> ah I got the `return` one to work. thanks
2023-02-04 21:03:59 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 260 seconds)
2023-02-04 21:04:14 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-02-04 21:04:24 +0100danza(~francesco@151.43.83.147) (Read error: Connection reset by peer)
2023-02-04 21:04:43 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 21:07:50 +0100enthropy(~enthropy@66.7.90.250)
2023-02-04 21:08:33 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
2023-02-04 21:11:32 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-02-04 21:11:34 +0100bhall(~brunohall@138.199.22.101) (Ping timeout: 260 seconds)
2023-02-04 21:11:51 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 21:11:52 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
2023-02-04 21:15:11 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-02-04 21:17:25 +0100 <mauke> main = putStrLn (show 7)
2023-02-04 21:18:08 +0100 <geekosaur> I don't think I want to know how "but it's pretty pointless" turned into "use this please"
2023-02-04 21:18:18 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-02-04 21:18:23 +0100 <mauke> main = putStrLn "7"; main = putChar '7' >> putChar '\n' >> return (); main = (\x -> putStrLn (show x)) 7; main = putStrLn (show x) where x = 7
2023-02-04 21:19:43 +0100 <mauke> main = let x = 7 in putStrLn (show x); main = do let x = do 7 in do putStrLn (show x)
2023-02-04 21:20:13 +0100 <mauke> I mean (do show x)
2023-02-04 21:20:26 +0100danza(~francesco@151.35.121.27)
2023-02-04 21:22:07 +0100 <Hammdist> data Thing = Thing [Thing] is there a better way to express this that makes Thing a type alias of list and can be pattern matched? (while keeping the constraint that it can only contain Thing)
2023-02-04 21:22:33 +0100Athas(~athas@sigkill.dk) (Quit: ZNC 1.8.2 - https://znc.in)
2023-02-04 21:22:56 +0100Athas(~athas@sigkill.dk)
2023-02-04 21:22:57 +0100 <geekosaur> if it is a type alias for list then it can not contain only Thing
2023-02-04 21:23:12 +0100 <Hammdist> I suspected that
2023-02-04 21:23:31 +0100 <Hammdist> I guess I can still pattern match I just need to indicate the constructor Thing a lot
2023-02-04 21:23:50 +0100 <geekosaur> that said a bidirectional pattern synonym *might* give you something like what you want
2023-02-04 21:23:56 +0100 <mauke> type aliases use simple substitution; they can't be recursive
2023-02-04 21:24:20 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 21:24:23 +0100malte_(~malte@mal.tc)
2023-02-04 21:24:33 +0100malte(~malte@mal.tc) (Read error: Connection reset by peer)
2023-02-04 21:24:37 +0100malte_malte
2023-02-04 21:26:10 +0100 <enthropy> data Thing looks isomorphic to Data.Tree.Tree ()
2023-02-04 21:27:22 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56)
2023-02-04 21:28:49 +0100Midjak2(~Midjak@2a01:e0a:247:a560:78ac:cb5d:38a5:235b)
2023-02-04 21:29:31 +0100Midjak(~Midjak@82.66.147.146) (Ping timeout: 260 seconds)
2023-02-04 21:30:03 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
2023-02-04 21:32:57 +0100Midjak(~Midjak@2a01:e0a:247:a560:e0c4:fecf:1d0:ece3)
2023-02-04 21:34:08 +0100Midjak2(~Midjak@2a01:e0a:247:a560:78ac:cb5d:38a5:235b) (Ping timeout: 248 seconds)
2023-02-04 21:35:41 +0100ardell(~ardell@user/ardell)
2023-02-04 21:38:49 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de)
2023-02-04 21:47:39 +0100mastarija(~mastarija@2a05:4f46:e03:6000:c2b4:d7d0:e727:fcbd)
2023-02-04 21:48:05 +0100 <mastarija> can you recommend any good minimal haskell nix example project?
2023-02-04 21:50:29 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2023-02-04 21:51:25 +0100 <dmj`> mastarija: https://github.com/Gabriella439/haskell-nix
2023-02-04 21:53:17 +0100hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2023-02-04 21:56:07 +0100hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2023-02-04 21:56:42 +0100 <mastarija> dmj`: thx
2023-02-04 21:58:35 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
2023-02-04 21:58:40 +0100talismanick(~talismani@2601:200:c181:4c40::1be2)
2023-02-04 22:05:55 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-02-04 22:08:43 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f424:933a:fcd6:76ad)
2023-02-04 22:11:39 +0100kjak(~kjak@pool-72-66-75-40.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2023-02-04 22:11:43 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-02-04 22:11:43 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-02-04 22:11:43 +0100wroathe(~wroathe@user/wroathe)
2023-02-04 22:15:08 +0100mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-02-04 22:15:52 +0100mechap(~mechap@user/mechap)
2023-02-04 22:16:23 +0100mechap(~mechap@user/mechap) (Client Quit)
2023-02-04 22:17:14 +0100mechap(~mechap@user/mechap)
2023-02-04 22:17:44 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 22:18:23 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 248 seconds)
2023-02-04 22:20:19 +0100ardell(~ardell@user/ardell) (Quit: Konversation terminated!)
2023-02-04 22:20:48 +0100 <tomsmeding> segfaultfizzbuzz: you spoke about Haskell-Rust interoperability yesterday iirc; there'll be a talk at FOSDEM on the topic tomorrow, just FYI in case you're interested https://fosdem.org/2023/schedule/event/haskell_rust_interop/
2023-02-04 22:21:50 +0100 <enthropy> recently ghci's :info started to print the RHS of type family instances. I want to make a type search like https://github.com/ocaml/merlin/blob/master/doc/features.md which will know about type families. The hoogle/haddock .txt file doesn't have it. I'm not sure about the HIE file. I vaguely recall work on a data structure with keys being types and
2023-02-04 22:21:51 +0100 <enthropy> lookup finding one that unifies with. All the options I see now are like `Map TypeRep` in that there are no type variables.
2023-02-04 22:22:19 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 248 seconds)
2023-02-04 22:30:57 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 22:31:39 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2023-02-04 22:37:53 +0100pavonia(~user@user/siracusa)
2023-02-04 22:41:26 +0100Sgeo(~Sgeo@user/sgeo)
2023-02-04 22:42:22 +0100caef^(~caef@c-24-30-76-89.hsd1.ga.comcast.net) (Remote host closed the connection)
2023-02-04 22:46:05 +0100 <mastarija> So, I've been following this haskell nix tutorial: https://github.com/Gabriella439/haskell-nix
2023-02-04 22:46:15 +0100 <mastarija> And got stuck on the first chapter / project
2023-02-04 22:46:22 +0100 <mastarija> 0th actually
2023-02-04 22:47:03 +0100 <mastarija> running `nix-build release0.nix` works nicely, and I get my result in the `result/bin` folder.
2023-02-04 22:47:45 +0100 <mastarija> but if I want to start the shell like this `nix-build --attr project0 release2.nix` I get an error
2023-02-04 22:48:06 +0100 <mastarija> error: cannot evaluate a function that has an argument without a value ('mkDerivation')
2023-02-04 22:49:26 +0100freeside(~mengwong@103.252.202.170) (Ping timeout: 255 seconds)
2023-02-04 22:50:45 +0100 <mastarija> Here's a paste of relevant files
2023-02-04 22:50:47 +0100 <mastarija> https://paste.tomsmeding.com/eE8XAXOO
2023-02-04 22:51:29 +0100 <talismanick> How much does -XBlockArguments complicate parsing? I recall Kmett saying that the rule for "cap off whitespace blocks upon syntax error" rules out monoidal layout parsing - is this similar?
2023-02-04 22:52:23 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-02-04 22:52:43 +0100 <talismanick> something about "if m /= 0 and parse_error(t)"
2023-02-04 22:55:52 +0100 <talismanick> Is it worth enabling it by default? I make those errors all the time - not prefixing `do` with `$`, etc - but the editor is quick to respond. If this pulls more blocks into a failed parse, though, will it make the error messages illegible?
2023-02-04 22:56:46 +0100 <Hammdist> what is the recommended way to install and use quickcheck these days? does it ship by default?
2023-02-04 22:57:38 +0100 <mastarija> Hammdist: I usually just include it as a library in my project
2023-02-04 22:57:52 +0100 <mastarija> I'm assuming you want to install it globally?
2023-02-04 22:58:00 +0100 <Hammdist> so cabal? (sorry I'm rather new to haskell)
2023-02-04 22:58:08 +0100 <Hammdist> yes globally
2023-02-04 22:58:29 +0100 <mastarija> I wouldn't recommend it, but I think you can do something like cabal install --lib haddock
2023-02-04 22:58:50 +0100kuribas(~user@ptr-17d51eoxqxns4cyal2u.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2023-02-04 22:59:15 +0100 <talismanick> Hammdist: I usually create a test suite in the .cabal file, and import it there along with hspec
2023-02-04 22:59:27 +0100 <Hammdist> I'm not using a .cabal file
2023-02-04 22:59:41 +0100 <Hammdist> so I would prefer global installation - I'm largely using docker for things
2023-02-04 22:59:53 +0100 <geekosaur> these days installing globally is considered a bad idea; consider what happens if a new version comes out
2023-02-04 22:59:55 +0100 <talismanick> Like, if my project is foo, in foo/foo.cabal
2023-02-04 22:59:56 +0100 <mastarija> Do keep in mind that if `haddock` requires some library X of version Y, and you want to install another package globally that requires version Z of library X you won't be able to do it.
2023-02-04 23:00:24 +0100 <Hammdist> ... and wth is the relation between `haddock` and `quickcheck`?
2023-02-04 23:00:33 +0100 <talismanick> I'd highly recommend using a cabal file and confining everything to a directory. It's easier for everyone involved.
2023-02-04 23:00:38 +0100__monty__(~toonn@user/toonn)
2023-02-04 23:00:40 +0100 <mastarija> quickcheck can generate random tests
2023-02-04 23:00:43 +0100 <talismanick> haddock generates documentation
2023-02-04 23:00:52 +0100 <geekosaur> basically, you can do it but if it breaks you get to keep all the pieces because there won't necessarily be a fix other than nuking and reinstalling ghc and starting over from scratch
2023-02-04 23:01:02 +0100 <mastarija> and I somehow mixed up haddock and quickcheck
2023-02-04 23:01:07 +0100 <mastarija> sorry about that
2023-02-04 23:01:21 +0100 <talismanick> hspec is a testing framework, in which you can specify what outputs should come from which expressions. It also lets you turn those unit tests into property tests with Quickcheck
2023-02-04 23:01:25 +0100 <Hammdist> so `cabal install QuickCheck` right? do I need --lib on it?
2023-02-04 23:01:29 +0100 <talismanick> haddock generates documentation
2023-02-04 23:01:53 +0100 <mastarija> If you leave out --lib, you will just download the library, but it won't be available in the repl
2023-02-04 23:02:04 +0100 <Hammdist> ah ok will always add --lib then
2023-02-04 23:02:11 +0100 <mastarija> So it won't be of any use to you.
2023-02-04 23:02:18 +0100 <geekosaur> cabal no longer does global installs. --lib does an exported install, by creating an environment file for ghc. without it, it will be installed only to cabal's internal store
2023-02-04 23:02:50 +0100 <geekosaur> Hammdist, on your own head be it
2023-02-04 23:03:08 +0100 <sm> cabal doesn't break your global package db any more, so what's the problem when a new version comes out ?
2023-02-04 23:03:22 +0100 <geekosaur> they want to defeat that
2023-02-04 23:03:27 +0100 <geekosaur> they want global installs
2023-02-04 23:03:28 +0100 <talismanick> Hammdist: https://cabal.readthedocs.io/en/3.8/nix-local-build.html#how-it-works
2023-02-04 23:03:44 +0100 <mastarija> But again, if you install `quickcheck` v1.2 that requires some library `X` v.1.0 and you also want to install another library globaly that requires `X` v.2.0 you will have a conflict
2023-02-04 23:04:00 +0100 <geekosaur> and bring back "cabal hell"
2023-02-04 23:04:06 +0100 <mastarija> Because all globally installed packages have to be on the same page.
2023-02-04 23:04:08 +0100 <talismanick> Hammdist: It really will make everything easier if you just create the cabal file
2023-02-04 23:04:09 +0100viktorvalen(~viktorval@pool-98-116-90-86.nycmny.fios.verizon.net) (Quit: viktorvalen)
2023-02-04 23:04:30 +0100 <mastarija> Regarding my nix/haskell question
2023-02-04 23:04:32 +0100 <talismanick> Say you want to name your project "foodcalculator"
2023-02-04 23:04:40 +0100 <mastarija> Can someone offer some assistance
2023-02-04 23:04:42 +0100 <talismanick> then run `cabal init foodcalculator` in your shell
2023-02-04 23:04:46 +0100freeside(~mengwong@103.252.202.170)
2023-02-04 23:04:54 +0100 <mastarija> I don't understand this: https://paste.tomsmeding.com/eE8XAXOO
2023-02-04 23:04:56 +0100 <sm> geekosaur: yes, I'm saying you can install globally, and when a new version comes out, do it again
2023-02-04 23:04:58 +0100 <talismanick> and it wil; guide you through setting up the file
2023-02-04 23:05:12 +0100 <talismanick> It's super easy
2023-02-04 23:05:16 +0100 <sm> resolving conflicts somehow, I forget what exactly happens these days
2023-02-04 23:05:52 +0100 <sm> (it used to break some installed packages, and you had to ghc-pkg unregister those and reinstall them, but that worked fine. Surely it's smoother now)
2023-02-04 23:06:25 +0100 <geekosaur> you don't. if you install two libraries, one linking against one version and one the other, if they;re in the global db ghc will happily use them together and you will get errors
2023-02-04 23:06:41 +0100 <geekosaur> this is whystack and modern cabal refuse to do that any more
2023-02-04 23:06:46 +0100 <sm> will it not refuse to install globally in that situation ?
2023-02-04 23:07:01 +0100 <geekosaur> if you use `--;ob` you are overriding that
2023-02-04 23:07:05 +0100 <geekosaur> `--lib`
2023-02-04 23:07:08 +0100 <sm> so to install globally, you might have to manually uninstall some stuff first
2023-02-04 23:07:20 +0100 <sm> ok, I dunno how cabal works
2023-02-04 23:07:27 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 23:07:31 +0100 <geekosaur> and there;s no real uninstall (there is unregister but it leaves the stuff still in place)
2023-02-04 23:07:43 +0100 <mastarija> someone? :(
2023-02-04 23:07:47 +0100 <geekosaur> I'm talking about ghc-pkg, which is what is relevant for global installs
2023-02-04 23:07:55 +0100wroathe(~wroathe@50.205.197.50)
2023-02-04 23:07:55 +0100wroathe(~wroathe@50.205.197.50) (Changing host)
2023-02-04 23:07:55 +0100wroathe(~wroathe@user/wroathe)
2023-02-04 23:08:12 +0100 <geekosaur> cabal just wraps ghc-pkg in that case
2023-02-04 23:09:11 +0100 <geekosaur> mastarija, I don't know nix so can't help
2023-02-04 23:09:32 +0100 <mastarija> sure, I'm looking for someone who knows :)
2023-02-04 23:09:36 +0100 <monochrom> --lib still preserves consistency in the environment file by being conservative i.e. it blocks newer versions later.
2023-02-04 23:11:37 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 252 seconds)
2023-02-04 23:11:54 +0100ubert(~Thunderbi@p200300ecdf1301b122a4f37be5c9cfb5.dip0.t-ipconnect.de)
2023-02-04 23:11:57 +0100safinaskar(~quassel@212.73.77.98) ()
2023-02-04 23:12:15 +0100048AAGB9P(~Thunderbi@p200300ecdf13018d0f8ce183c4b5c4af.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-02-04 23:12:22 +0100 <monochrom> But you can unblock that by erasing the environment file and running --lib again.
2023-02-04 23:12:55 +0100 <sm> then what happens ? :)
2023-02-04 23:13:17 +0100 <monochrom> And that still upholds consistency. It just means you have old orphaned stuff taking up disk space in $HOME/.cabal/store
2023-02-04 23:13:27 +0100 <monochrom> "it works" happens.
2023-02-04 23:13:51 +0100 <sm> this is fine, what's all the fuss then
2023-02-04 23:13:52 +0100 <monochrom> This is why I cannot agree with the scaremongering against --lib.
2023-02-04 23:14:21 +0100 <mastarija> It's ok, but for beginners it might be overwhelming
2023-02-04 23:14:33 +0100 <mastarija> They need to know which file to purge
2023-02-04 23:14:48 +0100 <monochrom> Except possibly scaremongering based on "people don't know where is the environment file and/or how to erase a file".
2023-02-04 23:14:51 +0100 <mastarija> And we are essentially creating a global "project" of sorts
2023-02-04 23:15:04 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53)
2023-02-04 23:15:19 +0100 <mastarija> monochrom: I have to google for its location every time I want to purge that file
2023-02-04 23:15:40 +0100smuploaded an image: (242KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/GBBldhjSVUchGjWjRfZAjOdf/image.png >
2023-02-04 23:16:01 +0100 <monochrom> If you have an environment file at the default location, then every time you launch ghci, it prints out the path.
2023-02-04 23:17:07 +0100 <monochrom> But people are blind, sure.
2023-02-04 23:17:39 +0100 <monochrom> ghcup prints out all kinds of messages that users swear they never see.
2023-02-04 23:18:21 +0100 <mastarija> lol, nice
2023-02-04 23:18:27 +0100 <mastarija> I've never noticed that
2023-02-04 23:18:32 +0100 <monochrom> Likewise every so often when I give a correct answer here, lots of people claim they don't see it either.
2023-02-04 23:19:06 +0100 <monochrom> or at least s/claim/behave like/
2023-02-04 23:19:12 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2023-02-04 23:19:50 +0100 <mastarija> well, I appreciate your answer if that means anything :)
2023-02-04 23:20:05 +0100nehsou^(~nehsou@c-24-30-76-89.hsd1.ga.comcast.net)
2023-02-04 23:22:03 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-02-04 23:22:55 +0100jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c)
2023-02-04 23:23:49 +0100kassouni(~kassouni@2601:646:400:68b0:71bd:7fae:fa0b:cf56) (Quit: My Mac has gone to sleep. ZZZzzz…)
2023-02-04 23:41:05 +0100bhall(~brunohall@212-8-253-140.hosted-by-worldstream.net)
2023-02-04 23:41:32 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-02-04 23:42:47 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-02-04 23:43:46 +0100[exa](~exa@user/exa/x-3587197) (Remote host closed the connection)
2023-02-04 23:44:38 +0100enthropy(~enthropy@66.7.90.250) (Ping timeout: 260 seconds)
2023-02-04 23:47:48 +0100mastarija(~mastarija@2a05:4f46:e03:6000:c2b4:d7d0:e727:fcbd) (Quit: WeeChat 3.7.1)
2023-02-04 23:48:47 +0100jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 264 seconds)
2023-02-04 23:49:25 +0100varoo_(~varoo@117.203.246.41) (Ping timeout: 252 seconds)
2023-02-04 23:51:59 +0100segfaultfizzbuzz(~segfaultf@108.211.201.53) (Ping timeout: 260 seconds)
2023-02-04 23:53:36 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-02-04 23:55:22 +0100merijn(~merijn@c-001-001-010.client.esciencecenter.eduvpn.nl)
2023-02-04 23:56:28 +0100kassouni(~kassouni@c-73-223-27-190.hsd1.ca.comcast.net)
2023-02-04 23:57:01 +0100Sinbad(~Sinbad@user/sinbad)