2023/03/24

2023-03-24 00:01:06 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-24 00:01:31 +0100Sgeo(~Sgeo@user/sgeo) (Ping timeout: 240 seconds)
2023-03-24 00:04:00 +0100gdr3941(~user@207.144.49.146)
2023-03-24 00:08:58 +0100Ashkan(~Ashkan@ec2-54-78-14-109.eu-west-1.compute.amazonaws.com)
2023-03-24 00:09:17 +0100Sgeo(~Sgeo@user/sgeo)
2023-03-24 00:10:51 +0100chomwitt(~chomwitt@2a02:587:7a19:3600:1ac0:4dff:fedb:a3f1) (Ping timeout: 265 seconds)
2023-03-24 00:16:39 +0100nek0(~nek0@2a01:4f8:222:2b41::12) (Ping timeout: 265 seconds)
2023-03-24 00:22:05 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
2023-03-24 00:22:09 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
2023-03-24 00:22:41 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2023-03-24 00:28:33 +0100gdr3941(~user@207.144.49.146) (Ping timeout: 255 seconds)
2023-03-24 00:30:39 +0100Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-03-24 00:30:47 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-24 00:31:32 +0100accord(uid568320@id-568320.hampstead.irccloud.com) ()
2023-03-24 00:33:13 +0100acidjnk(~acidjnk@p200300d6e715c45738806db69c102943.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-03-24 00:34:19 +0100voidzero(~voidzero@user/voidzero) (Ping timeout: 268 seconds)
2023-03-24 00:34:56 +0100tdammers(~tdammers@219-131-178-143.ftth.glasoperator.nl) (Ping timeout: 268 seconds)
2023-03-24 00:35:12 +0100voidzero(~voidzero@user/voidzero)
2023-03-24 00:35:22 +0100tdammers(~tdammers@219-131-178-143.ftth.glasoperator.nl)
2023-03-24 00:38:19 +0100cheater(~Username@user/cheater)
2023-03-24 00:38:20 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-24 00:40:55 +0100cheater_(~Username@user/cheater)
2023-03-24 00:41:17 +0100Guest86(~Guest86@128.196.227.38) (Quit: Client closed)
2023-03-24 00:41:59 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 00:42:13 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-03-24 00:42:14 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-03-24 00:42:14 +0100wroathe(~wroathe@user/wroathe)
2023-03-24 00:42:35 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 00:42:41 +0100cheater_cheater
2023-03-24 00:45:36 +0100pavonia(~user@user/siracusa)
2023-03-24 00:46:07 +0100cheater_(~Username@user/cheater)
2023-03-24 00:46:22 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 00:46:51 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 00:48:02 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-24 00:48:18 +0100zeenk(~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!)
2023-03-24 00:50:31 +0100cheater_(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 00:50:58 +0100teo(~teo@user/teo) (Quit: Reconnecting)
2023-03-24 00:51:12 +0100teo(~teo@user/teo)
2023-03-24 00:53:38 +0100cheater(~Username@user/cheater)
2023-03-24 00:58:43 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-03-24 00:58:49 +0100Ashkan(~Ashkan@ec2-54-78-14-109.eu-west-1.compute.amazonaws.com) (Quit: Client closed)
2023-03-24 01:05:24 +0100mauke_(~mauke@user/mauke)
2023-03-24 01:06:28 +0100slac23932(~slack1256@186.11.53.81)
2023-03-24 01:07:01 +0100mauke(~mauke@user/mauke) (Ping timeout: 240 seconds)
2023-03-24 01:07:01 +0100mauke_mauke
2023-03-24 01:07:32 +0100cheater(~Username@user/cheater)
2023-03-24 01:08:31 +0100slack1256(~slack1256@181.42.50.18) (Ping timeout: 240 seconds)
2023-03-24 01:09:40 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 01:10:17 +0100hays(rootvegeta@fsf/member/hays) (Remote host closed the connection)
2023-03-24 01:10:19 +0100 <dibblego> which function/parser-combinator did I just reinvent?
2023-03-24 01:10:20 +0100 <dibblego> skipUntil :: Alternative f => f a -> f e -> f e
2023-03-24 01:10:21 +0100 <dibblego> skipUntil p x = x <|> p *> skipUntil p x
2023-03-24 01:10:38 +0100cheater_(~Username@user/cheater)
2023-03-24 01:12:31 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 01:12:31 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
2023-03-24 01:12:34 +0100cheater_cheater
2023-03-24 01:12:35 +0100 <EvanR> there's skipManyTill :: MonadPlus m => m a -> m end -> m end
2023-03-24 01:12:47 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 01:13:18 +0100 <dibblego> ah thank you
2023-03-24 01:13:29 +0100hays(rootvegeta@fsf/member/hays)
2023-03-24 01:21:25 +0100cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-03-24 01:22:14 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de)
2023-03-24 01:36:49 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de) (Ping timeout: 276 seconds)
2023-03-24 01:47:17 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-24 01:53:59 +0100cheater(~Username@user/cheater)
2023-03-24 01:57:00 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 01:57:29 +0100srz_(~srz@179.36.81.180)
2023-03-24 01:58:31 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 01:59:01 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 02:00:39 +0100srz(~srz@181.228.49.93) (Ping timeout: 268 seconds)
2023-03-24 02:00:39 +0100ridcully_(~ridcully@p508acd69.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2023-03-24 02:00:55 +0100ridcully_(~ridcully@p57b52e16.dip0.t-ipconnect.de)
2023-03-24 02:01:24 +0100cheater(~Username@user/cheater)
2023-03-24 02:02:07 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-03-24 02:02:31 +0100cheater_(~Username@user/cheater)
2023-03-24 02:02:58 +0100dipper_(~dipper@117.61.126.31)
2023-03-24 02:03:09 +0100califax(~califax@user/califx)
2023-03-24 02:06:12 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-24 02:06:19 +0100cheater_cheater
2023-03-24 02:09:05 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl)
2023-03-24 02:11:43 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-03-24 02:17:50 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-03-24 02:18:47 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acf4:2d59:900d:be3a)
2023-03-24 02:19:42 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-03-24 02:20:50 +0100freeside(~mengwong@103.252.202.85)
2023-03-24 02:23:01 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acf4:2d59:900d:be3a) (Ping timeout: 240 seconds)
2023-03-24 02:23:17 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2023-03-24 02:23:44 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-03-24 02:23:44 +0100tusko(~yeurt@user/tusko) (Ping timeout: 255 seconds)
2023-03-24 02:24:41 +0100tusko(~yeurt@user/tusko)
2023-03-24 02:25:34 +0100freeside(~mengwong@103.252.202.85) (Ping timeout: 276 seconds)
2023-03-24 02:26:01 +0100gehmehgeh(~user@user/gehmehgeh)
2023-03-24 02:26:06 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-24 02:27:30 +0100cheater_(~Username@user/cheater)
2023-03-24 02:27:31 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 02:27:35 +0100cheater_cheater
2023-03-24 02:29:05 +0100freeside(~mengwong@103.252.202.85)
2023-03-24 02:29:46 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2023-03-24 02:33:57 +0100freeside(~mengwong@103.252.202.85) (Ping timeout: 268 seconds)
2023-03-24 02:42:44 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-03-24 02:43:06 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 02:43:08 +0100xff0x(~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 246 seconds)
2023-03-24 02:43:16 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 02:43:49 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2023-03-24 02:49:56 +0100Square2(~Square4@user/square)
2023-03-24 02:52:43 +0100zer0bitz(~zer0bitz@2001:2003:f443:d600:b49b:29c2:a815:97ea)
2023-03-24 02:53:10 +0100nate4(~nate@98.45.169.16)
2023-03-24 02:54:08 +0100zer0bitz_(~zer0bitz@2001:2003:f443:d600:3048:24b6:d2fe:5f2e) (Ping timeout: 248 seconds)
2023-03-24 02:57:18 +0100jargon(~jargon@174-22-223-2.phnx.qwest.net)
2023-03-24 02:58:43 +0100nate4(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2023-03-24 03:00:05 +0100meinside(uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-24 03:01:35 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 248 seconds)
2023-03-24 03:06:35 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 03:10:35 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 03:15:34 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-03-24 03:15:34 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-03-24 03:15:34 +0100wroathe(~wroathe@user/wroathe)
2023-03-24 03:16:07 +0100razetime(~Thunderbi@117.193.3.141)
2023-03-24 03:18:59 +0100gmg(~user@user/gehmehgeh)
2023-03-24 03:20:26 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-03-24 03:25:10 +0100cheater_(~Username@user/cheater)
2023-03-24 03:26:02 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com)
2023-03-24 03:27:55 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 03:28:08 +0100cheater__(~Username@user/cheater)
2023-03-24 03:28:08 +0100cheater__cheater
2023-03-24 03:29:20 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-03-24 03:31:01 +0100cheater_(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 03:33:41 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 03:39:38 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl)
2023-03-24 03:40:21 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acf4:2d59:900d:be3a)
2023-03-24 03:40:37 +0100slac23932(~slack1256@186.11.53.81) (Ping timeout: 265 seconds)
2023-03-24 03:46:10 +0100freeside(~mengwong@103.252.202.85)
2023-03-24 03:46:47 +0100nate4(~nate@98.45.169.16)
2023-03-24 03:50:31 +0100freeside(~mengwong@103.252.202.85) (Ping timeout: 240 seconds)
2023-03-24 03:50:31 +0100codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 240 seconds)
2023-03-24 03:51:07 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 04:05:18 +0100cheater_(~Username@user/cheater)
2023-03-24 04:06:43 +0100cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-03-24 04:06:44 +0100cheater_cheater
2023-03-24 04:07:41 +0100mei(~mei@user/mei) (Remote host closed the connection)
2023-03-24 04:08:22 +0100mei(~mei@user/mei)
2023-03-24 04:10:29 +0100jero98772(~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) (Remote host closed the connection)
2023-03-24 04:12:21 +0100td_(~td@i53870924.versanet.de) (Ping timeout: 250 seconds)
2023-03-24 04:13:13 +0100hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 250 seconds)
2023-03-24 04:14:08 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 04:14:20 +0100td_(~td@i5387091E.versanet.de)
2023-03-24 04:14:28 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2023-03-24 04:14:46 +0100srz_(~srz@179.36.81.180) (Quit: Leaving)
2023-03-24 04:22:03 +0100nek0(~nek0@2a01:4f8:222:2b41::12)
2023-03-24 04:24:20 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 04:29:41 +0100Techcable(~Techcable@user/Techcable) (Ping timeout: 250 seconds)
2023-03-24 04:31:29 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-24 04:39:03 +0100Techcable(~Techcable@user/Techcable)
2023-03-24 04:42:33 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 256 seconds)
2023-03-24 04:44:38 +0100cheater_(~Username@user/cheater)
2023-03-24 04:44:40 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 276 seconds)
2023-03-24 04:44:43 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 04:44:53 +0100cheater_cheater
2023-03-24 04:45:28 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-03-24 04:45:28 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-03-24 04:45:28 +0100finn_elijaFinnElija
2023-03-24 04:47:23 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 04:48:31 +0100razetime(~Thunderbi@117.193.3.141) (Ping timeout: 240 seconds)
2023-03-24 04:48:32 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 04:49:01 +0100nate4(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-03-24 04:49:51 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-03-24 04:53:24 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-24 04:58:24 +0100freeside(~mengwong@103.252.202.85)
2023-03-24 05:02:51 +0100freeside(~mengwong@103.252.202.85) (Ping timeout: 248 seconds)
2023-03-24 05:06:35 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds)
2023-03-24 05:10:12 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl)
2023-03-24 05:12:07 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-03-24 05:12:22 +0100lagash(lagash@lagash.shelltalk.net) (Read error: Connection reset by peer)
2023-03-24 05:12:37 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 05:14:31 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-03-24 05:14:58 +0100talismanick(~talismani@2601:200:c000:f7a0::5321)
2023-03-24 05:17:35 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-24 05:22:56 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 05:26:19 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 248 seconds)
2023-03-24 05:28:11 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-03-24 05:30:28 +0100cheater(~Username@user/cheater)
2023-03-24 05:35:31 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 05:35:50 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 05:36:18 +0100cheater(~Username@user/cheater)
2023-03-24 05:36:55 +0100razetime(~Thunderbi@117.193.3.141)
2023-03-24 05:37:51 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
2023-03-24 05:37:57 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 05:39:06 +0100cheater_(~Username@user/cheater)
2023-03-24 05:39:17 +0100xiliuya(~xiliuya@user/xiliuya)
2023-03-24 05:39:50 +0100cheater_(~Username@user/cheater) (Read error: Connection reset by peer)
2023-03-24 05:40:45 +0100cheater_(~Username@user/cheater)
2023-03-24 05:41:13 +0100cheater(~Username@user/cheater) (Ping timeout: 276 seconds)
2023-03-24 05:41:19 +0100cheater_(~Username@user/cheater) (Read error: Connection reset by peer)
2023-03-24 05:42:49 +0100cheater_(~Username@user/cheater)
2023-03-24 05:42:49 +0100cheater_cheater
2023-03-24 05:45:46 +0100cheater_(~Username@user/cheater)
2023-03-24 05:48:15 +0100ensyde(ensyde@2600:3c02::f03c:93ff:fef7:5529) (Quit: WeeChat 3.8)
2023-03-24 05:49:10 +0100cheater__(~Username@user/cheater)
2023-03-24 05:49:40 +0100cheater(~Username@user/cheater) (Ping timeout: 276 seconds)
2023-03-24 05:49:45 +0100cheater__cheater
2023-03-24 05:50:42 +0100freeside(~mengwong@122.11.248.245)
2023-03-24 05:52:15 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 256 seconds)
2023-03-24 05:52:34 +0100cheater_(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-03-24 05:54:32 +0100mbuf(~Shakthi@49.207.178.186)
2023-03-24 05:55:37 +0100freeside_(~mengwong@202.161.55.11)
2023-03-24 05:55:40 +0100euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 246 seconds)
2023-03-24 05:56:09 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 255 seconds)
2023-03-24 06:01:24 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 06:03:42 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-24 06:04:21 +0100Sgeo_(~Sgeo@user/sgeo)
2023-03-24 06:04:26 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-03-24 06:10:06 +0100cheater_(~Username@user/cheater)
2023-03-24 06:10:24 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-24 06:10:26 +0100slack1256(~slack1256@186.11.53.81)
2023-03-24 06:10:30 +0100cheater_cheater
2023-03-24 06:10:44 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl)
2023-03-24 06:11:52 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2023-03-24 06:13:05 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
2023-03-24 06:14:03 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 06:15:01 +0100mikoto-chan(~mikoto-ch@87-95-58-79.bb.dnainternet.fi) (Ping timeout: 276 seconds)
2023-03-24 06:17:37 +0100slack1256(~slack1256@186.11.53.81) (Ping timeout: 276 seconds)
2023-03-24 06:20:26 +0100euandreh(~Thunderbi@189.6.18.7)
2023-03-24 06:23:37 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-24 06:27:53 +0100Square2Square
2023-03-24 06:28:47 +0100phma(phma@2001:5b0:211f:ddb8:2d78:5150:d16:dc20) (Read error: Connection reset by peer)
2023-03-24 06:29:20 +0100phma(~phma@host-67-44-208-120.hnremote.net)
2023-03-24 06:32:27 +0100cheater_(~Username@user/cheater)
2023-03-24 06:35:01 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 06:35:02 +0100cheater_cheater
2023-03-24 06:35:42 +0100euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 268 seconds)
2023-03-24 06:36:31 +0100cheater_(~Username@user/cheater)
2023-03-24 06:40:00 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-24 06:40:07 +0100cheater_cheater
2023-03-24 06:41:27 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Quit: use-value)
2023-03-24 06:42:17 +0100thegeekinside(~thegeekin@189.141.115.134) (Ping timeout: 250 seconds)
2023-03-24 06:45:01 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-03-24 06:48:43 +0100euandreh(~Thunderbi@189.6.18.7)
2023-03-24 06:50:37 +0100trev(~trev@user/trev)
2023-03-24 06:52:04 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 276 seconds)
2023-03-24 06:56:27 +0100freeside(~mengwong@122.11.248.245)
2023-03-24 06:58:01 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-03-24 06:58:30 +0100freeside_(~mengwong@202.161.55.11) (Ping timeout: 268 seconds)
2023-03-24 06:59:53 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 07:00:46 +0100dcoutts_(~duncan@host86-149-51-125.range86-149.btcentralplus.com)
2023-03-24 07:01:00 +0100freeside(~mengwong@122.11.248.245) (Ping timeout: 252 seconds)
2023-03-24 07:02:31 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 07:02:47 +0100dcoutts(~duncan@host86-149-51-125.range86-149.btcentralplus.com) (Ping timeout: 246 seconds)
2023-03-24 07:06:53 +0100ramin_hal9001(~user@126.249.179.97)
2023-03-24 07:07:29 +0100cheater(~Username@user/cheater)
2023-03-24 07:08:01 +0100cheater(~Username@user/cheater) (Client Quit)
2023-03-24 07:08:18 +0100chomwitt(~chomwitt@2a02:587:7a19:3600:1ac0:4dff:fedb:a3f1)
2023-03-24 07:13:34 +0100cheater(~Username@user/cheater)
2023-03-24 07:15:07 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 07:17:46 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-03-24 07:18:21 +0100cheater_(~Username@user/cheater)
2023-03-24 07:20:05 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-24 07:23:30 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2023-03-24 07:24:09 +0100cheater__(~Username@user/cheater)
2023-03-24 07:24:09 +0100cheater__cheater
2023-03-24 07:24:31 +0100cheater_(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 07:25:22 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2023-03-24 07:34:14 +0100cheater_(~Username@user/cheater)
2023-03-24 07:34:17 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2023-03-24 07:34:18 +0100cheater_cheater
2023-03-24 07:36:47 +0100jakalx(~jakalx@base.jakalx.net) ()
2023-03-24 07:38:16 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 07:41:32 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl)
2023-03-24 07:42:31 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 07:43:17 +0100cheater(~Username@user/cheater)
2023-03-24 07:43:17 +0100michalz(~michalz@185.246.207.203)
2023-03-24 07:45:31 +0100jakalx(~jakalx@base.jakalx.net)
2023-03-24 07:45:42 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-24 07:47:58 +0100Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-03-24 07:50:04 +0100xiliuya(~xiliuya@user/xiliuya) (Quit: Bye)
2023-03-24 07:56:07 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 07:57:38 +0100cheater_(~Username@user/cheater)
2023-03-24 07:59:11 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2023-03-24 08:00:18 +0100cheater__(~Username@user/cheater)
2023-03-24 08:00:18 +0100cheater__cheater
2023-03-24 08:02:59 +0100cheater_(~Username@user/cheater) (Ping timeout: 246 seconds)
2023-03-24 08:07:52 +0100cheater_(~Username@user/cheater)
2023-03-24 08:10:31 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 08:10:39 +0100cheater_cheater
2023-03-24 08:12:03 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds)
2023-03-24 08:13:40 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-03-24 08:14:21 +0100cheater_(~Username@user/cheater)
2023-03-24 08:14:38 +0100ubert(~Thunderbi@p200300ecdf216c77c362d35fab61ca09.dip0.t-ipconnect.de)
2023-03-24 08:15:49 +0100cheater__(~Username@user/cheater)
2023-03-24 08:16:34 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
2023-03-24 08:17:01 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 08:17:34 +0100kenran(~user@user/kenran)
2023-03-24 08:18:54 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 08:18:55 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-24 08:18:55 +0100cheater___(~Username@user/cheater)
2023-03-24 08:18:55 +0100cheater___cheater
2023-03-24 08:19:01 +0100ubert(~Thunderbi@p200300ecdf216c77c362d35fab61ca09.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-03-24 08:19:19 +0100cheater_(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-03-24 08:19:20 +0100ubert(~Thunderbi@p200300ecdf216c77c362d35fab61ca09.dip0.t-ipconnect.de)
2023-03-24 08:20:29 +0100wagle(~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2023-03-24 08:20:59 +0100wagle(~wagle@quassel.wagle.io)
2023-03-24 08:21:07 +0100cheater__(~Username@user/cheater) (Ping timeout: 276 seconds)
2023-03-24 08:24:40 +0100ubert1(~Thunderbi@p200300ecdf216c77fe5efe35ee3dae02.dip0.t-ipconnect.de)
2023-03-24 08:25:31 +0100cheater_(~Username@user/cheater)
2023-03-24 08:26:40 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 08:28:01 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 08:28:08 +0100cheater_cheater
2023-03-24 08:31:38 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acf4:2d59:900d:be3a) (Remote host closed the connection)
2023-03-24 08:32:15 +0100cheater_(~Username@user/cheater)
2023-03-24 08:35:00 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2023-03-24 08:35:01 +0100cheater_cheater
2023-03-24 08:39:08 +0100dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net) (Remote host closed the connection)
2023-03-24 08:43:14 +0100cheater_(~Username@user/cheater)
2023-03-24 08:44:10 +0100cheater__(~Username@user/cheater)
2023-03-24 08:45:47 +0100cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2023-03-24 08:45:56 +0100cheater__cheater
2023-03-24 08:46:12 +0100nate4(~nate@98.45.169.16)
2023-03-24 08:47:31 +0100cheater_(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 08:50:39 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 08:51:01 +0100nate4(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-03-24 08:51:19 +0100cheater_(~Username@user/cheater)
2023-03-24 08:52:07 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:3aed:4a10:f448:7afe)
2023-03-24 08:53:35 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 08:53:45 +0100cheater_cheater
2023-03-24 08:55:00 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-03-24 08:55:17 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-24 08:56:39 +0100ub(~Thunderbi@p548c9c54.dip0.t-ipconnect.de)
2023-03-24 08:57:50 +0100ubert(~Thunderbi@p200300ecdf216c77c362d35fab61ca09.dip0.t-ipconnect.de) (Remote host closed the connection)
2023-03-24 08:57:50 +0100ububert
2023-03-24 08:58:08 +0100Guest96(~Guest96@2604:4080:11a5:8050:9ca3:338e:932a:37d5)
2023-03-24 08:59:32 +0100 <Guest96> hey all, i've been working through haskellbook and in ch 13, i git cloned haskellbook/hello like it said, but when i stack build, i get Prelude.chr: bad argument: 2634022915 in Setup.hs
2023-03-24 09:00:01 +0100 <Guest96> google search says i must have object files built with the wrong version of ghc? but i don't see anything and blowing away .stack-work doesn't fix it
2023-03-24 09:00:24 +0100michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2023-03-24 09:01:31 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-03-24 09:01:59 +0100 <Guest96> it says it's using ghc 8.6.5 which matches lts-14.16 and ghcup tui confirms that it's installed (just not system default)
2023-03-24 09:02:44 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 09:02:52 +0100cheater(~Username@user/cheater)
2023-03-24 09:02:53 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-03-24 09:04:12 +0100 <tomsmeding> Guest96: if you're using stack, then it will use whatever stack.yaml contains, disregarding whatever ghcup installs
2023-03-24 09:04:36 +0100 <tomsmeding> (unless you've set 'system-ghc: True' or something, but usually people don't)
2023-03-24 09:04:42 +0100cheater_(~Username@user/cheater)
2023-03-24 09:05:15 +0100dcoutts(~duncan@host86-151-9-67.range86-151.btcentralplus.com)
2023-03-24 09:05:30 +0100 <Guest96> yeah, i assume 8.6.5 is selected by lts-14.16 because i didn't set it myself
2023-03-24 09:05:35 +0100 <Guest96> but why is it unable to build?
2023-03-24 09:05:47 +0100 <tomsmeding> Guest96: what happens if you change the lts-14.16 in stack.yaml to lts-18.28?
2023-03-24 09:06:12 +0100madjestic(~madjestic@188-207-87-53.mobile.kpn.net)
2023-03-24 09:06:17 +0100 <Guest96> lemme try, ghcup needs to pull 8.10.7
2023-03-24 09:06:21 +0100 <mauke> whoa, that's some error
2023-03-24 09:06:25 +0100 <mauke> is that the full message?
2023-03-24 09:06:27 +0100 <tomsmeding> Guest96: no, stack needs that
2023-03-24 09:06:32 +0100 <tomsmeding> Guest96: ghcup is not involved in stack
2023-03-24 09:06:49 +0100madjestic(~madjestic@188-207-87-53.mobile.kpn.net) (Remote host closed the connection)
2023-03-24 09:06:49 +0100 <Guest96> no, but stack build auto triggers ghcup to install the needed ghc version
2023-03-24 09:07:01 +0100 <tomsmeding> Guest96: oh is that integrated nowadays? O.o
2023-03-24 09:07:03 +0100 <tomsmeding> that's cool
2023-03-24 09:07:04 +0100 <Guest96> yes
2023-03-24 09:07:14 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-03-24 09:07:27 +0100 <Guest96> at least with stack installed via ghcup? i can't remember how the dependencies are all interlinked anymore lol
2023-03-24 09:07:30 +0100dcoutts_(~duncan@host86-149-51-125.range86-149.btcentralplus.com) (Ping timeout: 252 seconds)
2023-03-24 09:07:31 +0100 <tomsmeding> yeah
2023-03-24 09:07:47 +0100 <Guest96> that's what i meant about 8.6.5 being installed before when i had the old lts
2023-03-24 09:07:55 +0100razetime(~Thunderbi@117.193.3.141) (Ping timeout: 276 seconds)
2023-03-24 09:07:55 +0100 <Guest96> okay, seems like that built
2023-03-24 09:08:02 +0100 <tomsmeding> anyway, given the strangeness of your error I'm hoping that there's something wrong with the 8.6.5 installation (which is a couple years old at this point), and hoping that 8.10.7, which is newer and still very widely used, will not have that bug
2023-03-24 09:08:14 +0100 <tomsmeding> maybe something in that new stack-ghcup interaction that wasn't tested with older ghcs
2023-03-24 09:08:19 +0100cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-03-24 09:08:23 +0100 <tomsmeding> Guest96: I see
2023-03-24 09:08:24 +0100 <Guest96> yeah i know 8.6.5 isn't recent or anything but i thought the point of stackage was to avoid bitrot
2023-03-24 09:08:29 +0100 <tomsmeding> yes of course
2023-03-24 09:08:30 +0100cheater_cheater
2023-03-24 09:08:37 +0100vpan(~0@212.117.1.172)
2023-03-24 09:08:41 +0100 <tomsmeding> _ostensibly_ what you did should work
2023-03-24 09:08:42 +0100 <Guest96> and the book is a couple years old too so i figured it would still build equivalent to whatever was new at that time
2023-03-24 09:08:51 +0100 <tomsmeding> however :p
2023-03-24 09:08:52 +0100 <Guest96> huh, weird
2023-03-24 09:10:15 +0100 <Guest96> hm, i reverted the lts version and now it builds on 14.16 too
2023-03-24 09:10:24 +0100 <tomsmeding> interesting
2023-03-24 09:10:32 +0100 <tomsmeding> perhaps some Setup.hs only ran once
2023-03-24 09:10:43 +0100 <tomsmeding> and it failed but nobody cared so the next time everything is fine?
2023-03-24 09:11:02 +0100 <Guest96> i guess it needed to clobber something in my $HOME/.stack?
2023-03-24 09:11:10 +0100 <tomsmeding> presumably
2023-03-24 09:11:19 +0100 <Guest96> weird, well, thanks for the help
2023-03-24 09:11:31 +0100codaraxis(~codaraxis@user/codaraxis)
2023-03-24 09:11:39 +0100 <tomsmeding> if you want to continue experimenting you could remove some stuff in ~/.stack and try again, to see if the error reappears
2023-03-24 09:11:46 +0100 <tomsmeding> but in any case you seem to have a working setup now
2023-03-24 09:11:51 +0100 <Guest96> haha i think i'm not gonna look a gift horse in the mouth for now
2023-03-24 09:11:58 +0100 <tomsmeding> as I suspected :)
2023-03-24 09:12:21 +0100merijn(~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl)
2023-03-24 09:12:30 +0100Guest96(~Guest96@2604:4080:11a5:8050:9ca3:338e:932a:37d5) (Quit: Client closed)
2023-03-24 09:12:48 +0100talismanick(~talismani@2601:200:c000:f7a0::5321) (Remote host closed the connection)
2023-03-24 09:13:55 +0100cheater_(~Username@user/cheater)
2023-03-24 09:13:56 +0100dcoutts_(~duncan@host165-120-97-41.range165-120.btcentralplus.com)
2023-03-24 09:15:07 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 09:15:21 +0100zeenk(~zeenk@2a02:2f04:a307:2300::7fe)
2023-03-24 09:15:21 +0100michalz(~michalz@185.246.207.203)
2023-03-24 09:15:57 +0100cheater(~Username@user/cheater)
2023-03-24 09:17:15 +0100dcoutts(~duncan@host86-151-9-67.range86-151.btcentralplus.com) (Ping timeout: 268 seconds)
2023-03-24 09:18:31 +0100cheater_(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 09:19:31 +0100Square(~Square4@user/square) (Ping timeout: 240 seconds)
2023-03-24 09:21:31 +0100pony(sid524992@smol/hors)
2023-03-24 09:21:33 +0100CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-03-24 09:25:07 +0100coot(~coot@213.134.170.228)
2023-03-24 09:25:28 +0100coot(~coot@213.134.170.228) (Remote host closed the connection)
2023-03-24 09:26:06 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 09:26:14 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-24 09:26:31 +0100kimjetwav(~user@2607:fea8:235e:b600:3d66:fa8b:402c:9466) (Ping timeout: 250 seconds)
2023-03-24 09:26:56 +0100cheater_(~Username@user/cheater)
2023-03-24 09:27:41 +0100codaraxis__(~codaraxis@user/codaraxis)
2023-03-24 09:28:26 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2023-03-24 09:28:33 +0100cheater_cheater
2023-03-24 09:30:51 +0100freeside(~mengwong@103.252.202.85)
2023-03-24 09:31:01 +0100codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 240 seconds)
2023-03-24 09:32:08 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acf4:2d59:900d:be3a)
2023-03-24 09:33:38 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-03-24 09:34:56 +0100razetime(~Thunderbi@117.193.3.141)
2023-03-24 09:35:31 +0100mastarija(~mastarija@188.252.197.99)
2023-03-24 09:36:28 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acf4:2d59:900d:be3a) (Ping timeout: 252 seconds)
2023-03-24 09:37:16 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-03-24 09:38:20 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-03-24 09:38:28 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-03-24 09:47:44 +0100mastarija(~mastarija@188.252.197.99) (Quit: WeeChat 3.7.1)
2023-03-24 09:49:41 +0100mastarija(~mastarija@188.252.197.99)
2023-03-24 09:49:45 +0100cheater(~Username@user/cheater)
2023-03-24 09:52:03 +0100chele(~chele@user/chele)
2023-03-24 09:52:27 +0100acidjnk(~acidjnk@p200300d6e715c457c536ba982fab447f.dip0.t-ipconnect.de)
2023-03-24 09:57:33 +0100ft(~ft@62.155.196.67) (Quit: leaving)
2023-03-24 09:59:59 +0100cheater_(~Username@user/cheater)
2023-03-24 10:00:17 +0100kadenwolff[m](~kadenwolf@2001:470:69fc:105::1:d97f) (Quit: You have been kicked for being idle)
2023-03-24 10:02:23 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 10:02:25 +0100cheater_cheater
2023-03-24 10:04:45 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de)
2023-03-24 10:05:43 +0100jinsl(~jinsl@2408:8207:255d:b420:211:32ff:fec8:6aea) (Ping timeout: 260 seconds)
2023-03-24 10:05:56 +0100jinsl(~jinsl@2408:8207:2552:9fc0:211:32ff:fec8:6aea)
2023-03-24 10:08:49 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 10:15:09 +0100hays(rootvegeta@fsf/member/hays) (Read error: Connection reset by peer)
2023-03-24 10:17:22 +0100zeenk(~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!)
2023-03-24 10:20:36 +0100razetime1(~Thunderbi@117.193.3.141)
2023-03-24 10:21:17 +0100razetime(~Thunderbi@117.193.3.141) (Ping timeout: 246 seconds)
2023-03-24 10:21:18 +0100razetime1razetime
2023-03-24 10:21:50 +0100cheater_(~Username@user/cheater)
2023-03-24 10:23:13 +0100cheater__(~Username@user/cheater)
2023-03-24 10:23:16 +0100phma(~phma@host-67-44-208-120.hnremote.net) (Read error: Connection reset by peer)
2023-03-24 10:24:01 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 10:24:13 +0100phma(~phma@host-67-44-208-27.hnremote.net)
2023-03-24 10:25:39 +0100cheater___(~Username@user/cheater)
2023-03-24 10:25:39 +0100cheater___cheater
2023-03-24 10:26:35 +0100cheater_(~Username@user/cheater) (Ping timeout: 264 seconds)
2023-03-24 10:27:39 +0100cheater__(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-03-24 10:30:55 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-03-24 10:31:22 +0100cheater(~Username@user/cheater)
2023-03-24 10:31:44 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 10:32:10 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-24 10:35:38 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-24 10:45:11 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-24 10:46:01 +0100cheater_(~Username@user/cheater)
2023-03-24 10:47:31 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 10:47:37 +0100cheater_cheater
2023-03-24 10:52:38 +0100Flow(~none@gentoo/developer/flow) (Quit: WeeChat 3.7.1)
2023-03-24 10:53:04 +0100Flow(~none@gentoo/developer/flow)
2023-03-24 10:55:56 +0100maerwald(~maerwald@user/maerwald) (Quit: gone)
2023-03-24 10:59:57 +0100razetime(~Thunderbi@117.193.3.141) (Quit: See You Space Cowboy)
2023-03-24 11:00:56 +0100shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 265 seconds)
2023-03-24 11:02:11 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:51a8:e4ff:15ed:6357)
2023-03-24 11:05:50 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2023-03-24 11:06:10 +0100kenran(~user@user/kenran)
2023-03-24 11:10:13 +0100maerwald(~maerwald@mail.hasufell.de)
2023-03-24 11:12:29 +0100maerwald(~maerwald@mail.hasufell.de) (Changing host)
2023-03-24 11:12:29 +0100maerwald(~maerwald@user/maerwald)
2023-03-24 11:13:31 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds)
2023-03-24 11:25:03 +0100cheater_(~Username@user/cheater)
2023-03-24 11:27:02 +0100cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-03-24 11:27:09 +0100cheater_cheater
2023-03-24 11:28:29 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2023-03-24 11:29:13 +0100gmg(~user@user/gehmehgeh)
2023-03-24 11:30:55 +0100hays(rootvegeta@fsf/member/hays)
2023-03-24 11:33:17 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-03-24 11:35:29 +0100 <pkal> Does anyone know what .hs-boot files are?
2023-03-24 11:38:18 +0100mastarija(~mastarija@188.252.197.99) (Quit: WeeChat 3.7.1)
2023-03-24 11:41:10 +0100mastarija(~mastarija@188.252.197.99)
2023-03-24 11:45:11 +0100 <int-e> Yes: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/separate_compilation.html#how-to-compile-mutual…
2023-03-24 11:47:43 +0100ramin_hal9001(~user@126.249.179.97) (Ping timeout: 268 seconds)
2023-03-24 11:53:06 +0100__monty__(~toonn@user/toonn)
2023-03-24 11:54:30 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-24 11:56:29 +0100cheater(~Username@user/cheater)
2023-03-24 12:00:08 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-03-24 12:07:49 +0100cheater_(~Username@user/cheater)
2023-03-24 12:07:50 +0100Inst(~Inst@2601:6c4:4081:54f0:b848:a37f:7ef6:16ca)
2023-03-24 12:08:01 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds)
2023-03-24 12:08:26 +0100mncheck(~mncheck@193.224.205.254)
2023-03-24 12:09:16 +0100cheater(~Username@user/cheater) (Ping timeout: 276 seconds)
2023-03-24 12:09:26 +0100cheater_cheater
2023-03-24 12:09:47 +0100CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-03-24 12:20:51 +0100xff0x(~xff0x@ai098135.d.east.v6connect.net)
2023-03-24 12:32:58 +0100 <pkal> Does it make sense that HLS suggests these files are places where functions are defined?
2023-03-24 12:36:21 +0100 <dminuoso> What do zou mean_
2023-03-24 12:36:26 +0100cheater_(~Username@user/cheater)
2023-03-24 12:36:27 +0100 <dminuoso> Oh. What do you mean?
2023-03-24 12:37:01 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-03-24 12:38:54 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-24 12:39:02 +0100cheater_cheater
2023-03-24 12:40:33 +0100 <pkal> Sometimes in Emacs when I use M-. to jump to a definition, I am given to file locations, one .hs the other .hs-boot
2023-03-24 12:40:51 +0100 <pkal> (Context, I am working on Agda, and for some reason these files were added to the repo)
2023-03-24 12:47:41 +0100nate4(~nate@98.45.169.16)
2023-03-24 12:48:17 +0100 <siers69> (Why) Do typeclasses have to have laws? That doesn't seem entirely necessary.
2023-03-24 12:51:16 +0100 <__monty__> Laws are what make them useful wrt reasoning about them.
2023-03-24 12:52:37 +0100 <__monty__> You can only abstract over Functors or Monads because you can rely on the laws. The fact they're a typeclass is just an implementation detail.
2023-03-24 12:52:43 +0100nate4(~nate@98.45.169.16) (Ping timeout: 248 seconds)
2023-03-24 12:54:02 +0100 <pkal> siers69: "(Why) Do typeclasses have to have laws?" No, in the sense that the compiler doesn't enforce them, but yes in the sense that they are expected for the abstraction to work. Or why do you think they are not necessary?
2023-03-24 12:56:09 +0100 <dminuoso> siers69: The *why* part is a really good question, actually.
2023-03-24 12:56:09 +0100 <siers69> Ok, first, tell me what about the list typeclass? What laws would that have? "class List a where nil :: List a; cons :: a -> List a -> List a" (I hope I didn't screw anything up in the code.)
2023-03-24 12:56:37 +0100 <dminuoso> siers69: I think you have it backward.
2023-03-24 12:56:47 +0100 <siers69> I just might and that's why I'm here.
2023-03-24 12:56:49 +0100cheater_(~Username@user/cheater)
2023-03-24 12:56:55 +0100 <dminuoso> There's a rough consensus amongst many Haskellers that a typeclass should only exist *if* it is lawful.
2023-03-24 12:57:40 +0100 <dminuoso> The thing is, haskell typeclasses arent quite like `interfaces` or `behaviors` from other languages.
2023-03-24 12:58:00 +0100 <dminuoso> So the beginning question is, what can you infer from `f :: F a => ... a ...`?
2023-03-24 12:58:36 +0100 <dminuoso> In a setting where you use `F` as a kind of interface, it might be suitable in the sense of `HasLogging` perhaps
2023-03-24 12:58:42 +0100 <dminuoso> Those are fine, and dont need laws really.
2023-03-24 12:59:01 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 12:59:06 +0100 <dminuoso> However, there's a greater family of things where its hard to describe what the typeclass really embodies.
2023-03-24 12:59:31 +0100 <dminuoso> Take `Functor` for instance. It doesnt embody anything but its laws. However, if you do that, it opens up code transformations and reasoning based on just the laws.
2023-03-24 13:01:05 +0100 <siers69> how come they aren't? aren't technically or aren't supposed to be?
2023-03-24 13:01:09 +0100 <Axman6> the Default class is a good example of a lawless class, where knowing that a type has an instance tells you basically nothing, other that you can make _something_ of that type. That something tends to follow some conventions, but without laws (which you'd struggle to define for that class), you can't then start to write code that is generic over types which are instances of Default
2023-03-24 13:02:29 +0100 <Axman6> foo :: Default a => ... a ... basically doesn't tell me anything
2023-03-24 13:02:55 +0100cheater_(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-03-24 13:03:39 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:51a8:e4ff:15ed:6357) (Remote host closed the connection)
2023-03-24 13:03:48 +0100 <siers69> It's a selling point for "typeclasses are more useful, if they're lawless".
2023-03-24 13:03:57 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:51a8:e4ff:15ed:6357)
2023-03-24 13:04:16 +0100 <Axman6> I'm not sure how you could come to that conclusion from what I've said
2023-03-24 13:04:24 +0100 <Axman6> did you mean lawful?
2023-03-24 13:04:30 +0100 <siers69> yes, lawful, sorry
2023-03-24 13:04:31 +0100 <Axman6> or, have laws?
2023-03-24 13:04:41 +0100 <Axman6> ok :)
2023-03-24 13:05:28 +0100 <maerwald[m]> Laws are for conformists
2023-03-24 13:05:37 +0100 <Axman6> \m/
2023-03-24 13:06:54 +0100 <maerwald[m]> Would be interesting if GHC had knowledge of the monad/applicative laws and be able to apply more optimization/rewrites
2023-03-24 13:07:04 +0100 <siers69> qa
2023-03-24 13:07:22 +0100 <maerwald[m]> But right now they are only in your head
2023-03-24 13:07:27 +0100 <Axman6> siers69: Also worth mentioning that your code above doesn't make a whole lot of sense, I guess you could have something like this though: class List t where nil :: t a; cons :: a -> t a -> t a (depending on what you what that class to be able to achieve).
2023-03-24 13:07:30 +0100 <maerwald[m]> No monad police
2023-03-24 13:08:08 +0100 <siers69> Axman6, I thought I was missing something, yeah I wanted to define the list algebra over some set.
2023-03-24 13:08:45 +0100 <Axman6> can we write instance specific RULES though? If we know a particular monad obeys the laws, then have monomorphic RULES
2023-03-24 13:09:31 +0100 <__monty__> Monomorphic or monadmorphic?
2023-03-24 13:09:53 +0100 <Axman6> por que no los dos?
2023-03-24 13:11:48 +0100kaskal(~kaskal@089144220250.atnat0029.highway.webapn.at)
2023-03-24 13:13:47 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-03-24 13:16:50 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-03-24 13:17:52 +0100 <siers69> Axman6, does the list algebra have any laws?
2023-03-24 13:19:13 +0100 <Axman6> not sure, it would probably need some operations that use t a to have laws
2023-03-24 13:19:49 +0100 <Axman6> like adding (+++) :: t a -> t a -> t a
2023-03-24 13:19:51 +0100motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 255 seconds)
2023-03-24 13:19:58 +0100 <Axman6> or foldr
2023-03-24 13:21:00 +0100motherfsck(~motherfsc@user/motherfsck)
2023-03-24 13:21:04 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 13:21:27 +0100cheater_(~Username@user/cheater)
2023-03-24 13:21:27 +0100cheater_cheater
2023-03-24 13:22:41 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-03-24 13:25:59 +0100cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2023-03-24 13:26:34 +0100 <dminuoso> 13:06:54 maerwald[m] | Would be interesting if GHC had knowledge of the monad/applicative laws and be able to apply more optimization/rewrites
2023-03-24 13:26:46 +0100 <dminuoso> Yes, consider the amount of GHC bug reports when it applies a "wrong" optimization.
2023-03-24 13:27:14 +0100 <dminuoso> Without a checkable proof, I think it's a bad idea.
2023-03-24 13:28:00 +0100 <dminuoso> Just consider that many bugs arising from improper accursedUnutterablePerformIO usage ended up as GHC bugs before they were identified as bytestring bugs or what not.
2023-03-24 13:29:08 +0100 <dminuoso> I'd rather use Yoneda manually than have GHC incorrectly assume correct Functor laws
2023-03-24 13:29:29 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-03-24 13:32:47 +0100cheater_(~Username@user/cheater)
2023-03-24 13:32:47 +0100cheater_cheater
2023-03-24 13:36:02 +0100 <zzz> little help: f x y = pure $ g x y === f x = pure . g x === f = ???
2023-03-24 13:36:32 +0100 <zzz> @pl pure $ g x y
2023-03-24 13:36:32 +0100 <lambdabot> pure (g x y)
2023-03-24 13:38:15 +0100 <dminuoso> f = pure .: g
2023-03-24 13:38:18 +0100 <zzz> f = (pure .) . g -- ?
2023-03-24 13:38:25 +0100 <dminuoso> sure, that'ss the same expression.
2023-03-24 13:38:31 +0100 <dminuoso> .: = (.) . (.)
2023-03-24 13:38:35 +0100 <dminuoso> .: = (.) `fmap` (.)
2023-03-24 13:38:39 +0100 <dminuoso> .: = fmap fmap fmap\
2023-03-24 13:38:57 +0100 <dminuoso> I frequently define .: or .:: on the spot when its convenient
2023-03-24 13:39:12 +0100 <zzz> oh ok
2023-03-24 13:39:21 +0100 <zzz> i think ill use a lambda for readability
2023-03-24 13:39:22 +0100 <dminuoso> `.: = fmap . fmap` or `.:: = fmap . fmap . fmap` is what I usuallyw rite then
2023-03-24 13:39:25 +0100 <dminuoso> Yeah that's great too.
2023-03-24 13:39:44 +0100 <zzz> :)
2023-03-24 13:39:46 +0100 <dminuoso> I tend to use .: when its useful for vertical alignment
2023-03-24 13:40:01 +0100 <dminuoso> zzz: https://gist.github.com/dminuoso/23bb703a4b355027a93b56e369d41145
2023-03-24 13:40:03 +0100 <dminuoso> like here
2023-03-24 13:40:21 +0100 <dminuoso> (well not quite alignment, but you get the idea - it fits better visually)
2023-03-24 13:41:02 +0100 <dminuoso> the nice thing about .:: is that is you stare at just the bottom row, you can visually see the nth argument it composes into.
2023-03-24 13:41:19 +0100 <dminuoso> . composes for the first argument, .: for the second, .:: for the third, and so on :)
2023-03-24 13:41:42 +0100 <zzz> i dont know why but my functional intuition was that there would be some elegant way to express this
2023-03-24 13:41:55 +0100 <dminuoso> and additionally nice is that the total number of dots remains the same when you write `(.::) = (.) . (.) . (.)`
2023-03-24 13:42:02 +0100 <dminuoso> there's some cool symmetry there. :)
2023-03-24 13:42:19 +0100 <zzz> :) nice
2023-03-24 13:42:50 +0100 <dminuoso> `(f .) . g` I dislike however though, it takes extra mental effort to decipher it for me.
2023-03-24 13:43:00 +0100 <dminuoso> It looks like output from lambdabots @pl
2023-03-24 13:43:01 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-03-24 13:44:34 +0100 <Profpatsch> class IntegerLiteral a where
2023-03-24 13:44:35 +0100 <Profpatsch> integerLiteral :: Integer -> a
2023-03-24 13:44:46 +0100 <Profpatsch> instance IntegerLiteral num => Num (NumLiteralOnly sym num) where
2023-03-24 13:45:25 +0100 <Profpatsch> data Foo instance IntegerLiteral (Enc x) where
2023-03-24 13:45:34 +0100 <Profpatsch> huh
2023-03-24 13:45:40 +0100 <Profpatsch> Oh, sorry lol, I’m gonna paste
2023-03-24 13:45:53 +0100 <Profpatsch> It’s only two more lines though hrm
2023-03-24 13:46:20 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2023-03-24 13:46:45 +0100 <Profpatsch> data Foo a = … deriving (Num) via (NumLiteralOnly "Foo" (Foo a)) instance IntegerLiteral (Foo a) where
2023-03-24 13:46:49 +0100 <Profpatsch> Am I haskelling this right
2023-03-24 13:47:11 +0100 <Profpatsch> I think I’m gonna make a gist
2023-03-24 13:47:35 +0100 <Profpatsch> the idea is that I want a blanket newtype instance that allows my types to only implement `fromInteger` in Num, and throw useful errors otherwise
2023-03-24 13:47:51 +0100 <Profpatsch> at runtime ofc, but that’s the best one can do afaik
2023-03-24 13:50:50 +0100 <Profpatsch> https://gist.github.com/Profpatsch/b49c5f4bace41fa07338e8c07252d712
2023-03-24 13:50:57 +0100 <Profpatsch> This is the full code
2023-03-24 13:51:26 +0100 <Profpatsch> I implement `IntegerLiteral` and get `Num` for “free” via the NumLiteralOnly instance
2023-03-24 13:54:08 +0100 <Profpatsch> Okay, I used the wrong instance, now it should be better
2023-03-24 13:54:38 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-24 13:54:48 +0100 <Profpatsch> > Foo 4 + Foo 4
2023-03-24 13:54:50 +0100 <lambdabot> error:
2023-03-24 13:54:50 +0100 <lambdabot> Data constructor not in scope: Foo :: t0 -> aerror:
2023-03-24 13:54:50 +0100 <lambdabot> Data constructor not in scope: Foo :: t1 -> a
2023-03-24 13:54:50 +0100 <Profpatsch> *** Exception: Only use as numeric literal allowed for Foo, you tried to multiply (NumLiteralOnly)
2023-03-24 13:55:09 +0100 <Profpatsch> but
2023-03-24 13:55:11 +0100 <Profpatsch> > 4 :: Foo
2023-03-24 13:55:13 +0100 <lambdabot> error:
2023-03-24 13:55:13 +0100 <lambdabot> Not in scope: type constructor or class ‘Foo’
2023-03-24 13:55:13 +0100 <Profpatsch> Foo 4
2023-03-24 13:55:33 +0100Benzi-Junior(~BenziJuni@dsl-149-66-52.hive.is) (Quit: ZNC 1.8.2 - https://znc.in)
2023-03-24 13:55:53 +0100 <Profpatsch> lambdabot should use a symbol that’s not the commonly used quote syntax or REPL symbol :(
2023-03-24 13:56:48 +0100 <Hecate> yes
2023-03-24 13:56:50 +0100 <Hecate> agreed
2023-03-24 13:56:56 +0100 <Hecate> who's the master of puppets here?
2023-03-24 13:57:26 +0100 <Profpatsch> Hecate: beware, it’s been that way for 1 or 2 decades, people are gonna explode if you propose to change it :P
2023-03-24 13:57:28 +0100 <byorgey> I thought the fact that it's a commonly used REPL symbol is exactly *why* lambdabot uses it =)
2023-03-24 13:58:30 +0100 <Profpatsch> byorgey: well, obviously lambdabot should use λ or Λ :P
2023-03-24 13:58:52 +0100 <Profpatsch> or \x.
2023-03-24 13:59:40 +0100CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-03-24 14:00:04 +0100cheater_(~Username@user/cheater)
2023-03-24 14:00:14 +0100 <byorgey> obviously =)
2023-03-24 14:01:59 +0100cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2023-03-24 14:02:01 +0100cheater_cheater
2023-03-24 14:02:11 +0100 <yushyin> i know a few irc channel bots that use the @ symbol. In the past this was not much of a problem, however, nowadays it is.
2023-03-24 14:02:37 +0100 <yushyin> :)
2023-03-24 14:04:04 +0100 <geekosaur> I know of bots in 3 or 4 channels/channel groups that use @
2023-03-24 14:04:26 +0100 <geekosaur> in one it's to distinguish from other bots
2023-03-24 14:04:41 +0100 <geekosaur> (granting we don't expect other bots to show uphere)
2023-03-24 14:05:07 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:51a8:e4ff:15ed:6357) (Remote host closed the connection)
2023-03-24 14:05:25 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:51a8:e4ff:15ed:6357)
2023-03-24 14:06:17 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 14:09:40 +0100phma(~phma@host-67-44-208-27.hnremote.net) (Read error: Connection reset by peer)
2023-03-24 14:10:03 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-03-24 14:10:35 +0100phma(phma@2001:5b0:2144:4f68:9b04:52b2:83ef:e696)
2023-03-24 14:11:07 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 14:11:18 +0100Guest|17(~Guest|17@1.144.104.218)
2023-03-24 14:11:48 +0100B-J(~BenziJuni@dsl-149-66-52.hive.is)
2023-03-24 14:18:12 +0100srz(~srz@181.228.49.93)
2023-03-24 14:18:14 +0100cheater(~Username@user/cheater)
2023-03-24 14:20:06 +0100cheater_(~Username@user/cheater)
2023-03-24 14:20:36 +0100B-J(~BenziJuni@dsl-149-66-52.hive.is) (Quit: ZNC 1.8.2 - https://znc.in)
2023-03-24 14:21:37 +0100 <Guest|17> Hi! I have come here, unfortunately, with an issue that I am unsure how to solve. I was intending to get back into using haskell and thought to look for how to install it. I found this page - https://www.haskell.org/ghcup/install/#manual-installation - and since I am using WSL 2 with Ubuntu 20.04, I thought that just using `curl --proto '=https'
2023-03-24 14:21:37 +0100 <Guest|17> --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh` should do the trick. During the installation prompts, I chose to append the PATH variable and to install the HLS and enable the enhanced intergration with stack (though later I tried other combinations with no apparent difference).
2023-03-24 14:21:38 +0100 <Guest|17> Unfortunately, every time I tried this, the installation failed at the download stage. The usual output looks something like
2023-03-24 14:21:38 +0100 <Guest|17> ```
2023-03-24 14:21:39 +0100 <Guest|17>  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2023-03-24 14:21:39 +0100 <Guest|17>                                  Dload  Upload   Total   Spent    Left  Speed
2023-03-24 14:21:40 +0100 <Guest|17>   0     0    0     0    0     0      0      0 --:--:--  0:03:04 --:--:--     0
2023-03-24 14:21:40 +0100 <Guest|17> curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to downloads.haskell.org:443
2023-03-24 14:21:41 +0100 <Guest|17> "curl -Lf https://downloads.haskell.org/~ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2" failed!
2023-03-24 14:21:41 +0100 <Guest|17> ```
2023-03-24 14:21:42 +0100 <Guest|17> Sometimes a Total of about 15Mb is present, and one time several other sections were filled out, but the Speed is always 0 with no progress being made, and an eventual end to the connection (though I have also killed this on the occasion it stayed alive for over 5 minutes). I couldn't really find any issue on the boards that seemed similar to mine
2023-03-24 14:21:42 +0100 <Guest|17> and so I am here to ask whether anyone has encountered this before/has an idea on what the issue is and how to fix it.
2023-03-24 14:22:28 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2023-03-24 14:24:18 +0100cheater__(~Username@user/cheater)
2023-03-24 14:24:19 +0100cheater__cheater
2023-03-24 14:24:30 +0100Guest|17(~Guest|17@1.144.104.218) (Quit: Connection closed)
2023-03-24 14:24:40 +0100cheater_(~Username@user/cheater) (Ping timeout: 252 seconds)
2023-03-24 14:25:37 +0100Guest|17(~Guest|17@CPE-18-51.dsl.OntheNet.net)
2023-03-24 14:29:54 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-24 14:31:25 +0100npmania1(~Thunderbi@45.8.223.223)
2023-03-24 14:34:52 +0100npmania(~Thunderbi@45.8.223.208) (Ping timeout: 276 seconds)
2023-03-24 14:34:52 +0100npmania1npmania
2023-03-24 14:35:56 +0100B-J(~BenziJuni@dsl-149-66-52.hive.is)
2023-03-24 14:36:43 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acf4:2d59:900d:be3a)
2023-03-24 14:41:01 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acf4:2d59:900d:be3a) (Ping timeout: 240 seconds)
2023-03-24 14:47:30 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-03-24 14:48:11 +0100cheater(~Username@user/cheater)
2023-03-24 14:53:43 +0100cheater(~Username@user/cheater) (Ping timeout: 276 seconds)
2023-03-24 14:54:22 +0100cheater(~Username@user/cheater)
2023-03-24 14:54:48 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-24 14:59:28 +0100cheater_(~Username@user/cheater)
2023-03-24 14:59:30 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-03-24 14:59:31 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-03-24 14:59:31 +0100wroathe(~wroathe@user/wroathe)
2023-03-24 15:02:03 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-03-24 15:02:31 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2023-03-24 15:02:31 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2023-03-24 15:02:34 +0100allbery_bgeekosaur
2023-03-24 15:03:41 +0100cheater_(~Username@user/cheater) (Ping timeout: 246 seconds)
2023-03-24 15:05:00 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-24 15:05:08 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-24 15:11:22 +0100jero98772(~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb)
2023-03-24 15:12:41 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-24 15:14:18 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-24 15:15:27 +0100cheater_(~Username@user/cheater)
2023-03-24 15:15:28 +0100cheater_cheater
2023-03-24 15:18:58 +0100cheater_(~Username@user/cheater)
2023-03-24 15:19:47 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2023-03-24 15:19:54 +0100thegeekinside(~thegeekin@189.141.115.134)
2023-03-24 15:20:43 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-03-24 15:23:31 +0100cheater_(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-03-24 15:25:34 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds)
2023-03-24 15:25:52 +0100MangoIV[m](~mangoivma@2001:470:69fc:105::2:8417)
2023-03-24 15:26:25 +0100ratapaca(~ratapaca@98.40.240.33)
2023-03-24 15:27:47 +0100cheater_(~Username@user/cheater)
2023-03-24 15:27:47 +0100cheater_cheater
2023-03-24 15:28:18 +0100simendsjo(~user@185.83.164.132)
2023-03-24 15:28:32 +0100simendsjo(~user@185.83.164.132) (Remote host closed the connection)
2023-03-24 15:29:12 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-03-24 15:33:58 +0100razetime(~Thunderbi@117.193.3.141)
2023-03-24 15:34:40 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-03-24 15:35:12 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
2023-03-24 15:35:45 +0100ft(~ft@p3e9bc443.dip0.t-ipconnect.de)
2023-03-24 15:35:58 +0100Lord_of_Life_Lord_of_Life
2023-03-24 15:37:08 +0100euandreh(~Thunderbi@189.6.18.7) (Quit: euandreh)
2023-03-24 15:37:35 +0100 <zzz> what's the simplest library for playing simple waveforms (just a couple of sine/saw/triangle waves interacting) ?
2023-03-24 15:38:06 +0100 <dminuoso> Mmm, it would be so awesome if I could get getpeername from the socket in a wai application. :(
2023-03-24 15:38:10 +0100 <dminuoso> Say in warp
2023-03-24 15:38:36 +0100 <dminuoso> I would be even fine reinjecting that as a http header or something
2023-03-24 15:38:49 +0100 <dminuoso> Is there a unix domain socket proxy that would do this for me?
2023-03-24 15:40:02 +0100cheater_(~Username@user/cheater)
2023-03-24 15:40:50 +0100 <geekosaur> zzz, cross-platform audio is annoyingly difficult, and nobody's done a single-platform library. which means pretty much the only option is sdl_audio which is hardly lightweight
2023-03-24 15:41:30 +0100 <dminuoso> geekosaur: there's qt
2023-03-24 15:41:32 +0100ht_(~Thunderbi@194.110.115.10)
2023-03-24 15:41:59 +0100 <dminuoso> but I guess that doesnt quite match the "lightweight" requirement :)
2023-03-24 15:42:03 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-24 15:42:08 +0100cheater_cheater
2023-03-24 15:42:20 +0100 <EvanR> there's portaudio bindings
2023-03-24 15:42:56 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 246 seconds)
2023-03-24 15:42:57 +0100ht__ht
2023-03-24 15:43:26 +0100 <EvanR> there doesn't seem to be any fmod bindings...
2023-03-24 15:44:45 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
2023-03-24 15:51:05 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-24 15:53:30 +0100 <zzz> i'm not as interested in lightweight as i am in simple to use
2023-03-24 15:54:56 +0100ratapaca(~ratapaca@98.40.240.33) (Quit: Leaving)
2023-03-24 15:55:14 +0100 <zzz> all i want is something like `play $ sine (Hz 446.0) <> saw (Hz 200.0) <> custom [whatever]`
2023-03-24 15:56:54 +0100Guest|17(~Guest|17@CPE-18-51.dsl.OntheNet.net) (Ping timeout: 255 seconds)
2023-03-24 15:57:11 +0100 <zzz> i'm currently exploring https://hackage.haskell.org/package/synthesizer-core-0.8.3/docs/Synthesizer-Generic-Oscillator.html
2023-03-24 15:57:40 +0100 <stefan-_> there seem to be libraries related to SuperCollider, e.g. https://hackage.haskell.org/package/hsc3
2023-03-24 16:00:40 +0100 <zzz> o.o
2023-03-24 16:00:42 +0100Sgeo(~Sgeo@user/sgeo)
2023-03-24 16:00:47 +0100 <zzz> this is going to be harder than i thought
2023-03-24 16:01:02 +0100 <EvanR> SDL_Mixer touted itself as easier to use for a long time
2023-03-24 16:01:27 +0100 <EvanR> you can also shell out to e.g. aplay (linux ALSA)
2023-03-24 16:02:03 +0100ubert1(~Thunderbi@p200300ecdf216c77fe5efe35ee3dae02.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-24 16:02:06 +0100 <dminuoso> Where is the documentation on the -N RTS flag?
2023-03-24 16:02:14 +0100 <dminuoso> I cant seem to find it under https://downloads.haskell.org/ghc/latest/docs/users_guide/runtime_control.html#rts-options-for-con…
2023-03-24 16:03:49 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-24 16:04:40 +0100 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/users_guide/using-concurrent.html#parallel-options
2023-03-24 16:04:53 +0100 <geekosaur> which your link links to
2023-03-24 16:05:27 +0100 <dminuoso> Gah that's some poor UX. :(
2023-03-24 16:05:30 +0100 <dminuoso> Thanks
2023-03-24 16:06:17 +0100 <dminuoso> geekosaur: It would have been nice if they were listed under 5.7 Runtime system (RTS) options
2023-03-24 16:06:26 +0100 <geekosaur> yeh
2023-03-24 16:06:27 +0100 <dminuoso> Not under 5.4 "Using Concurrent Haskell"
2023-03-24 16:06:44 +0100 <geekosaur> there's also random -f flags that aren't listed in the master list of options
2023-03-24 16:12:40 +0100razetime(~Thunderbi@117.193.3.141) (Quit: See You Space Cowboy)
2023-03-24 16:14:37 +0100cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-03-24 16:15:03 +0100cheater(~Username@user/cheater)
2023-03-24 16:17:19 +0100CiaoSen(~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-24 16:18:45 +0100 <zzz> hmm... so i have a tone but it block gloss rendering https://paste.jrvieira.com/1679671082730
2023-03-24 16:18:48 +0100 <zzz> what am i doing wrong?
2023-03-24 16:19:03 +0100 <zzz> s/block/blocks
2023-03-24 16:19:48 +0100 <zzz> oops, wrong paste! this is the correct one: https://paste.jrvieira.com/1679671178614
2023-03-24 16:21:23 +0100 <[exa]> you might want to fork off the "soudn rendering" from "picture rendering" using say forkIO
2023-03-24 16:22:41 +0100cheater_(~Username@user/cheater)
2023-03-24 16:23:28 +0100 <EvanR> audio is usually handled using a callback. The OS calls your callback to get more samples when the sound system is about to runout. Or you could use a blocking strategy and push samples out as fast as they will be accepted. Either way it needs to involve threads if you want something else to be happening concurrently
2023-03-24 16:23:48 +0100cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-03-24 16:23:53 +0100 <EvanR> like the gloss main loop
2023-03-24 16:23:55 +0100cheater_cheater
2023-03-24 16:26:13 +0100 <EvanR> zzz, here's an oldie but goodie https://hackage.haskell.org/package/csound-expression
2023-03-24 16:26:22 +0100 <EvanR> if you want to screw around with waves
2023-03-24 16:32:51 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-24 16:33:58 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-24 16:35:07 +0100 <zzz> thanks i'll take a look
2023-03-24 16:35:50 +0100 <zzz> i have no experience with concurrency
2023-03-24 16:36:59 +0100 <EvanR> you got your forkIO, you got your MVars, you got your TVars, you got your Async (library)
2023-03-24 16:37:22 +0100 <zzz> i get the theory, just never done it
2023-03-24 16:37:23 +0100 <dminuoso> Mmm, is there an unforkIO, and if yes, what would it do?
2023-03-24 16:37:38 +0100 <EvanR> is unfork like pthreads join?
2023-03-24 16:37:45 +0100 <dminuoso> Is it? I dont know!
2023-03-24 16:37:52 +0100 <EvanR> which would be async's await
2023-03-24 16:37:57 +0100 <zzz> *never done it in Haskell
2023-03-24 16:38:06 +0100 <dminuoso> 16:35:50 zzz | i have no experience with concurrency
2023-03-24 16:38:16 +0100 <dminuoso> Honestly, if this your first experience, it will be a blast. :)
2023-03-24 16:38:24 +0100 <zzz> in Haskell
2023-03-24 16:38:32 +0100 <zzz> i've done it in other languages
2023-03-24 16:38:32 +0100 <EvanR> there will be plenty of "fun" for sure
2023-03-24 16:38:42 +0100 <EvanR> not nearly as "fun" as other languages though
2023-03-24 16:38:54 +0100 <zzz> unsafeFun ?
2023-03-24 16:39:53 +0100 <zzz> hmm... killThread is not working
2023-03-24 16:39:55 +0100 <zzz> i mean
2023-03-24 16:40:17 +0100 <zzz> let's ignore the fact that i'm creating a thread every frame and killing the previous one
2023-03-24 16:40:20 +0100 <zzz> https://paste.jrvieira.com/1679672197883
2023-03-24 16:41:26 +0100 <EvanR> "not working"
2023-03-24 16:41:50 +0100 <zzz> it keeps adding sines to the signal until it explodes
2023-03-24 16:42:03 +0100 <geekosaur> if it's making an FFI call to play the audio, and that FFI call is not marked as interruptible, killThread won't work
2023-03-24 16:42:13 +0100 <zzz> oh
2023-03-24 16:42:22 +0100 <zzz> there you go
2023-03-24 16:42:24 +0100 <zzz> thanks
2023-03-24 16:42:46 +0100 <EvanR> you wouldn't want to be killing this thread anyway because you want it to remain ready to handle the ongoing audio
2023-03-24 16:43:05 +0100 <zzz> yes, i was just experimenting
2023-03-24 16:43:13 +0100 <EvanR> in your playIO send control messages to the other threads via MVars or something
2023-03-24 16:43:29 +0100 <zzz> oh i get it
2023-03-24 16:44:06 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acf4:2d59:900d:be3a)
2023-03-24 16:44:17 +0100 <zzz> when will concurrency be elegant?
2023-03-24 16:44:27 +0100 <EvanR> and then when you want music to sound right you set up a sequencer... and when you want the synthesizer or sound right you get sucked into Digital Signal Processing Arcana
2023-03-24 16:44:49 +0100 <zzz> no no, i just want simple oscillators
2023-03-24 16:45:22 +0100 <zzz> but sound processing is my jam, i would love to do it
2023-03-24 16:45:33 +0100 <EvanR> since you're up against the raw OS audio API it's not going to be incredibly elegant
2023-03-24 16:46:01 +0100 <zzz> i mean functional concurrency in general
2023-03-24 16:46:05 +0100 <EvanR> there was a dream at one time you could hide that behind some FRP and handle time varying signals as is
2023-03-24 16:47:04 +0100 <EvanR> well, if you have no experience with haskell's concurrency and lots of experience with traditional pthreads(crap)-like libraries, better hold off on judgements
2023-03-24 16:47:59 +0100 <[exa]> zzz: literally just type forkIO before your call of `sound` there :]
2023-03-24 16:48:29 +0100 <zzz> i only have experience with simple consurrency in imperative languages. zero experience with audio APIs
2023-03-24 16:48:31 +0100Inst(~Inst@2601:6c4:4081:54f0:b848:a37f:7ef6:16ca) (Ping timeout: 240 seconds)
2023-03-24 16:49:00 +0100 <[exa]> zzz: the problem there is that the program starts generating the sound, but never gets to actually drawing anything because you only have 1 thread
2023-03-24 16:49:13 +0100nate4(~nate@98.45.169.16)
2023-03-24 16:50:06 +0100 <EvanR> simple concurrency in imperative languages, sounds like a contradiction xD
2023-03-24 16:50:14 +0100 <[exa]> yeah
2023-03-24 16:51:01 +0100 <zzz> ha
2023-03-24 16:51:15 +0100 <zzz> [exa]: ok it's working
2023-03-24 16:51:33 +0100 <[exa]> lol really? cool
2023-03-24 16:52:16 +0100 <[exa]> I kinda wanted to start a dramatic narrative on how managing the pthreads is super complex and in haskell at least we have kinda safe abstract operation with the IO "fibers" above that
2023-03-24 16:52:22 +0100 <[exa]> but lo, it was simpler
2023-03-24 16:53:43 +0100 <[exa]> I guess the next problem will be to sync the threads properly, but that might be doable with a few shared IORefs for communication
2023-03-24 16:54:12 +0100nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2023-03-24 16:54:15 +0100 <zzz> ok i need to read up on how to communicate with the thread now
2023-03-24 16:56:23 +0100 <zzz> drawing the waveforms was infinitely simpler than producing the sound
2023-03-24 16:56:34 +0100 <zzz> i would not expect that
2023-03-24 16:56:46 +0100 <[exa]> Gloss is good for this
2023-03-24 16:56:52 +0100 <zzz> yeah i blame gloss
2023-03-24 16:57:10 +0100 <zzz> we need Glass for audio :)
2023-03-24 16:57:39 +0100 <[exa]> btw there are some audio synth projects around that actually use gloss
2023-03-24 16:57:54 +0100 <zzz> are there?
2023-03-24 16:59:03 +0100mbuf(~Shakthi@49.207.178.186) (Quit: Leaving)
2023-03-24 16:59:07 +0100 <[exa]> https://hackage.haskell.org/package/synthesizer-core -- environs of this thing might be good
2023-03-24 16:59:59 +0100 <zzz> i was exploring that
2023-03-24 17:00:40 +0100 <zzz> i mean, that's actually what i'm using
2023-03-24 17:01:10 +0100 <zzz> i need to close the 19 SDL tabs in my browser
2023-03-24 17:01:56 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-24 17:02:45 +0100Guest|61(~Guest|61@91-167-181-228.subs.proxad.net)
2023-03-24 17:02:52 +0100 <Guest|61> hello
2023-03-24 17:03:16 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-24 17:03:21 +0100econo(uid147250@user/econo)
2023-03-24 17:04:17 +0100 <[exa]> zzz: the "usual" workflow with SDL and others that each graphics frame you also generate a tiny piece of the sound buffer, typically using some library that remembers which sounds were just playing and from where. That should also work here (with playIO) but I'd say it might be better to simply keep the 2 threads separated and use some environment to communicate. The main API problem there would be to have
2023-03-24 17:04:23 +0100 <[exa]> the synthesizer react to results of IO actions (mainly readIORef)
2023-03-24 17:04:27 +0100 <[exa]> Guest|61: well hello there
2023-03-24 17:06:03 +0100 <zzz> ok so rethinking all of this, what i should do is probably stream this, because that's what i'm using to draw the oscilloscope points https://paste.jrvieira.com/1679673953461
2023-03-24 17:06:34 +0100Guest|61(~Guest|61@91-167-181-228.subs.proxad.net) (Client Quit)
2023-03-24 17:08:14 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-03-24 17:08:17 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-03-24 17:08:35 +0100 <[exa]> zzz: yeah, more like `x` and `y` should be made "global parameters" with the IORef
2023-03-24 17:08:53 +0100malte(~malte@mal.tc) (Ping timeout: 250 seconds)
2023-03-24 17:09:05 +0100 <zzz> they depend on input
2023-03-24 17:09:06 +0100 <zzz> wait
2023-03-24 17:09:52 +0100 <azure_vermilion> does ghc still do stream fusion or has something else replaced it? cos looking at the base library I can't see it
2023-03-24 17:10:23 +0100__ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-03-24 17:10:24 +0100 <EvanR> MVar instead of IORef would let you wait for the next "message", as well as polling if you wanted (like IORef)
2023-03-24 17:10:45 +0100 <EvanR> TVar would let you poll but magically causes it to block until polling would do anything differently
2023-03-24 17:11:50 +0100 <[exa]> EvanR: it's sound, no waiting
2023-03-24 17:11:51 +0100 <davean> So wakeup semantics is important.
2023-03-24 17:12:01 +0100_ht(~Thunderbi@194.110.115.10) (Ping timeout: 240 seconds)
2023-03-24 17:12:01 +0100__ht_ht
2023-03-24 17:12:06 +0100 <zzz> [exa]: https://jrvieira.com/static/liss.mp4
2023-03-24 17:12:13 +0100 <zzz> [exa]: https://jrvieira.com/static/lisss.mp4
2023-03-24 17:12:23 +0100 <EvanR> [exa], it's sound. You spend most of your time waiting for the sound to play xD
2023-03-24 17:12:29 +0100 <EvanR> but that's another thread
2023-03-24 17:12:58 +0100 <EvanR> 44100 samples per second vs 4 GHz cpu
2023-03-24 17:13:23 +0100 <davean> well you don't have to wait, you can schedule.
2023-03-24 17:13:25 +0100 <[exa]> that's okay, unless the OS decides to nope
2023-03-24 17:13:48 +0100 <davean> But to schedule well you need priority inversion and such.
2023-03-24 17:14:02 +0100 <davean> or just be entirely scheduled
2023-03-24 17:14:06 +0100cheater(~Username@user/cheater)
2023-03-24 17:14:08 +0100 <EvanR> schedule is another way to say block. Unless you want to keep piling more and more audio buffer, which just would introduce egregious lag for an interactive thing
2023-03-24 17:14:37 +0100 <[exa]> azure_vermilion: tbh afaik they never "removed" anything like it and e.g. Text relies heavily on fusion; maybe you might check there
2023-03-24 17:15:37 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 17:16:54 +0100 <geekosaur> most fusion shows as RULES pragmas, not as functions or etc.
2023-03-24 17:20:45 +0100 <zzz> just keep adding 's' to the name of the file in my url if you want more fun
2023-03-24 17:21:01 +0100 <zzz> it goes up to 10 s
2023-03-24 17:21:56 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-24 17:24:43 +0100Midjak(~Midjak@82.66.147.146)
2023-03-24 17:25:04 +0100 <[exa]> zzz: no rickroll on the end :<
2023-03-24 17:26:03 +0100jwiegley(~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2023-03-24 17:27:24 +0100 <geekosaur> not sure kids these days even remember that or its referent 🙂
2023-03-24 17:27:30 +0100dipper_(~dipper@117.61.126.31) (Ping timeout: 268 seconds)
2023-03-24 17:27:58 +0100 <zzz> i think that era ended when rick astley himself was rickrolled by a random redditor
2023-03-24 17:28:28 +0100MacSlow(~MacSlow@p57bb2fc5.dip0.t-ipconnect.de)
2023-03-24 17:28:34 +0100 <MacSlow> Greetings everybody!
2023-03-24 17:28:54 +0100 <[exa]> o/
2023-03-24 17:32:04 +0100 <byorgey> hi MacSlow
2023-03-24 17:32:31 +0100 <byorgey> how's Haskell?
2023-03-24 17:33:55 +0100 <MacSlow> Very interesting... but still a bit odd when one comes from C/C++ land.
2023-03-24 17:35:53 +0100 <EvanR> something about how C is a purely functional language
2023-03-24 17:36:14 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2023-03-24 17:36:26 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:51a8:e4ff:15ed:6357) (Remote host closed the connection)
2023-03-24 17:36:44 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:51a8:e4ff:15ed:6357)
2023-03-24 17:37:12 +0100 <zzz> i just had a small heart attack when pulling stuff from github to my server
2023-03-24 17:37:28 +0100 <zzz> it turns out they changed their host key yesterday https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/
2023-03-24 17:37:36 +0100 <zzz> PSA
2023-03-24 17:38:34 +0100 <MacSlow> zzz: :) can imagine
2023-03-24 17:39:08 +0100 <darkling> We had to reconfigure our build servers this morning for that.
2023-03-24 17:39:11 +0100 <MacSlow> once forgot I updated keys on one of my servers... :)
2023-03-24 17:39:43 +0100 <MacSlow> that was a 'chilling' sensation until I remebered the key-update.
2023-03-24 17:41:24 +0100 <[exa]> imagine the meta-fun of pushing the privkeys to github when they are actually github keys.
2023-03-24 17:42:56 +0100cheater_(~Username@user/cheater)
2023-03-24 17:45:01 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 17:46:38 +0100cheater__(~Username@user/cheater)
2023-03-24 17:46:38 +0100cheater__cheater
2023-03-24 17:49:16 +0100cheater_(~Username@user/cheater) (Ping timeout: 252 seconds)
2023-03-24 17:49:57 +0100trev(~trev@user/trev) (Remote host closed the connection)
2023-03-24 17:50:01 +0100 <geekosaur> gleh, my known-hosts is the hashed format and I have to figure out how to delete the right hash(es)
2023-03-24 17:50:46 +0100 <EvanR> wasn't there a command to operate on the known-hosts file...
2023-03-24 17:50:55 +0100cheater_(~Username@user/cheater)
2023-03-24 17:51:39 +0100 <zzz> i think ssh-keygen
2023-03-24 17:51:39 +0100trev(~trev@user/trev)
2023-03-24 17:51:43 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2023-03-24 17:53:01 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:3aed:4a10:f448:7afe) (Ping timeout: 240 seconds)
2023-03-24 17:53:51 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 17:54:01 +0100cheater_cheater
2023-03-24 17:55:50 +0100 <geekosaur> yeh, ssh-keygen -R github.com
2023-03-24 17:56:22 +0100 <geekosaur> (or -F in place of -R to see if/where it is_
2023-03-24 17:56:26 +0100 <geekosaur> )
2023-03-24 17:57:56 +0100 <tomsmeding> geekosaur: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fin…
2023-03-24 17:58:11 +0100 <tomsmeding> remove all github.com entries and add those, I guess
2023-03-24 17:59:56 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2023-03-24 18:01:44 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 18:13:52 +0100Nezteb(sid594012@id-594012.tinside.irccloud.com) ()
2023-03-24 18:15:57 +0100 <geekosaur> and then there's the ip address, sigh (decided to test it immediately)
2023-03-24 18:17:58 +0100cheater_(~Username@user/cheater)
2023-03-24 18:18:16 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 18:18:23 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds)
2023-03-24 18:20:04 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2023-03-24 18:22:34 +0100cheater__(~Username@user/cheater)
2023-03-24 18:22:34 +0100cheater__cheater
2023-03-24 18:24:19 +0100cheater_(~Username@user/cheater) (Ping timeout: 276 seconds)
2023-03-24 18:26:11 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-03-24 18:29:35 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-24 18:30:37 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2023-03-24 18:30:53 +0100jakalx(~jakalx@base.jakalx.net)
2023-03-24 18:32:41 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2023-03-24 18:41:18 +0100phma(phma@2001:5b0:2144:4f68:9b04:52b2:83ef:e696) (Read error: Connection reset by peer)
2023-03-24 18:42:11 +0100phma(phma@2001:5b0:210d:9a38:acff:41d6:73ae:16da)
2023-03-24 18:42:27 +0100sp00kins(~sp00kins@97.sub-174-216-176.myvzw.com)
2023-03-24 18:44:50 +0100 <MacSlow> bbl
2023-03-24 18:44:55 +0100MacSlow(~MacSlow@p57bb2fc5.dip0.t-ipconnect.de) (Quit: leaving)
2023-03-24 18:53:36 +0100_xor(~xor@74.215.46.17)
2023-03-24 18:54:36 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-03-24 19:00:43 +0100cheater(~Username@user/cheater) (Ping timeout: 276 seconds)
2023-03-24 19:02:05 +0100cheater(~Username@user/cheater)
2023-03-24 19:07:02 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-24 19:07:07 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds)
2023-03-24 19:08:42 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-24 19:09:10 +0100vpan(~0@212.117.1.172) (Quit: Leaving.)
2023-03-24 19:16:40 +0100 <dminuoso> Okay I would really like a unix socket proxy that can inject getpeername as a header.
2023-03-24 19:17:19 +0100 <dminuoso> Or a hook for warp that allows the same, after staring at warp for quite a while, I just dont see any ergonomical way to provide a hook that has a reasonable chance of getting accepted.
2023-03-24 19:18:05 +0100 <dminuoso> Unless it would be something very specific like `setPeernameHeader :: T.Text -> Settings -> Settings`
2023-03-24 19:18:22 +0100 <dminuoso> Or well, `Maybe T.Text -> Settings -> Settings` rather I suppose
2023-03-24 19:18:28 +0100 <dminuoso> Any thoughts?
2023-03-24 19:18:59 +0100slack1256(~slack1256@186.11.53.81)
2023-03-24 19:20:58 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-03-24 19:22:49 +0100hugo-(znc@verdigris.lysator.liu.se)
2023-03-24 19:23:39 +0100slac48422(~slack1256@191.126.99.83)
2023-03-24 19:25:31 +0100slack1256(~slack1256@186.11.53.81) (Ping timeout: 240 seconds)
2023-03-24 19:26:14 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-03-24 19:26:40 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-24 19:29:48 +0100Square(~Square4@user/square)
2023-03-24 19:31:55 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-03-24 19:33:21 +0100azure_vermilion(~Thunderbi@164.39.138.83) (Quit: azure_vermilion)
2023-03-24 19:33:50 +0100azure_vermilion(~Thunderbi@164.39.138.83)
2023-03-24 19:34:52 +0100azure_vermilion(~Thunderbi@164.39.138.83) (Client Quit)
2023-03-24 19:35:10 +0100Square(~Square4@user/square) (Ping timeout: 276 seconds)
2023-03-24 19:35:10 +0100azure_vermilion(~Thunderbi@164.39.138.83)
2023-03-24 19:37:31 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-03-24 19:37:54 +0100cheater_(~Username@user/cheater)
2023-03-24 19:38:51 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-24 19:39:00 +0100cheater_cheater
2023-03-24 19:39:41 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de)
2023-03-24 19:40:37 +0100shriekingnoise(~shrieking@186.137.175.87)
2023-03-24 19:41:46 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-03-24 19:42:09 +0100ec(~ec@gateway/tor-sasl/ec)
2023-03-24 19:46:18 +0100slack1256(~slack1256@186.11.48.2)
2023-03-24 19:48:37 +0100jakalx(~jakalx@base.jakalx.net) ()
2023-03-24 19:48:43 +0100slac48422(~slack1256@191.126.99.83) (Ping timeout: 268 seconds)
2023-03-24 19:52:12 +0100jakalx(~jakalx@base.jakalx.net)
2023-03-24 19:54:03 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 265 seconds)
2023-03-24 19:55:01 +0100hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-03-24 19:55:42 +0100cyphase(~cyphase@user/cyphase)
2023-03-24 20:01:37 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (ERC 5.4 (IRC client for GNU Emacs 28.2))
2023-03-24 20:11:36 +0100gurkenglas(~gurkengla@dynamic-046-114-182-005.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
2023-03-24 20:13:38 +0100gurkenglas(~gurkengla@dynamic-089-015-238-223.89.15.238.pool.telefonica.de)
2023-03-24 20:22:56 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2023-03-24 20:23:10 +0100jumper149(~jumper149@base.felixspringer.xyz)
2023-03-24 20:26:08 +0100zer0bitz_(~zer0bitz@2001:2003:f443:d600:10e:27fe:cd37:4cd1)
2023-03-24 20:27:31 +0100zer0bitz(~zer0bitz@2001:2003:f443:d600:b49b:29c2:a815:97ea) (Ping timeout: 240 seconds)
2023-03-24 20:32:05 +0100chele(~chele@user/chele) (Remote host closed the connection)
2023-03-24 20:38:53 +0100hugo-(znc@verdigris.lysator.liu.se)
2023-03-24 20:40:00 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2023-03-24 20:40:35 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2023-03-24 20:41:21 +0100ub(~Thunderbi@p548c9c54.dip0.t-ipconnect.de)
2023-03-24 20:42:12 +0100slack1256(~slack1256@186.11.48.2) (Ping timeout: 255 seconds)
2023-03-24 20:43:13 +0100kenran(~user@user/kenran)
2023-03-24 20:43:21 +0100ubert(~Thunderbi@p548c9c54.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2023-03-24 20:43:22 +0100ububert
2023-03-24 20:45:21 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 255 seconds)
2023-03-24 20:45:35 +0100hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds)
2023-03-24 20:45:51 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 20:46:01 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 20:48:09 +0100zer0bitz_(~zer0bitz@2001:2003:f443:d600:10e:27fe:cd37:4cd1) ()
2023-03-24 20:49:25 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2023-03-24 20:50:45 +0100nate4(~nate@98.45.169.16)
2023-03-24 20:51:38 +0100zer0bitz(~zer0bitz@2001:2003:f443:d600:10e:27fe:cd37:4cd1)
2023-03-24 20:53:38 +0100jade1024[m]riley[m]
2023-03-24 20:55:19 +0100Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-7893-ded3-4e0c-2135.res6.spectrum.com)
2023-03-24 20:55:31 +0100nate4(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-03-24 20:55:59 +0100cheater(~Username@user/cheater)
2023-03-24 20:56:42 +0100trev(~trev@user/trev) (Remote host closed the connection)
2023-03-24 20:58:01 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 240 seconds)
2023-03-24 20:59:56 +0100hugo-(znc@verdigris.lysator.liu.se)
2023-03-24 21:02:59 +0100Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-03-24 21:03:07 +0100cyphase(~cyphase@user/cyphase)
2023-03-24 21:07:35 +0100hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds)
2023-03-24 21:13:22 +0100cheater_(~Username@user/cheater)
2023-03-24 21:13:31 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 21:13:36 +0100cheater_cheater
2023-03-24 21:13:54 +0100slack1256(~slack1256@186.11.48.2)
2023-03-24 21:14:06 +0100hugo-(znc@verdigris.lysator.liu.se)
2023-03-24 21:17:00 +0100zeenk(~zeenk@2a02:2f04:a307:2300::fba)
2023-03-24 21:18:01 +0100slack1256(~slack1256@186.11.48.2) (Ping timeout: 240 seconds)
2023-03-24 21:18:55 +0100hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 250 seconds)
2023-03-24 21:28:18 +0100hugo-(znc@verdigris.lysator.liu.se)
2023-03-24 21:33:31 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-03-24 21:39:28 +0100vglfr(~vglfr@88.155.57.120)
2023-03-24 21:40:15 +0100Guest|17(~Guest|17@CPE-18-51.dsl.OntheNet.net)
2023-03-24 21:42:39 +0100Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-7893-ded3-4e0c-2135.res6.spectrum.com) (Quit: ZZZzzz…)
2023-03-24 21:48:08 +0100riley[m]jade1024[m]
2023-03-24 21:51:31 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:2938:b910:506b:4cb7)
2023-03-24 21:58:53 +0100cheater(~Username@user/cheater)
2023-03-24 22:01:21 +0100kimiamania(~65804703@user/kimiamania) (Quit: PegeLinux)
2023-03-24 22:01:41 +0100kimiamania(~65804703@user/kimiamania)
2023-03-24 22:02:01 +0100Guest|17(~Guest|17@CPE-18-51.dsl.OntheNet.net) (Ping timeout: 240 seconds)
2023-03-24 22:03:12 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2023-03-24 22:04:22 +0100Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-7893-ded3-4e0c-2135.res6.spectrum.com)
2023-03-24 22:05:14 +0100cheater(~Username@user/cheater)
2023-03-24 22:09:41 +0100Ashkan(~Ashkan@a119011.upc-a.chello.nl)
2023-03-24 22:12:49 +0100euandreh(~Thunderbi@189.6.18.7)
2023-03-24 22:16:27 +0100malte(~malte@mal.tc)
2023-03-24 22:19:16 +0100srz(~srz@181.228.49.93) (Quit: Leaving)
2023-03-24 22:34:16 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 22:36:53 +0100dsrt^(~dsrt@c-24-30-76-89.hsd1.ga.comcast.net)
2023-03-24 22:39:56 +0100qp(~qp@user/qp)
2023-03-24 22:41:07 +0100 <Ashkan> Hello Hello
2023-03-24 22:41:07 +0100 <Ashkan> I'm having difficulty with dearimgui bindings. I realised its not on stackage so I added it to the `extra-deps` in `stack.yaml` but `import DearImGui` throws an error (module not recognised) and I see its not added to my project `.cabal` file
2023-03-24 22:41:54 +0100 <Ashkan> every other package I added as a dependency I can find in the project `.cabal` file but this one
2023-03-24 22:42:33 +0100 <geekosaur> editing stack.yaml adds nothing to the cabal file. were you perhaps using package.yaml also?
2023-03-24 22:44:09 +0100 <Ashkan> geekosaur yes. there is a `package.yaml`
2023-03-24 22:44:19 +0100 <geekosaur> then you need to add it there as well
2023-03-24 22:45:41 +0100 <Ashkan> So add it both in `extra-deps` and in `package.yaml` ?
2023-03-24 22:45:50 +0100 <geekosaur> yes. they do different things
2023-03-24 22:46:06 +0100qp(~qp@user/qp) (WeeChat 3.8)
2023-03-24 22:46:08 +0100 <geekosaur> (it's a long story)
2023-03-24 22:46:09 +0100 <Ashkan> now I get this `Cabal-simple_SvXsv1f__3.6.3.0_ghc-9.2.5: The pkg-config package 'glew' is
2023-03-24 22:46:09 +0100 <Ashkan> dear-imgui > required but it could not be found.` some progress but then what is this `glew` ?
2023-03-24 22:46:30 +0100 <Ashkan> Build system in Haskell beats Scala's in crappiness:D
2023-03-24 22:46:31 +0100 <geekosaur> it's an external C or C++ library
2023-03-24 22:46:35 +0100mayanhavoc(~mayanhavo@2607:fb90:b126:4244:a919:fd57:240f:2c7)
2023-03-24 22:46:44 +0100 <Ashkan> I see ... so install it on my OS ?
2023-03-24 22:46:58 +0100 <geekosaur> yes
2023-03-24 22:47:13 +0100 <geekosaur> apt-cache on my ubuntu system says libglew-dev
2023-03-24 22:47:21 +0100 <geekosaur> this will vary on other distributions
2023-03-24 22:47:22 +0100 <Ashkan> geekosaur like the good old C++ days (y)
2023-03-24 22:47:36 +0100 <geekosaur> exactly like, since it *is* those days
2023-03-24 22:47:47 +0100 <Ashkan> mine is a mac, most probably brew has got it
2023-03-24 22:47:58 +0100 <geekosaur> we don';t reimplement the whole world in Haskell, we use external C/C++/etc. libraries for things
2023-03-24 22:48:12 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-03-24 22:48:23 +0100 <mayanhavoc> I'm trying to follow the Haskell Programming from First Principles book and I'm already stuck on the first chapter.
2023-03-24 22:48:23 +0100 <mayanhavoc> I'm trying to understand currying.
2023-03-24 22:48:24 +0100 <mayanhavoc> Could someone help me understand how you go from
2023-03-24 22:48:24 +0100 <mayanhavoc> (λxy.xxy)(λx.xy)(λx.xz)
2023-03-24 22:48:25 +0100 <mayanhavoc> to
2023-03-24 22:48:25 +0100 <mayanhavoc> (λxyz.xz(yz))(λmn.m)(λp.p).
2023-03-24 22:48:26 +0100 <mayanhavoc> I can work through the previous examples where you substituted z for x and then worked it out by replacing z for x in the body, but I don't understand why instead of replacing z for x, there are now three arguments in the first function and two in the second one.
2023-03-24 22:48:26 +0100 <mayanhavoc> I've tried writing it out but it just gets confusing:
2023-03-24 22:48:27 +0100 <mayanhavoc> (λx(λy.xxy)(λx.xxy)(λx.xz)
2023-03-24 22:48:27 +0100 <mayanhavoc> x:= (λx.xy)
2023-03-24 22:48:28 +0100 <mayanhavoc> (λy.(λx.xy)xy)(λx.xz)
2023-03-24 22:48:28 +0100 <mayanhavoc> y:=(λx.xz)
2023-03-24 22:48:29 +0100 <mayanhavoc> How do I go from here?
2023-03-24 22:48:55 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 22:50:29 +0100 <Ashkan> mayanhavoc in `\xy.xxy` for example, the `x` and `y` are *bound* because they are named after the lambda symbol. You can replace them with anything you want as long as there is no confusion with the *free* variables. You understand so far ?
2023-03-24 22:50:51 +0100 <mayanhavoc> Ashkan Yup
2023-03-24 22:51:01 +0100 <Ashkan> So for all purposes `\xy.xxy` is exactly same as `\ab.aab`
2023-03-24 22:52:51 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:2938:b910:506b:4cb7) (Quit: WeeChat 2.8)
2023-03-24 22:53:40 +0100 <Ashkan> Okay, I'm actually looking at it and it looks more complicated than I first thought ... give me a min to figure this out. I'm in the second 3/th of the book myself so don't expect much from me:D
2023-03-24 22:54:40 +0100 <mayanhavoc> Ashkan no worries!
2023-03-24 22:55:50 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-03-24 22:56:04 +0100 <Ashkan> Alright, next comes the application: `(\x.xy)(e) --> e` . Like a function call. You give it a name in your head `f(x) =  xy` then call it with `e` so you have `f(e) = ey` so `(\x.xy)(e) -> ey` . Following so far ?
2023-03-24 22:57:27 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-03-24 22:57:30 +0100 <mayanhavoc> Wait. So the application is (\x.xz)?
2023-03-24 22:57:50 +0100Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-7893-ded3-4e0c-2135.res6.spectrum.com) (Quit: ZZZzzz…)
2023-03-24 22:57:53 +0100 <mayanhavoc> Sorry, what I mean is, is (e) == (\x.xz)?
2023-03-24 22:58:15 +0100 <Ashkan> Eee ... no, `\x.xz` is an *abstraction* `f(x)=xz`
2023-03-24 22:58:46 +0100 <Ashkan> defined a function, anonymous function (has no name). To ease the understanding I give them names in my head like `f` here
2023-03-24 22:59:43 +0100 <int-e> Ashkan: I assume the missing `y` from `(\x.xy)(e) --> ey` was a typo?
2023-03-24 23:00:08 +0100Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-7893-ded3-4e0c-2135.res6.spectrum.com)
2023-03-24 23:00:10 +0100 <Ashkan> Again, IIUC, I have to say no. So an *application* is when you call the (anonymous) function with an actual argument. Lambda calculus doesn't have named functions so you can just say `f(e)`
2023-03-24 23:00:57 +0100 <Ashkan> They way you write an application is like this : (abstraction)(expression) which means "apply the expression (argument) to the abstraction (function)"
2023-03-24 23:00:58 +0100 <mayanhavoc> Ok ok
2023-03-24 23:01:41 +0100 <Ashkan> So when you see `(\x.something)(e)` it means "replace every `x` in `something` with `e`
2023-03-24 23:01:47 +0100 <Ashkan> So far good ?
2023-03-24 23:01:57 +0100 <mayanhavoc> Yes! So far I'm with you
2023-03-24 23:02:00 +0100 <jade1024[m]> yes
2023-03-24 23:02:35 +0100 <mayanhavoc> OOOHH... it's ey because only x is bound
2023-03-24 23:03:50 +0100 <Ashkan> Alright then. You now have all it takes to reduce the whole thing yourself:)  only catch is this :
2023-03-24 23:03:51 +0100 <Ashkan> Sometimes the *bound* variables (function parameter names) appear a lot in totally unrelated expressions and if you just mechanically replace them with some value in the *application*, you then change the meaning of the expression in a wrong way
2023-03-24 23:04:27 +0100 <Ashkan> mayanhavoc Yes you got it. Because only `x` is the argument (is bound). Everything else is free and stays as is
2023-03-24 23:05:24 +0100 <Ashkan> So as I was saying, in order to prevent the application from messing up the expression, sometimes we need to first to a *rename*ing of the bound variables. That's what you see with all the new names in the final results
2023-03-24 23:07:01 +0100 <mayanhavoc> Ok, but I still don't understand how you end up with a bound variable `z`. Is that the application of (\x.xy)(e)? And is (e) in this case representing (\x.xz)?
2023-03-24 23:08:46 +0100 <Ashkan> Lets do it together  : `(λx.xy)(λx.xz)` means apply `\x.xz` to `\x.xy`
2023-03-24 23:10:06 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2023-03-24 23:10:38 +0100 <Ashkan> now you see we have to totally unrelated lambdas, both having a bound `x` (totally unrelated to each other). You can say `(\a.az)(\b.by)` and it means exactly the same
2023-03-24 23:10:58 +0100 <mayanhavoc> Ahhh... ok
2023-03-24 23:12:28 +0100 <Ashkan> only one catch, I'm not sure about the associativity and it is important. Can change the meaning. For example `abc` could be `(ab)c` or `a(bc)`. I'm assuming the later but I'm actually thinking application is left-associative
2023-03-24 23:13:09 +0100 <mayanhavoc> Ok, that I'm pretty sure is correct. Function application is left associative
2023-03-24 23:14:09 +0100 <Ashkan> Yup just checked it. Its left associative. So we actually should have started with `(λxy.xxy)(λx.xy)`
2023-03-24 23:14:32 +0100 <mauke> (page 8)
2023-03-24 23:15:08 +0100 <Ashkan> `(\ab.aab)(\c.cy)` you understand the equivalence ?
2023-03-24 23:15:31 +0100 <mayanhavoc> Correct, just changing letters so it's not confusing right?
2023-03-24 23:15:36 +0100 <Ashkan> yes
2023-03-24 23:15:37 +0100 <mauke> also, as far as I can tell, the first two terms you were asking about have nothing to do with each other
2023-03-24 23:15:59 +0100 <Ashkan> note the first `y` got changed because it was bound. The second `y` was not so it sayed.
2023-03-24 23:16:45 +0100 <mayanhavoc> Right!!! Ok, I follow you
2023-03-24 23:16:52 +0100 <Ashkan> now `\ab.aab` has two arguments. Its `\a.\b.aab` this is just currying
2023-03-24 23:16:56 +0100 <Ashkan> Good ?
2023-03-24 23:17:07 +0100 <mayanhavoc> Good!
2023-03-24 23:17:29 +0100cheater_(~Username@user/cheater)
2023-03-24 23:18:01 +0100 <Ashkan> this currying is important because when you want to do the application, you replace the outermost argument (`a` here, not the `b`)
2023-03-24 23:19:11 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-24 23:19:22 +0100cheater_cheater
2023-03-24 23:20:06 +0100 <Ashkan> so `f (a, b) = aab`, compute `f(\c.cy)` so this is in fact a higher order function application. You should replace the first argument with a value which is itself an abstraction
2023-03-24 23:20:13 +0100 <Ashkan> Can you do it ?
2023-03-24 23:21:02 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-03-24 23:21:17 +0100mastarija(~mastarija@188.252.197.99) (Quit: WeeChat 3.7.1)
2023-03-24 23:21:51 +0100gmg(~user@user/gehmehgeh)
2023-03-24 23:22:29 +0100 <mayanhavoc> Ok, here is where I start getting lost. Would this be: ` (\c.cy, b) = aab`?
2023-03-24 23:22:46 +0100 <Ashkan> Nope:)
2023-03-24 23:23:04 +0100 <Ashkan> in the `aab`, replace the `a`s with the `\c.cy`
2023-03-24 23:23:32 +0100 <Ashkan> `(\c.cy)(\c.cy)b`
2023-03-24 23:23:39 +0100 <mayanhavoc> Ok, so more like \b = (\c.cy)(\c.cy)b?
2023-03-24 23:23:45 +0100 <Ashkan> perfect
2023-03-24 23:23:50 +0100 <Ashkan> do you understand why ?
2023-03-24 23:23:50 +0100 <mayanhavoc> Ok ok
2023-03-24 23:24:42 +0100 <mayanhavoc> Yes, because we are replacing c.cy for a, we remove the a. Sort of like 'b' in terms of 'a'?
2023-03-24 23:25:47 +0100 <Ashkan> We are *applying* `\c.cy` to `\ab.aab` which means to call it with first argument = `\c.cy`
2023-03-24 23:26:27 +0100 <mayanhavoc> Ok, I'm getting it, I promise
2023-03-24 23:26:41 +0100 <Ashkan> Give the `\c.cy` its own name, like `Z`. Now apply this `Z` to `\ab.aab`. Its `\b.ZZb` now expand `Z`
2023-03-24 23:27:05 +0100 <Ashkan> okay
2023-03-24 23:27:16 +0100 <Ashkan> now we have `(\c.cy)(\c.cy)b`
2023-03-24 23:27:24 +0100 <mayanhavoc> Correct
2023-03-24 23:28:04 +0100 <Ashkan> again we are in the same situation as before , with the associatively :
2023-03-24 23:28:15 +0100thegeekinside(~thegeekin@189.141.115.134) (Ping timeout: 255 seconds)
2023-03-24 23:28:31 +0100 <Ashkan> so first do the `(\c.cy)(\c.cy)`
2023-03-24 23:29:45 +0100 <Ashkan> rename to avoid confusion : `(\a.ay)(\b.by)` --> `(\b.by)y` --> `yy`
2023-03-24 23:30:03 +0100euandreh(~Thunderbi@189.6.18.7) (Quit: euandreh)
2023-03-24 23:32:39 +0100 <EvanR> I'm a number not a name
2023-03-24 23:32:55 +0100 <mayanhavoc> Just a sec, I'm trying to figure this out
2023-03-24 23:33:13 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-03-24 23:33:15 +0100 <int-e> EvanR: you'll love de Bruijn indices then
2023-03-24 23:33:32 +0100 <EvanR> (1 y)(1 y) => (1 y) y
2023-03-24 23:33:45 +0100 <int-e> EvanR: you still need the lambdas though
2023-03-24 23:33:55 +0100 <EvanR> nah it's obvious xD
2023-03-24 23:34:01 +0100 <int-e> \\1 is different from \1
2023-03-24 23:34:12 +0100 <EvanR> fine
2023-03-24 23:34:20 +0100lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2023-03-24 23:35:23 +0100 <mayanhavoc> Ok, so IIUC... (\a.ay) and (\b.by) are identity functions, so applying (\b.by) to (\a.ay) gives you \b.by. Right?
2023-03-24 23:35:57 +0100 <EvanR> (\a . a y) x = x y which is not x necessarily
2023-03-24 23:36:03 +0100 <Ashkan> Err identity function is `\x.x`
2023-03-24 23:36:23 +0100 <Ashkan> '\x.xy` is most definitely not identity
2023-03-24 23:36:57 +0100 <EvanR> id x = x
2023-03-24 23:37:10 +0100 <EvanR> what x = what
2023-03-24 23:37:22 +0100 <int-e> It makes no real difference here, but "applying (\b.by) to (\a.ay)" means (\b.by)(\a.ay)
2023-03-24 23:37:35 +0100 <Ashkan> For example apply `1` to `\a.ay` , its `1y` which is *not* the same as `1`
2023-03-24 23:38:03 +0100 <int-e> (You apply a function to its argument.)
2023-03-24 23:38:09 +0100 <EvanR> apply x to y = apply y to x? xD
2023-03-24 23:38:36 +0100 <EvanR> that'd be quite an equivocation
2023-03-24 23:38:39 +0100 <int-e> EvanR: Maybe if it applies to oranges. (Does that pun work?)
2023-03-24 23:39:02 +0100 <Ashkan> Yes my wording was confusing. Apply `\a.ay` to `1`
2023-03-24 23:39:59 +0100 <Ashkan> Anywasy, `(\a.ay)(\b.by)` means "replace  `a` with `\b.by`"
2023-03-24 23:40:11 +0100 <int-e> (in `ay`)
2023-03-24 23:40:28 +0100 <Ashkan> in `ay` , yes:)
2023-03-24 23:40:59 +0100 <mayanhavoc> Ok... so what confuses me here is why is (\a.ay)(\b.by) not (\b(\b.by))y?
2023-03-24 23:41:12 +0100michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2023-03-24 23:41:27 +0100 <int-e> (\x.M[x])N -> M[N] -- usually with the restriction that no free variables of N are bound in M, though there are weaker versions.
2023-03-24 23:41:38 +0100 <int-e> mayanhavoc: the lambda is "consumed" by the beta step.
2023-03-24 23:42:04 +0100 <int-e> Actually
2023-03-24 23:42:18 +0100 <int-e> mayanhavoc: I should ask where the first \b in the result comes from.
2023-03-24 23:42:26 +0100 <Ashkan> first `\b.\b. anything` would be wrong since two arguments are named the same. Can'y have different bound variables with the same nme
2023-03-24 23:42:50 +0100 <mayanhavoc> int-e How do you mean? I thought by replacing (\b.by) for the 'a' in (\a.ay), you get rid of the `\a`? No?
2023-03-24 23:43:02 +0100 <Ashkan> You did
2023-03-24 23:43:17 +0100 <mayanhavoc> Ashkan So, how do you replace \b.by in \a.ay?
2023-03-24 23:43:31 +0100 <int-e> mayanhavoc: Yes, the first \a disappears; the replacement only happens in the body of the abstraction, `ay`.
2023-03-24 23:43:41 +0100 <Ashkan> you got rid of *both* the `\a.` part (the abstraction) and the `a`s in the body
2023-03-24 23:43:58 +0100 <mayanhavoc> OHHHHHH
2023-03-24 23:44:22 +0100 <int-e> So you replace `a` in `ay` by `(\b.by)`, resulting in (\b.by)y. Which allows *another* beta step.
2023-03-24 23:44:57 +0100 <Ashkan> when you call `f(x) = x + 1` like `f(2)` you are removing *both* the `f(x) =` and `x` in `x + 1` by replacing it with `2`
2023-03-24 23:45:28 +0100 <mayanhavoc> Yes, I understand. Sorry, I have a hard time with abstraction
2023-03-24 23:45:38 +0100 <Ashkan> so `f(2) = 2 + 1` , no more arguments
2023-03-24 23:45:56 +0100 <int-e> Ashkan: Hmm, I don't think I've ever seen anyone forbid `\a.\a.ab` (the a in `ab` would simply refer to the inner lambda)
2023-03-24 23:46:46 +0100thegeekinside(~thegeekin@189.141.115.134)
2023-03-24 23:46:57 +0100 <int-e> Though, of course, I wouldn't go out of my way to write terms like this when explaining how the lambda-calculus works.
2023-03-24 23:47:11 +0100 <Ashkan> int-e in your example its clear they are different variables
2023-03-24 23:47:30 +0100 <Ashkan> `\a.\a.aa`
2023-03-24 23:47:38 +0100 <EvanR> first a is shadowed in \a.\a.aa
2023-03-24 23:48:05 +0100 <int-e> \a.\a.aa means \a.(\a.aa) by convention (lambdas extend as far to the right as possible)
2023-03-24 23:48:39 +0100 <int-e> so both those bound `a`s are tied to the inner lambda. \a.(\a.a)a would be different.
2023-03-24 23:48:40 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-03-24 23:48:42 +0100Bocaneri(~sauvin@user/Sauvin)
2023-03-24 23:49:03 +0100 <Ashkan> EvanR that's one way to disambiguate it but to my knowledge lambda calculus itself doesn't have shadowing. That's something programming languages have. I might be wrong though ! don't wanna get into academics on this
2023-03-24 23:49:05 +0100BocaneriGuest6875
2023-03-24 23:49:33 +0100 <EvanR> it's not like were going to discover a cosmic truth here, it's all made up
2023-03-24 23:49:35 +0100 <int-e> anyway, this is a tangent, it has nothing to do with reducing (\a.ay)(\b.by).
2023-03-24 23:49:48 +0100 <Ashkan> yeah
2023-03-24 23:50:27 +0100 <Ashkan> mayanhavoc left the class room:D
2023-03-24 23:51:19 +0100 <mayanhavoc> No, no, I'm still here
2023-03-24 23:51:22 +0100Sauvin(~sauvin@user/Sauvin) (Ping timeout: 265 seconds)
2023-03-24 23:51:46 +0100Sauvin(~sauvin@user/Sauvin)
2023-03-24 23:52:28 +0100 <Ashkan> I have to go deal with own problem, leave you to the very capable hands of people here. Just don't let them trick you into converting to De Bruijn indices:D
2023-03-24 23:52:52 +0100 <int-e> b-but... numbers!
2023-03-24 23:53:09 +0100 <mayanhavoc> Ashkan thank you very much, I really appreciate your help
2023-03-24 23:53:18 +0100 <Ashkan> I would say first make sure you have a firm grasp of the *abstraction*
2023-03-24 23:53:20 +0100 <int-e> (No, you first have to experience the pain of alpha-renamings before de Bruijn indices have any hope of making sense.)
2023-03-24 23:53:31 +0100Guest6875(~sauvin@user/Sauvin) (Ping timeout: 240 seconds)
2023-03-24 23:54:20 +0100 <int-e> And really, de Bruijn indices are for computers.
2023-03-24 23:54:24 +0100 <Ashkan> mayanhavoc I have a lot of debt to give back. You are most welcome. Welcome to the tribe by the way. You literally picked the longest, most boring book on Haskell:D
2023-03-24 23:54:25 +0100 <EvanR> to reduce (\a.whatever) e, the answer is whatever with all free a replaced with e (perhaps after renaming inappropriately interfering variables)
2023-03-24 23:54:29 +0100 <EvanR> simple
2023-03-24 23:55:14 +0100cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-03-24 23:55:18 +0100 <mayanhavoc> Ashkan Hahahaha Thank you for the welcome! I am honestly happily suffering through it
2023-03-24 23:55:21 +0100 <EvanR> one day they will make a computer chip that can do this operation more efficiently
2023-03-24 23:55:50 +0100 <int-e> hahaha
2023-03-24 23:56:03 +0100 <mayanhavoc> EvanR wait... isn't a bound in this example?
2023-03-24 23:56:26 +0100 <int-e> mayanhavoc: what's bound in \a.M may be free in M.
2023-03-24 23:56:30 +0100 <EvanR> it is bound in (\a.whatever) but in whatever by itself those a are not bound anymore
2023-03-24 23:56:46 +0100lagash(lagash@lagash.shelltalk.net)
2023-03-24 23:56:56 +0100 <int-e> `a` is bound in `\a.a` but is free in `a`.
2023-03-24 23:57:00 +0100 <Ashkan> mayanhavoc Also keep in mind some of the examples are intentionally contrived. More so due that twisted sense of "this is important !" which is characteristic of academic people. Its not like you gotta deal with such absurdities in your real world Haskell
2023-03-24 23:57:54 +0100 <int-e> mayanhavoc: consider this: (\a.a(\a.a))y -> y(\a.a) ... the innermost `a` is still bound in a(\a.a), so it's not replaced.
2023-03-24 23:57:57 +0100 <EvanR> substituting arguments where the bound variables are is a great way to understand haskell code
2023-03-24 23:58:10 +0100 <EvanR> thanks to purity
2023-03-24 23:58:19 +0100 <mayanhavoc> Hahahaha I really, really hope so! I'm really trying to practice and understand what I'm doing in the hopes that my mind will get used to all this abstraction
2023-03-24 23:58:55 +0100 <EvanR> substitution is pretty simple and intuitive on the face of it. And then it ends up being complicated if you define it precisely
2023-03-24 23:59:21 +0100 <mayanhavoc> int-e oh man... i'm going to need a second for that one
2023-03-24 23:59:59 +0100 <int-e> mayanhavoc: You'll probably need days to weeks to really become used to this. I know I did.