2022/07/01

2022-07-01 00:00:03 +0200slack1256(~slack1256@191.125.99.87) (Ping timeout: 246 seconds)
2022-07-01 00:01:21 +0200pseigo(~pseigo@2001:56a:78d1:5700:3617:fe46:866c:704c)
2022-07-01 00:17:03 +0200 <Haskelytic> Meta-talk: I'm getting a nagging suspicion that pure functional programming like in Haskell isn't popular because you can't use simple analogies to the real world
2022-07-01 00:17:13 +0200 <Haskelytic> Imagine explaining applicatives to an outsider :)
2022-07-01 00:17:35 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:4903:6345:e64d:64f4)
2022-07-01 00:17:45 +0200 <Haskelytic> compare that to OOP where the mammalian kingdom barking and inheriting different barks is the name of the game
2022-07-01 00:17:49 +0200 <geekosaur> except they're gradually adding them
2022-07-01 00:18:10 +0200 <Haskelytic> geekosaur: how so?
2022-07-01 00:18:20 +0200 <geekosaur> they just call them different things, and most of the laws are on the honor system instead of enforced within the type system
2022-07-01 00:18:52 +0200 <Haskelytic> Hmm...are you referring to features like async, futures?
2022-07-01 00:19:01 +0200 <geekosaur> Applicative isn't there yet, I think, but isn't Functor called mappable in C++?
2022-07-01 00:19:15 +0200pierrot(~pi@user/pierrot) (Read error: Connection reset by peer)
2022-07-01 00:19:17 +0200 <Haskelytic> Ah yes, functors are probably the easier one to introduce
2022-07-01 00:19:32 +0200 <geekosaur> one step at a time
2022-07-01 00:19:33 +0200 <Haskelytic> Although C++ folks kind of used Functor to mean something else entirely haha
2022-07-01 00:19:45 +0200 <geekosaur> that's okay, so does SML
2022-07-01 00:20:23 +0200 <dolio> Simple analogies to the real world don't really hold up as appropriate ways to design programs.
2022-07-01 00:20:56 +0200pierrot(~pi@user/pierrot)
2022-07-01 00:22:11 +0200 <EvanR> I distinctly remember functions being explained as "machines in a pipeline, with an input side and an output side" in school
2022-07-01 00:22:55 +0200 <EvanR> "function machine"
2022-07-01 00:22:57 +0200 <monochrom> I thought OOP was the one doing unrealistic simple analogies to the real world.
2022-07-01 00:23:09 +0200 <EvanR> yeah that's what I'm saying xD
2022-07-01 00:24:36 +0200 <EvanR> it seems more accurate than horse and unicorn are both quadrupeds, hence implementation (single) inheritance
2022-07-01 00:24:48 +0200 <monochrom> In practice, people got OOP to work by coding up complicated analogies.
2022-07-01 00:26:17 +0200 <monochrom> That thing about single inheritance too. The real world does not obey single inheritance.
2022-07-01 00:26:51 +0200 <dolio> I should say, it's a reasonable hypothesis about why it's popular. But when you program for real, things end up not being simple.
2022-07-01 00:27:00 +0200 <dolio> So you are initially sold on a lie.
2022-07-01 00:27:18 +0200 <monochrom> On top of that, taxonomy in biology has hardly anything to do with business applications.
2022-07-01 00:29:59 +0200 <monochrom> On top of that ^ 2, OOP people laugh at FP for using toy examples, when they themselves also have to use toy examples such as squares and rectangles to explain the Liskov substitutability principle.
2022-07-01 00:31:08 +0200acidjnk_new(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
2022-07-01 00:31:19 +0200 <dolio> That's good, though, because Oleg then explains why squares and rectangles violate the Liskov substitution principle.
2022-07-01 00:31:19 +0200zaquest(~notzaques@5.130.79.72) (Ping timeout: 268 seconds)
2022-07-01 00:31:25 +0200 <monochrom> ( ^3 : Then they go on to demonstrate that they don't even understand that toy example.)
2022-07-01 00:31:37 +0200 <Haskelytic> My favorite is shapes lol
2022-07-01 00:31:47 +0200 <Haskelytic> Look ma my shapes are in a hierarchy
2022-07-01 00:33:09 +0200 <monochrom> @quote monochrom in.nature
2022-07-01 00:33:09 +0200 <lambdabot> monochrom says: the fibonacci sequence is everywhere in nature, for example haskell tutorials and python tutorials
2022-07-01 00:33:20 +0200 <Haskelytic> XD
2022-07-01 00:35:59 +0200 <EvanR> a circle is a kind of ellipse, where major and minor axis are equal. An ellipse is a kind of circle, one that you apply a stretching transformation to
2022-07-01 00:36:11 +0200michalz(~michalz@185.246.204.97) (Remote host closed the connection)
2022-07-01 00:36:22 +0200cyanide3dinner(~cyanide4d@106.201.249.151) (Remote host closed the connection)
2022-07-01 00:37:02 +0200 <EvanR> wait does that even give an ellipse
2022-07-01 00:37:14 +0200slack1092(~slack1256@191.125.99.70) (Remote host closed the connection)
2022-07-01 00:37:15 +0200 <dolio> Yes.
2022-07-01 00:37:37 +0200 <monochrom> Let me confuse you further and ask "what is an ellipse?" >:)
2022-07-01 00:37:49 +0200 <Haskelytic> EvanR: smells like recursion :)
2022-07-01 00:37:58 +0200 <Haskelytic> the circle of life
2022-07-01 00:38:07 +0200 <Haskelytic> or is it cycle i forget
2022-07-01 00:38:16 +0200 <monochrom> Google Ellipse
2022-07-01 00:38:20 +0200 <hpc> total ellipse of the cardioid?
2022-07-01 00:41:10 +0200 <dolio> Maybe Oleg doesn't explain about squares and rectangles. I thought he did, but I can only find bags and sets.
2022-07-01 00:42:45 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-07-01 00:45:15 +0200zaquest(~notzaques@5.130.79.72)
2022-07-01 00:52:39 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-07-01 00:55:41 +0200machinedgod(~machinedg@66.244.246.252)
2022-07-01 01:02:10 +0200yaroot_(~yaroot@130.70.30.125.dy.iij4u.or.jp)
2022-07-01 01:05:33 +0200yaroot(~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (Ping timeout: 244 seconds)
2022-07-01 01:05:34 +0200yaroot_yaroot
2022-07-01 01:09:52 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Remote host closed the connection)
2022-07-01 01:12:19 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 01:16:36 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 01:16:39 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 01:18:15 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Remote host closed the connection)
2022-07-01 01:18:40 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 01:20:03 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-07-01 01:20:37 +0200Tuplanolla(~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.)
2022-07-01 01:21:20 +0200pseigo(~pseigo@2001:56a:78d1:5700:3617:fe46:866c:704c) (Ping timeout: 272 seconds)
2022-07-01 01:24:14 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 255 seconds)
2022-07-01 01:27:45 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-07-01 01:28:03 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2022-07-01 01:29:12 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-07-01 01:29:14 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-07-01 01:29:54 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-07-01 01:30:23 +0200AlexZenon(~alzenon@178.34.160.206) (Ping timeout: 256 seconds)
2022-07-01 01:30:23 +0200Alex_test(~al_test@178.34.160.206) (Ping timeout: 256 seconds)
2022-07-01 01:33:41 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds)
2022-07-01 01:35:07 +0200AlexZenon(~alzenon@178.34.160.206)
2022-07-01 01:35:29 +0200Alex_test(~al_test@178.34.160.206)
2022-07-01 01:35:43 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 01:35:47 +0200cyanide3dinner(~cyanide4d@106.201.249.151)
2022-07-01 01:36:09 +0200yaroot_(~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953)
2022-07-01 01:36:42 +0200yaroot(~yaroot@130.70.30.125.dy.iij4u.or.jp) (Ping timeout: 264 seconds)
2022-07-01 01:36:42 +0200yaroot_yaroot
2022-07-01 01:41:18 +0200MsBrownNote(~MsBrownNo@S01069050ca4e3573.cg.shawcable.net)
2022-07-01 01:42:14 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds)
2022-07-01 01:43:14 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 01:51:00 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-07-01 01:51:18 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
2022-07-01 01:53:20 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2022-07-01 01:53:33 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 01:55:55 +0200vgtw(~vgtw@user/vgtw) (Quit: ZNC - https://znc.in)
2022-07-01 01:58:06 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net)
2022-07-01 01:58:58 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-07-01 02:00:44 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:4903:6345:e64d:64f4) (Ping timeout: 268 seconds)
2022-07-01 02:05:37 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-07-01 02:07:11 +0200zaquest(~notzaques@5.130.79.72)
2022-07-01 02:16:26 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) (Ping timeout: 272 seconds)
2022-07-01 02:22:53 +0200cyanide3dinner(~cyanide4d@106.201.249.151) (Remote host closed the connection)
2022-07-01 02:23:33 +0200prolic(~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5)
2022-07-01 02:33:34 +0200pleo(~pleo@user/pleo) (Quit: quit)
2022-07-01 02:36:58 +0200gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
2022-07-01 02:37:45 +0200adrazalan(~adrazalan@42.191.189.65) (Ping timeout: 260 seconds)
2022-07-01 02:38:05 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-07-01 02:38:05 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-07-01 02:38:05 +0200wroathe(~wroathe@user/wroathe)
2022-07-01 02:40:44 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds)
2022-07-01 02:42:51 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 02:48:00 +0200prolic(~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5) (Ping timeout: 252 seconds)
2022-07-01 02:49:16 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 02:52:26 +0200prolic(~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5)
2022-07-01 03:02:16 +0200nate4(~nate@98.45.169.16)
2022-07-01 03:03:37 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-07-01 03:04:57 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 03:05:10 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2022-07-01 03:06:57 +0200nate4(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-07-01 03:09:06 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 264 seconds)
2022-07-01 03:11:14 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-07-01 03:16:54 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 03:17:20 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-07-01 03:18:09 +0200gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2022-07-01 03:23:18 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2022-07-01 03:24:30 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-07-01 03:25:47 +0200 <Axman6> o/
2022-07-01 03:26:17 +0200jakalx(~jakalx@base.jakalx.net)
2022-07-01 03:26:48 +0200cyanide3dinner(~cyanide4d@106.201.249.151)
2022-07-01 03:29:58 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
2022-07-01 03:32:11 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 03:33:23 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
2022-07-01 03:33:42 +0200nate4(~nate@98.45.169.16)
2022-07-01 03:34:29 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 03:42:48 +0200notzmv(~zmv@user/notzmv)
2022-07-01 03:45:30 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 03:46:09 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-07-01 03:49:05 +0200atwm(~atwm@81.28.193.19) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-07-01 03:50:58 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-07-01 03:53:04 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5)
2022-07-01 03:53:32 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-07-01 03:55:37 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-07-01 03:55:41 +0200frost(~frost@user/frost)
2022-07-01 03:58:39 +0200vgtw(~vgtw@user/vgtw)
2022-07-01 03:59:02 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 255 seconds)
2022-07-01 04:05:44 +0200prolic(~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5) (Ping timeout: 252 seconds)
2022-07-01 04:10:18 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 264 seconds)
2022-07-01 04:12:39 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 04:16:50 +0200ulvarrefr(~user@188.124.56.153) (Read error: Connection reset by peer)
2022-07-01 04:16:57 +0200ulvarrefr(~user@188.124.56.153)
2022-07-01 04:18:00 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 246 seconds)
2022-07-01 04:19:05 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net)
2022-07-01 04:23:52 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 248 seconds)
2022-07-01 04:29:18 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) (Ping timeout: 240 seconds)
2022-07-01 04:30:37 +0200 <jackdk> sup Axman6
2022-07-01 04:33:23 +0200 <Axman6> yo. Debugging bugs I made, watching a conference from NZ
2022-07-01 04:34:17 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-07-01 04:35:36 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5)
2022-07-01 04:35:50 +0200machinedgod(~machinedg@66.244.246.252)
2022-07-01 04:36:06 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-07-01 04:37:54 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 264 seconds)
2022-07-01 04:39:45 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 04:40:18 +0200td_(~td@muedsl-82-207-238-240.citykom.de) (Ping timeout: 240 seconds)
2022-07-01 04:42:27 +0200td_(~td@muedsl-82-207-238-041.citykom.de)
2022-07-01 04:42:56 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2022-07-01 04:44:41 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-07-01 04:44:46 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-07-01 04:45:23 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 268 seconds)
2022-07-01 04:46:07 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 04:46:54 +0200machinedgod(~machinedg@66.244.246.252)
2022-07-01 04:51:59 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 04:53:35 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-07-01 04:53:35 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-07-01 04:53:35 +0200finn_elijaFinnElija
2022-07-01 04:55:03 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-07-01 05:00:44 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 05:01:35 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds)
2022-07-01 05:03:35 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 05:04:45 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-07-01 05:13:37 +0200frost(~frost@user/frost)
2022-07-01 05:13:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-01 05:14:24 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-07-01 05:16:41 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 05:18:53 +0200prolic(~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5)
2022-07-01 05:25:37 +0200 <jackdk> amazonka-s3-streaming?
2022-07-01 05:29:00 +0200prolic(~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5) (Quit: Client closed)
2022-07-01 05:31:00 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 05:35:57 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 268 seconds)
2022-07-01 05:36:17 +0200prolic(~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5)
2022-07-01 05:36:37 +0200haskell_apprenti(~haskell_a@d-216-189-180-13.fl.cpe.atlanticbb.net)
2022-07-01 05:38:36 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-07-01 05:39:17 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 05:39:38 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds)
2022-07-01 05:45:14 +0200kimjetwav(~user@2607:fea8:2340:da00:efc1:2d50:b0df:6b8b) (Remote host closed the connection)
2022-07-01 05:45:52 +0200kimjetwav(~user@2607:fea8:2340:da00:318d:be45:1c55:27b)
2022-07-01 05:48:54 +0200 <dsal> amazon-s3-chunking
2022-07-01 05:49:31 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 268 seconds)
2022-07-01 05:50:45 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-07-01 05:53:56 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-07-01 06:00:42 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.5)
2022-07-01 06:01:04 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 06:08:11 +0200haskell_apprenti(~haskell_a@d-216-189-180-13.fl.cpe.atlanticbb.net) (Quit: Client closed)
2022-07-01 06:11:05 +0200coot(~coot@213.134.190.95)
2022-07-01 06:12:58 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving)
2022-07-01 06:13:08 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 255 seconds)
2022-07-01 06:13:49 +0200jargon(~jargon@184.101.186.108) (Remote host closed the connection)
2022-07-01 06:13:51 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-07-01 06:14:14 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2022-07-01 06:15:58 +0200mbuf(~Shakthi@122.164.15.165)
2022-07-01 06:24:18 +0200aeka(~aeka@2606:6080:1001:e:2e9c:bad5:dbdd:84ea) (Quit: ZNC 1.8.2 - https://znc.in)
2022-07-01 06:25:17 +0200kimjetwav(~user@2607:fea8:2340:da00:318d:be45:1c55:27b) (Ping timeout: 268 seconds)
2022-07-01 06:31:34 +0200aeka(~aeka@user/hiruji)
2022-07-01 06:31:39 +0200nek0(~nek0@2a01:4f8:222:2b41::12)
2022-07-01 06:35:09 +0200Colere(~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds)
2022-07-01 06:40:25 +0200aeka(~aeka@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in)
2022-07-01 06:48:16 +0200aeka(~aeka@2606:6080:1001:e:2e9c:bad5:dbdd:84ea)
2022-07-01 06:50:31 +0200 <Axman6> jackdk: nah, #work
2022-07-01 06:51:01 +0200 <jackdk> That's a relief. I was pretty sure we'd got amazonka-s3-chonker right
2022-07-01 06:51:27 +0200michalz(~michalz@185.246.204.101)
2022-07-01 06:55:42 +0200Guest64(~Guest64@59.99.130.67)
2022-07-01 06:55:56 +0200 <DigitalKiwi> ellipse? you mean rectangle circle
2022-07-01 06:58:50 +0200 <DigitalKiwi> monochrom: lol like when ancestry.com found out that family trees are not as tree like as they'd hope heheh
2022-07-01 07:04:30 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 07:06:06 +0200Guest64(~Guest64@59.99.130.67) (Quit: Client closed)
2022-07-01 07:10:56 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-07-01 07:10:56 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Ping timeout: 272 seconds)
2022-07-01 07:10:58 +0200renzhi(~xp@2607:fa49:6500:b100::b399) (Ping timeout: 240 seconds)
2022-07-01 07:12:12 +0200bastelfreak(~bastelfre@basteles-bastelknecht.bastelfreak.org) (Ping timeout: 272 seconds)
2022-07-01 07:12:45 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-07-01 07:14:59 +0200bastelfreak(~bastelfre@basteles-bastelknecht.bastelfreak.org)
2022-07-01 07:16:53 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 07:19:55 +0200sagax(~sagax_nb@user/sagax)
2022-07-01 07:24:08 +0200renzhi(~xp@2607:fa49:6500:b100::cf)
2022-07-01 07:29:00 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Quit: left)
2022-07-01 07:29:11 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 07:33:15 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-07-01 07:34:42 +0200mvk(~mvk@2607:fea8:5ce3:8500::909a)
2022-07-01 07:39:54 +0200mvk(~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 268 seconds)
2022-07-01 07:51:28 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2022-07-01 08:13:19 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:b0bd:24f8:b992:dc9b)
2022-07-01 08:15:41 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-01 08:16:24 +0200noteness(~noteness@user/noteness)
2022-07-01 08:23:20 +0200YoungFrog(~youngfrog@2a02:a03f:c21b:f900:4573:7c9a:94a6:9db6) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2022-07-01 08:24:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-01 08:25:00 +0200YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be)
2022-07-01 08:26:10 +0200dcoutts(~duncan@host86-150-18-54.range86-150.btcentralplus.com)
2022-07-01 08:27:30 +0200 <dsal> elipse reminds me of when I used to write java bugs.
2022-07-01 08:28:02 +0200gmg(~user@user/gehmehgeh)
2022-07-01 08:28:20 +0200dcoutts_(~duncan@host86-150-18-54.range86-150.btcentralplus.com) (Ping timeout: 260 seconds)
2022-07-01 08:31:11 +0200nate4(~nate@98.45.169.16)
2022-07-01 08:32:56 +0200bbear(~znc@21212.s.t4vps.eu) (Remote host closed the connection)
2022-07-01 08:33:18 +0200tcard(~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
2022-07-01 08:34:41 +0200dcoutts_(~duncan@host86-150-18-54.range86-150.btcentralplus.com)
2022-07-01 08:36:38 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-07-01 08:36:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-01 08:37:40 +0200dcoutts(~duncan@host86-150-18-54.range86-150.btcentralplus.com) (Ping timeout: 260 seconds)
2022-07-01 08:38:21 +0200tcard(~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
2022-07-01 08:42:11 +0200dcoutts(~duncan@host86-150-18-54.range86-150.btcentralplus.com)
2022-07-01 08:44:08 +0200dcoutts_(~duncan@host86-150-18-54.range86-150.btcentralplus.com) (Ping timeout: 248 seconds)
2022-07-01 08:48:13 +0200cyanide3dinner(~cyanide4d@106.201.249.151) (Remote host closed the connection)
2022-07-01 08:51:18 +0200dcoutts(~duncan@host86-150-18-54.range86-150.btcentralplus.com) (Remote host closed the connection)
2022-07-01 08:52:40 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-07-01 08:53:32 +0200dcoutts(~duncan@host86-150-18-54.range86-150.btcentralplus.com)
2022-07-01 08:55:47 +0200benin0(~benin@183.82.26.81)
2022-07-01 08:55:52 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-01 08:56:18 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:8b3a:f76b:742e:dc75)
2022-07-01 08:56:35 +0200gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
2022-07-01 08:58:33 +0200alp(~alp@user/alp)
2022-07-01 09:01:55 +0200quarkyalice__(~alice@172.79.71.35)
2022-07-01 09:04:29 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-07-01 09:04:29 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-07-01 09:04:29 +0200wroathe(~wroathe@user/wroathe)
2022-07-01 09:04:35 +0200quarkyalice_(~alice@user/quarkyalice/x-8092822) (Ping timeout: 255 seconds)
2022-07-01 09:08:24 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-07-01 09:09:43 +0200zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
2022-07-01 09:12:09 +0200acidjnk_new(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de)
2022-07-01 09:13:09 +0200MajorBiscuit(~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl)
2022-07-01 09:13:42 +0200marquis_andras(~marquis_a@202-161-119-113.tpgi.com.au)
2022-07-01 09:16:11 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 09:21:37 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-07-01 09:22:28 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Quit: left)
2022-07-01 09:22:39 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 09:23:32 +0200MsBrownNote(~MsBrownNo@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed)
2022-07-01 09:26:18 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-07-01 09:29:58 +0200kuribas(~user@ptr-17d51eo5v7ov5sspekf.18120a2.ip6.access.telenet.be)
2022-07-01 09:31:34 +0200sympt6(~sympt@user/sympt)
2022-07-01 09:32:30 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 264 seconds)
2022-07-01 09:33:05 +0200sympt(~sympt@user/sympt) (Ping timeout: 260 seconds)
2022-07-01 09:33:05 +0200sympt6sympt
2022-07-01 09:38:30 +0200jespada(~jespada@cable-94-189-136-36.dynamic.sbb.rs)
2022-07-01 09:39:42 +0200jespada_(~jespada@cable-94-189-136-36.dynamic.sbb.rs)
2022-07-01 09:43:10 +0200Tuplanolla(~Tuplanoll@91-159-69-97.elisa-laajakaista.fi)
2022-07-01 09:43:14 +0200jespada(~jespada@cable-94-189-136-36.dynamic.sbb.rs) (Ping timeout: 268 seconds)
2022-07-01 09:44:28 +0200jespada_(~jespada@cable-94-189-136-36.dynamic.sbb.rs) (Ping timeout: 268 seconds)
2022-07-01 09:47:07 +0200jespada(~jespada@89.38.224.86)
2022-07-01 09:47:28 +0200prolic(~prolic@2803:2a00:2c0f:b96d:ec0c:c7f6:efb5:4ff5) (Ping timeout: 252 seconds)
2022-07-01 09:47:45 +0200machinedgod(~machinedg@66.244.246.252)
2022-07-01 09:52:46 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-07-01 09:52:47 +0200rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-07-01 09:53:45 +0200rembo10(~rembo10@main.remulis.com)
2022-07-01 09:58:25 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-01 09:58:37 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-07-01 09:59:55 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-07-01 10:02:11 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 10:03:03 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-07-01 10:04:45 +0200joo-_(~joo-_@172-105-65-159.ip.linodeusercontent.com)
2022-07-01 10:04:54 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 264 seconds)
2022-07-01 10:06:42 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
2022-07-01 10:08:42 +0200ccntrq(~Thunderbi@2a00:6020:1383:c500:5d6f:a5b5:bc6b:3196)
2022-07-01 10:11:37 +0200cfricke(~cfricke@user/cfricke)
2022-07-01 10:12:05 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-01 10:17:20 +0200chomwitt(~chomwitt@2a02:587:dc1c:800:b0bd:24f8:b992:dc9b) (Quit: Leaving)
2022-07-01 10:20:31 +0200fserucas_(~fserucas@18.65.114.89.rev.vodafone.pt)
2022-07-01 10:22:05 +0200fserucas(~fserucas@1.64.114.89.rev.vodafone.pt) (Ping timeout: 260 seconds)
2022-07-01 10:23:21 +0200dcoutts_(~duncan@host86-150-18-54.range86-150.btcentralplus.com)
2022-07-01 10:25:58 +0200dcoutts(~duncan@host86-150-18-54.range86-150.btcentralplus.com) (Ping timeout: 240 seconds)
2022-07-01 10:27:03 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-07-01 10:43:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-07-01 10:48:36 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-07-01 10:50:05 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 10:52:48 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:7e20:70d:7051:5007)
2022-07-01 10:54:38 +0200mattil(~mattil@87-92-116-67.bb.dnainternet.fi)
2022-07-01 11:00:06 +0200DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886) (Quit: You have been kicked for being idle)
2022-07-01 11:01:57 +0200quarkyalice__(~alice@172.79.71.35) (Remote host closed the connection)
2022-07-01 11:02:24 +0200quarkyalice__(~alice@172.79.71.35)
2022-07-01 11:08:27 +0200atwm(~atwm@81.28.193.19)
2022-07-01 11:14:20 +0200mattil(~mattil@87-92-116-67.bb.dnainternet.fi) (Remote host closed the connection)
2022-07-01 11:15:53 +0200 <arahael> DigitalKiwi: Also, when it turns out that the best way to search for data is to literally just accept all the "hints", no matter how stupid they are. :)
2022-07-01 11:16:07 +0200 <arahael> DigitalKiwi: Result: My tree is garbage, but has good research. :D
2022-07-01 11:23:18 +0200alp(~alp@user/alp) (Ping timeout: 240 seconds)
2022-07-01 11:24:32 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 255 seconds)
2022-07-01 11:30:17 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-07-01 11:33:00 +0200Guest64(~Guest64@117.213.47.149)
2022-07-01 11:33:07 +0200 <Guest64> hi
2022-07-01 11:33:17 +0200 <Guest64> I am new to haskell
2022-07-01 11:33:25 +0200 <Guest64> learning from lyah
2022-07-01 11:33:35 +0200 <Guest64> i want to find sum of digits of a number
2022-07-01 11:33:50 +0200 <Guest64> till single digit outcome
2022-07-01 11:34:12 +0200 <Guest64> eg 99 = 9 +9 = 18 = 1+8 = 9
2022-07-01 11:34:30 +0200 <Rembane> Guest64: There are at least two way to do this, I suggest you implement both, and more if you find more. Do you have any hunch of what they can be?
2022-07-01 11:34:37 +0200 <Guest64> i have already coded
2022-07-01 11:34:40 +0200 <Guest64> digitSum n = sum . map (read . return) . show
2022-07-01 11:34:49 +0200 <Guest64> this adds all the numbers
2022-07-01 11:35:07 +0200 <Guest64> singleDigitSum n
2022-07-01 11:35:08 +0200 <Guest64>     | n <=0 = 0
2022-07-01 11:35:08 +0200 <Guest64>     | n < 9 = 9
2022-07-01 11:35:09 +0200 <Guest64>     | otherwise digitSum n
2022-07-01 11:35:42 +0200 <Guest64> when i compile.. it gives me parse error (possibly incorrect indentation or mismatched brackets)
2022-07-01 11:35:53 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-01 11:35:55 +0200 <Guest64> not able to figure out what the issue is here..
2022-07-01 11:36:02 +0200 <Rembane> Guest64: Add a = after otherwise
2022-07-01 11:36:09 +0200 <arahael> Guest64: Be wary of pasting code on IRC, many servers, including this one, will slow your connection *substantially* for a short while, and a lot of people sometimes get annoyed about it in a busy channel (though right now most of us are pretty relaxed).
2022-07-01 11:36:25 +0200 <arahael> Guest64: So suggest you use a paste site (there's one in the topic but you can use any you like)
2022-07-01 11:36:56 +0200 <Guest64> @arah
2022-07-01 11:36:56 +0200 <lambdabot> Drink up, me 'earties
2022-07-01 11:37:15 +0200 <Guest64> arahael .. hi what is a paste site??
2022-07-01 11:38:03 +0200 <arahael> Guest64: A site that you paste things to.
2022-07-01 11:38:46 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-01 11:38:53 +0200 <Rembane> Guest64: Example: https://paste.tomsmeding.com/
2022-07-01 11:40:15 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-07-01 11:43:40 +0200 <Guest64> Rembane.. I added = after otherwise.. it still gives me an error.. is my logic correct ?
2022-07-01 11:44:23 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 11:45:47 +0200 <gurkenglas> I defined "gurk times pq pzz q = pzz (\p -> times (pq p q) p)" in a physics context (I'm impressed if you guess what physics) and wanted to see if @free can tell me anything interesting.
2022-07-01 11:45:51 +0200 <gurkenglas> @free gurk
2022-07-01 11:45:52 +0200 <lambdabot> (forall x. h . q x = f1 (f x) . g) => (forall y. f . f2 y = f3 (g y) . k) => (forall f6 f7. h . f6 = f7 . g => p (f4 f6) = f5 f7) => p . gurk q f2 f4 = gurk f1 f3 f5 .
2022-07-01 11:45:52 +0200 <lambdabot> k
2022-07-01 11:46:20 +0200 <gurkenglas> so i drew
2022-07-01 11:46:20 +0200 <gurkenglas> https://q.uiver.app/?q=WzAsMTIsWzcsMV0sWzcsMl0sWzYsMl0sWzcsM10sWzYsM10sWzYsMCwiXFxidWxsZXQiXSxbNyw…
2022-07-01 11:46:26 +0200 <gurkenglas> kpIiwyXSxbOCw5XSxbMTAsMTFdLFs4LDEwLCJhJ3giLDEseyJjdXJ2ZSI6NX1dLFs4LDEwLCJkJyIsMSx7ImN1cnZlIjotNX1dLFs5LDExLCJhKGZ4KSIsMSx7ImN1cnZlIjoyfV0sWzksMTEsImQiLDEseyJjdXJ2ZSI6LTJ9XSxbMjQsMjYsIjEiLDEseyJzaG9ydGVuIjp7InNvdXJjZSI6MjAsInRhcmdldCI6MjB9LCJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJub25lIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XSxbMTIsMTMsIjIiLDEseyJzaG9ydGVuIjp7InNvdXJjZSI6MjAsInRhcmdldCI6MjB9LCJzdHlsZSI6eyJib2R5Ijp
2022-07-01 11:46:32 +0200 <gurkenglas> 7Im5hbWUiOiJub25lIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XSxbMjcsMjUsIjMiLDEseyJzaG9ydGVuIjp7InNvdXJjZSI6MjAsInRhcmdldCI6MjB9LCJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJub25lIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XSxbMTQsMTUsIjQiLDEseyJzaG9ydGVuIjp7InNvdXJjZSI6MjAsInRhcmdldCI6MjB9LCJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJub25lIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XSxbMTUsMTIsIjUiLDEseyJzaG9ydGVuIjp7InNvdXJjZSI6MjAsInRhcmdldCI6
2022-07-01 11:46:38 +0200 <gurkenglas> MjB9LCJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJub25lIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XV0= where 1 and 2 and (3 => 4) imply 5
2022-07-01 11:46:41 +0200 <gurkenglas> oh sorry, i didn't think the link would be that long
2022-07-01 11:46:43 +0200ccntrq1(~Thunderbi@94.31.91.139)
2022-07-01 11:46:52 +0200 <gurkenglas> https://tinyurl.com/mv27tjtp
2022-07-01 11:47:05 +0200 <yin> lol
2022-07-01 11:47:36 +0200ccntrq(~Thunderbi@2a00:6020:1383:c500:5d6f:a5b5:bc6b:3196) (Ping timeout: 248 seconds)
2022-07-01 11:47:36 +0200ccntrq1ccntrq
2022-07-01 11:47:36 +0200 <gurkenglas> What's the next simplifications/analysis I could do to that diagram?
2022-07-01 11:47:41 +0200shriekingnoise(~shrieking@201.212.175.181) (Quit: Quit)
2022-07-01 11:48:44 +0200 <yin> what does "cannot satisfy -package-id hspec-2.8.3-f..." ?
2022-07-01 11:48:50 +0200 <yin> *mean
2022-07-01 11:48:59 +0200 <merijn> yin: pastebin the full error
2022-07-01 11:49:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 264 seconds)
2022-07-01 11:49:38 +0200 <gurkenglas> I assumed that the types of the first (etc.) arguments to ? are the same - does that generally hold for what @free produces, or can it instantiate gurk (? in the diagram) at multiple types?
2022-07-01 11:49:56 +0200 <Guest64> Rembane : this is the full error https://paste.tomsmeding.com/I6LdeON4
2022-07-01 11:50:16 +0200 <yin> https://paste.jrvieira.com/1656668987401
2022-07-01 11:50:17 +0200 <Rembane> Guest64: What's the full new code?
2022-07-01 11:50:27 +0200 <yin> merijn: ^
2022-07-01 11:51:04 +0200 <merijn> yin: Is there a .ghc.environment file in that directory?
2022-07-01 11:51:27 +0200 <Guest64> Rembane. new code. https://paste.tomsmeding.com/oCDUFpxf
2022-07-01 11:52:30 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-07-01 11:53:51 +0200 <yin> merijn: no
2022-07-01 11:54:11 +0200 <yin> just one .hs file and some folder with modules
2022-07-01 11:55:09 +0200 <merijn> yin: oh, wait, did you "cabal install <some lib> --lib" at some point?
2022-07-01 11:55:36 +0200 <Rembane> Guest64: I think that return confuses both me and the typechecker. Your life will be easier if you use charToDigit from Data.Char. :)
2022-07-01 11:56:22 +0200 <yin> merijn: i'm afraid so
2022-07-01 11:56:44 +0200 <Guest64> ok.. I have not reached that far.. I was thinking of using recursion to keep adding till the answer becomes a single digit.. :)
2022-07-01 11:57:06 +0200 <Guest64> Rembane.. sorry to labour on this.. is the logic correct?
2022-07-01 11:57:40 +0200 <Rembane> Guest64: Almost, you have an off by one error when comparing against 9. :)
2022-07-01 11:57:42 +0200 <yin> merijn: i know i shouldn't have probably. is there a way to revert all of that? (i never really fully understood what --lib does)
2022-07-01 11:57:43 +0200 <merijn> yin: ok, so line 4 is saying it's loading the package environment default (i.e. the global one)
2022-07-01 11:58:06 +0200hsw_(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2022-07-01 11:58:14 +0200 <merijn> yin: Which, presumably has hspec in it? Except that hspec install is (somehow?) missing
2022-07-01 11:59:16 +0200 <yin> can i cabal install --lib hspec ?
2022-07-01 11:59:22 +0200 <merijn> yin: So, with cabal 3.x the way things work is: there's a global store of package which allows arbitrarily many (even conflicting) installs of every package and when you build cabal selects a compatible subset out of that. This means that there's no real notion of "manually installing" a library anymore
2022-07-01 11:59:43 +0200 <Lears> Guest64: You wrote the first one point-free, then took a point `n` anyway---this error would be better pin-pointed by the compiler if you wrote type declarations. The logic there is probably correct, but the second function isn't.
2022-07-01 12:00:00 +0200pleo(~pleo@user/pleo)
2022-07-01 12:00:13 +0200 <yin> merijn: oh
2022-07-01 12:00:14 +0200 <merijn> yin: "cabal install --lib" ends up inserting a library in the implicit *global* environment (which is kinda bad, since now you're stuck with that in the global environment "forever"
2022-07-01 12:00:16 +0200 <yin> i see
2022-07-01 12:00:22 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 272 seconds)
2022-07-01 12:00:42 +0200 <merijn> yin: Normally you wanna create a .cabal file, listing dependencies and then cabal will automagically take care of making sure they're in scope
2022-07-01 12:01:01 +0200 <merijn> yin: You could try simply deleting the "/home/zero/.ghc/i386-linux-8.10.7/environments/default"
2022-07-01 12:01:10 +0200 <yin> how can i undo the --lib intalls i have made?
2022-07-01 12:01:36 +0200 <yin> i think i did it because i wanted to test thinks quickly with just a file and ghci
2022-07-01 12:01:39 +0200 <merijn> The environment file should just be a list of "installed" packages, so nuking it should get rid of the implicit environment
2022-07-01 12:02:32 +0200 <yin> got it
2022-07-01 12:04:59 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-01 12:06:26 +0200surobaki(~surobaki@user/surobaki)
2022-07-01 12:06:38 +0200 <merijn> That fixed it?
2022-07-01 12:07:16 +0200 <merijn> yin: You can use "cabal repl" within a package to have cabal open GHCI with all the right dependencies in scope, btw
2022-07-01 12:07:34 +0200 <yin> fixed it
2022-07-01 12:08:17 +0200 <yin> merijn: yes, i did theses --lib installs when i waaaaas learning haskell a few years ago on this machine
2022-07-01 12:08:41 +0200 <yin> i didn't know what ai was doing
2022-07-01 12:08:58 +0200 <yin> still don't, really, but now at least i know how to use cabal
2022-07-01 12:09:28 +0200 <merijn> yin: ;)
2022-07-01 12:09:53 +0200 <merijn> Incidentally, if you wanna start ghci with a certain package loaded without a cabal file you can also do "cabal repl -b package
2022-07-01 12:10:10 +0200 <yin> oh nice. that i din't know
2022-07-01 12:10:10 +0200 <merijn> like "cabal repl -b hspec" or whatever
2022-07-01 12:10:34 +0200 <merijn> yin: That will just install (if not there yet) the package and then start ghci with it loaded
2022-07-01 12:11:27 +0200 <yin> is it me or did cabal get a lot more usable in the last ~5 years?
2022-07-01 12:11:35 +0200 <maerwald[m]> yin: https://www.haskell.org/ghcup/steps/#using-external-packages-in-ghci
2022-07-01 12:12:05 +0200 <maerwald[m]> `cabal install --lib hspec --package-env .` is also nice
2022-07-01 12:12:30 +0200 <yin> hey thanks
2022-07-01 12:13:01 +0200 <Guest64> Lear I am not clear on the point free style comment.. I loaded the file on ghci .. it gives type as digitSum :: (Num c, Read c, Show a) => p -> a -> c
2022-07-01 12:14:06 +0200 <maerwald[m]> yin: it installs a package env into current dir. If you omit ih, it gets added to your default env somewhere in ~/.ghc which can mess up all sorts of things
2022-07-01 12:15:19 +0200 <fockerize> How to start a ghci session which loads a library that i'm developing? I'm not inside the library dir, because I'm calling it from a emacs org file code block
2022-07-01 12:19:32 +0200 <Lears> Guest64: Does that type look right to you? Should it really take more than one argument? You can write `f x = g (h x)` or `f x = (g . h) x` or `f = g . h`. These are all equivalent, the lattermost being point-free. You've mixed the styles, writing `f x = g . h`.
2022-07-01 12:20:29 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
2022-07-01 12:21:08 +0200 <Guest64> Understood..
2022-07-01 12:23:41 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2022-07-01 12:23:43 +0200 <gurkenglas> aligned 1,3 with 2,4,5; undeleted the names f,g on two horizontal arrows because they are also used in a vertical arrow each
2022-07-01 12:23:51 +0200 <gurkenglas> (did not expect g to have 3 uses)
2022-07-01 12:24:04 +0200 <gurkenglas> https://tinyurl.com/yc7r4rr5
2022-07-01 12:24:11 +0200 <gurkenglas> gtg note me if you have an idea
2022-07-01 12:25:12 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
2022-07-01 12:26:30 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 12:26:49 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-07-01 12:27:32 +0200 <surobaki> Hi, I´m trying to use what I´ve seen referred to as a ¨phantom data type¨ so I can create two similar but not-quite-same types which I could then differentiate. This approach isn´t working, should I keep trying or should I try something like type tagging? https://paste.tomsmeding.com/rqCeQeWS Thanks!
2022-07-01 12:28:15 +0200alp(~alp@user/alp)
2022-07-01 12:28:38 +0200gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2022-07-01 12:29:30 +0200mima(~mmh@aftr-62-216-210-7.dynamic.mnet-online.de) (Ping timeout: 272 seconds)
2022-07-01 12:30:24 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-07-01 12:30:25 +0200 <Clint> i think you have two problems there
2022-07-01 12:31:35 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 268 seconds)
2022-07-01 12:32:18 +0200 <Lears> surobaki: Do you recall my original suggestion for the definition of of `Term`, which ski seconded? I think it's a bit soon to be attempting fancy business with types when there's a straight-forward way.
2022-07-01 12:32:41 +0200nate4(~nate@98.45.169.16)
2022-07-01 12:32:44 +0200Guest641(~Guest64@59.99.130.67)
2022-07-01 12:33:33 +0200 <carbolymer> dev.stephendiehl.com seems to be down for a few days. How do you guys even write haskell without it???
2022-07-01 12:33:46 +0200 <surobaki> Lears: I remember being told that keeping it as Terms only would be beneficial for simplicity, but I´m not really sure how to approach the fact that now I need to be able to differentiate two terms that either do or do not contain a `VarY´
2022-07-01 12:33:55 +0200 <Guest641> Lears ..can you give me some clue on what is wrong in the second function?  I want to solve it using recursion.. i have already eliminated edge cases.. so whats the issue in the logic.. the code also compiles.. but it does not add up to a single digit..  https://paste.tomsmeding.com/6dkajjLv
2022-07-01 12:34:36 +0200 <arahael> surobaki: It's been a while for me, but I don't think I see any data constructors for the type Term that are also called Term?
2022-07-01 12:35:39 +0200 <surobaki> arahael: That´s what I thought made it a ¨phantom type¨ but after reading more I think it´s not that. You´re right, there´s no data constructors. Let me fix that...
2022-07-01 12:36:08 +0200Guest64(~Guest64@117.213.47.149) (Ping timeout: 252 seconds)
2022-07-01 12:36:51 +0200 <arahael> surobaki: There are constructors, just you didn't call any of them "Term".
2022-07-01 12:37:33 +0200Guest64(~Guest64@117.215.213.50)
2022-07-01 12:37:44 +0200nate4(~nate@98.45.169.16) (Ping timeout: 248 seconds)
2022-07-01 12:38:10 +0200 <Lears> surobaki: The key is that `data Term x = Var x | ...` takes a type parameter `x`, which the `Var` constructor holds. Then you can declare e.g. `data X = X` and `data YorZ = Y | Z` and have `Var X :: Term X` while `Var Y :: Term YorZ`.
2022-07-01 12:39:13 +0200`2jt(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net)
2022-07-01 12:40:21 +0200 <arahael> surobaki: Note, in the case of `data X = X`, you have a data type X, and also a constructor that happens to be called X, it's not ambigious because you use them in different contexts.
2022-07-01 12:41:38 +0200Guest641(~Guest64@59.99.130.67) (Ping timeout: 252 seconds)
2022-07-01 12:42:23 +0200 <surobaki> arahael: Yeah, why would using `hypothesis = Atom ConstInt 3´ not work then if `Atom´ is a constructor of `Term´? If `hypothesis :: Term´
2022-07-01 12:43:11 +0200 <arahael> surobaki: Because Atom is a constructor that does not take any additional parameters.
2022-07-01 12:43:26 +0200 <arahael> surobaki: Unless you've since changed how you defined Term.
2022-07-01 12:43:28 +0200 <surobaki> Lears: I´m not fully sure I understand where you´re going with this, sorry
2022-07-01 12:43:37 +0200 <surobaki> arahael: Oh okay, yeah good point.
2022-07-01 12:43:50 +0200 <arahael> surobaki: You need to understand Lears' point as well.
2022-07-01 12:45:00 +0200 <Lears> Guest64: For recursion to work, you need to chip a piece off your problem, handle that, and recurse on the rest. In this case, the piece is a digit. Try using `divMod` or `quotRem` to separate a digit from the rest of the number.
2022-07-01 12:45:09 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-07-01 12:47:50 +0200 <surobaki> Lears: Oh wait so are you suggesting I pass type parameters like that?
2022-07-01 12:49:27 +0200 <Lears> surobaki: It's just like writing a function to factor out a difference between two similar calculations. Here we have two data types, the only difference being that one has a `VarX` constructor, while another has `VarY` and `VarZ` construtors. You can factor the difference by taking X/Y/Z/etc in the `x` type parameter, and having just one `Var x` constructor.
2022-07-01 12:49:45 +0200suro(~surobaki@137.44.222.80)
2022-07-01 12:49:46 +0200suro_baki(~surobaki@137.44.222.80)
2022-07-01 12:50:54 +0200 <Lears> And you don't really have to "pass" type parameters, they're just there is the types. The compiler will infer them when you apply `Var` as a function or match on its contents.
2022-07-01 12:51:00 +0200 <Lears> there in*
2022-07-01 12:51:16 +0200suro_baki(~surobaki@137.44.222.80) (Client Quit)
2022-07-01 12:51:18 +0200suro(~surobaki@137.44.222.80) (Client Quit)
2022-07-01 12:53:17 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-07-01 12:56:18 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-07-01 12:56:33 +0200 <surobaki> Lears: Wow okay, I think I´m getting somewhere? Thank you
2022-07-01 12:57:02 +0200Guest64(~Guest64@117.215.213.50) (Ping timeout: 252 seconds)
2022-07-01 12:57:43 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-07-01 12:58:07 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-07-01 12:58:38 +0200 <Lears> surobaki: It might help to play with some other, simpler parameterised data types.
2022-07-01 12:58:42 +0200 <Lears> @src Maybe
2022-07-01 12:58:43 +0200 <lambdabot> data Maybe a = Nothing | Just a
2022-07-01 12:58:46 +0200 <Lears> Like that ^
2022-07-01 12:58:48 +0200`2jt(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Ping timeout: 246 seconds)
2022-07-01 12:59:02 +0200 <Lears> :t Just ()
2022-07-01 12:59:04 +0200 <lambdabot> Maybe ()
2022-07-01 12:59:08 +0200 <Lears> :t Just 5
2022-07-01 12:59:10 +0200 <lambdabot> Num a => Maybe a
2022-07-01 12:59:13 +0200 <Lears> :t Nothing
2022-07-01 12:59:14 +0200 <lambdabot> Maybe a
2022-07-01 12:59:26 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Quit: CiaoSen)
2022-07-01 13:03:42 +0200pleo(~pleo@user/pleo) (Ping timeout: 272 seconds)
2022-07-01 13:04:50 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 260 seconds)
2022-07-01 13:08:07 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 13:10:51 +0200acidjnk_new(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2022-07-01 13:11:29 +0200acidjnk_new3(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de)
2022-07-01 13:11:52 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 13:12:47 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Leaving)
2022-07-01 13:12:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 268 seconds)
2022-07-01 13:14:08 +0200alp(~alp@user/alp) (Ping timeout: 268 seconds)
2022-07-01 13:17:00 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2022-07-01 13:18:25 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-07-01 13:22:07 +0200`2jt(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net)
2022-07-01 13:22:54 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 264 seconds)
2022-07-01 13:24:26 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-07-01 13:24:26 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-07-01 13:24:26 +0200wroathe(~wroathe@user/wroathe)
2022-07-01 13:28:00 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 13:29:54 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-01 13:30:29 +0200pleo(~pleo@user/pleo)
2022-07-01 13:31:35 +0200alp(~alp@user/alp)
2022-07-01 13:32:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-01 13:32:41 +0200acidjnk_new(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de)
2022-07-01 13:33:43 +0200notzmv(~zmv@user/notzmv)
2022-07-01 13:34:25 +0200Schrostfutz(~Schrostfu@217.150.146.150)
2022-07-01 13:35:56 +0200acidjnk_new3(~acidjnk@dynamic-046-114-169-012.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
2022-07-01 13:39:32 +0200acidjnk_new(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2022-07-01 13:40:02 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 268 seconds)
2022-07-01 13:40:38 +0200surobaki(~surobaki@user/surobaki) (Read error: Connection reset by peer)
2022-07-01 13:40:41 +0200acidjnk(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de)
2022-07-01 13:40:57 +0200Surobaki(~surobaki@137.44.222.80)
2022-07-01 13:41:26 +0200Surobaki(~surobaki@137.44.222.80) (Changing host)
2022-07-01 13:41:26 +0200Surobaki(~surobaki@user/surobaki)
2022-07-01 13:42:24 +0200hsw__(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2022-07-01 13:43:07 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-07-01 13:43:22 +0200beesportsfan(~beesports@user/beesportsfan)
2022-07-01 13:44:32 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 13:45:19 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 13:45:30 +0200hsw_(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 272 seconds)
2022-07-01 13:45:30 +0200Schrostfutz_(~Schrostfu@dhcp-214-185.vpn.tu-berlin.de)
2022-07-01 13:48:03 +0200acidjnk(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2022-07-01 13:48:26 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-07-01 13:48:40 +0200Schrostfutz(~Schrostfu@217.150.146.150) (Ping timeout: 268 seconds)
2022-07-01 13:49:51 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 13:54:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 248 seconds)
2022-07-01 13:55:18 +0200adrazalan(~adrazalan@42.191.189.65)
2022-07-01 13:56:17 +0200phma(~phma@host-67-44-208-95.hnremote.net) (Read error: Connection reset by peer)
2022-07-01 13:57:21 +0200phma(phma@2001:5b0:2172:dd98:ab22:b4c4:28ae:1777)
2022-07-01 13:58:13 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Quit: left)
2022-07-01 13:58:27 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net)
2022-07-01 14:01:54 +0200nek0(~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
2022-07-01 14:02:02 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds)
2022-07-01 14:04:17 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 14:12:06 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 272 seconds)
2022-07-01 14:13:50 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-07-01 14:13:50 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-07-01 14:13:50 +0200wroathe(~wroathe@user/wroathe)
2022-07-01 14:16:26 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 255 seconds)
2022-07-01 14:17:00 +0200acidjnk(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de)
2022-07-01 14:17:10 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 272 seconds)
2022-07-01 14:21:03 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-07-01 14:22:27 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-07-01 14:24:36 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 14:29:29 +0200xff0x(~xff0x@2405:6580:b080:900:3133:9bc3:a923:a312)
2022-07-01 14:30:54 +0200alexhandy(~trace@user/trace) (Read error: Connection reset by peer)
2022-07-01 14:31:19 +0200alexhandy(~trace@user/trace)
2022-07-01 14:31:28 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 14:33:41 +0200acidjnk(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2022-07-01 14:34:08 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 14:35:13 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-07-01 14:35:38 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) (Ping timeout: 240 seconds)
2022-07-01 14:35:49 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 14:36:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 248 seconds)
2022-07-01 14:38:18 +0200 <Surobaki> Lears: I rewrote it, it doesn´t take type variables because I still don´t see how I could use them in this situation, but I think this is more standard (albeit ugly) than what I had. https://paste.tomsmeding.com/SzCnPTAz
2022-07-01 14:40:44 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 255 seconds)
2022-07-01 14:42:04 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-07-01 14:42:47 +0200 <Surobaki> Lears: Is this more along the lines of what you and ski recommended?
2022-07-01 14:46:53 +0200 <Lears> Mmm... kinda, but also kinda not. What seems inconsistent between what you're trying to achieve and the parameterised approach?
2022-07-01 14:48:03 +0200liz(~liz@host86-159-158-175.range86-159.btcentralplus.com) (Quit: Lost terminal)
2022-07-01 14:52:07 +0200 <Surobaki> Lears: When you say ´parametrised approach¨ you mean using type parameter variables like `x´ or such, right? It just doesn´t feel necessary, the abstract tree manipulation is all I need done and I don´t really care about the underlying data. I went with ´Int´ for constant integers and ´Char´ for variables, I don´t really see what could using other types achieve. My problem is ¨how do I detect which term contains ´Y´ and which term contains
2022-07-01 14:52:07 +0200 <Surobaki> no ´Y´¨
2022-07-01 14:53:15 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-07-01 14:53:43 +0200 <Surobaki> I think I need to embed extra information into what a ¨Formula¨ and ¨Term¨ is so I can easily find the right one
2022-07-01 14:58:54 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-07-01 14:59:22 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-07-01 15:00:56 +0200Everything(~Everythin@37.115.210.35)
2022-07-01 15:01:45 +0200 <Lears> The type parameter distinguishes what terms can contain what variables. When you have a `Term X` you already know without looking that it contains no `Y`. You currently have the equivalent of `Term Char`, so you can never know whether you have 'X', 'Y', 'Z' or any of a million other unknown variables without combing through the entire AST.
2022-07-01 15:02:30 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 264 seconds)
2022-07-01 15:04:01 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 15:04:18 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
2022-07-01 15:05:29 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 255 seconds)
2022-07-01 15:05:41 +0200 <Surobaki> Lears: Ahh now I understand how you wanted me to use it. Thanks
2022-07-01 15:10:34 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2022-07-01 15:12:33 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-07-01 15:13:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 15:17:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 240 seconds)
2022-07-01 15:18:21 +0200GNU\Andrew(Andrew@user/AndrewYu) (Quit: Leaving)
2022-07-01 15:18:32 +0200Andrew(Andrew@user/AndrewYu)
2022-07-01 15:23:38 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 15:29:11 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-07-01 15:29:35 +0200nate4(~nate@98.45.169.16)
2022-07-01 15:29:56 +0200lyle(~lyle@104.246.145.85)
2022-07-01 15:31:02 +0200Surobaki(~surobaki@user/surobaki) (Remote host closed the connection)
2022-07-01 15:31:20 +0200Surobaki(~surobaki@137.44.222.80)
2022-07-01 15:35:04 +0200nate4(~nate@98.45.169.16) (Ping timeout: 272 seconds)
2022-07-01 15:39:25 +0200alp(~alp@user/alp) (Ping timeout: 260 seconds)
2022-07-01 15:40:01 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-07-01 15:41:15 +0200 <yin> what does this mean?: https://paste.jrvieira.com/1656682821099
2022-07-01 15:41:48 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.5)
2022-07-01 15:43:10 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2022-07-01 15:46:14 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-07-01 15:46:24 +0200 <merijn> hmm, that's weird...
2022-07-01 15:46:34 +0200 <merijn> yin: Also, are you sure you want "cabal exec"?
2022-07-01 15:46:46 +0200 <merijn> ah, wait, you're exec ghci
2022-07-01 15:46:51 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-07-01 15:47:30 +0200 <merijn> I think you want "cabal repl --repl-options="-fno-break-on-exception -fno-break-on-error -v1 -ferror-spans -j"
2022-07-01 15:47:45 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds)
2022-07-01 15:51:23 +0200 <yin> hm
2022-07-01 15:52:26 +0200 <merijn> yin: I'm guessing "pris" is the package directory, in which case you can safely nuke the dist-newstyle directory and try again with a clean dir
2022-07-01 15:58:59 +0200`2jt(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2022-07-01 15:59:17 +0200`2jt(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net)
2022-07-01 15:59:28 +0200suro(~surobaki@137.44.222.80)
2022-07-01 16:00:14 +0200 <yin> i get it now
2022-07-01 16:00:35 +0200 <yin> i'll keep that command for isolated .hs files
2022-07-01 16:00:50 +0200 <yin> in packages i can just do "ghcid" for the same effect
2022-07-01 16:01:14 +0200 <yin> heres what i was doing:
2022-07-01 16:02:08 +0200 <yin> https://paste.jrvieira.com/1656684121131
2022-07-01 16:02:31 +0200 <merijn> you can tell ghcid to use cabal build instead
2022-07-01 16:02:35 +0200 <merijn> (I forgot how)
2022-07-01 16:02:41 +0200Guest4162(~martin@95.91.223.9)
2022-07-01 16:02:52 +0200Guest4162BusConscious
2022-07-01 16:02:54 +0200Surobaki(~surobaki@137.44.222.80) (Ping timeout: 246 seconds)
2022-07-01 16:02:58 +0200jtomas(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net)
2022-07-01 16:03:25 +0200`2jt(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2022-07-01 16:04:15 +0200shriekingnoise(~shrieking@201.212.175.181)
2022-07-01 16:04:37 +0200 <BusConscious> hello everyone
2022-07-01 16:04:55 +0200Surobaki(~surobaki@137.44.222.80)
2022-07-01 16:05:21 +0200suro(~surobaki@137.44.222.80) (Ping timeout: 246 seconds)
2022-07-01 16:05:33 +0200 <BusConscious> So my unix shell is making good progress, but I have to make a rather big change: Until now I used
2022-07-01 16:05:37 +0200 <BusConscious> type Shell = StateT ShellEnv IO
2022-07-01 16:06:04 +0200 <BusConscious> as my monad from which I construct Shell action types like Shell ExitCode (most of the times)
2022-07-01 16:08:08 +0200 <BusConscious> but I've had increasingly the problem, that I have a range of possible errors I need to handle and passing down Shell (Either ExecError ExitCode) is not very practicable
2022-07-01 16:09:45 +0200 <BusConscious> I execute scripts one line at a time and once I encounter an error when executing a line I should stop executing that line altogether.
2022-07-01 16:09:50 +0200gdd1(~gdd@2001:470:1f13:187:e8a5:fbff:fe29:42f5) (Ping timeout: 255 seconds)
2022-07-01 16:09:53 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-07-01 16:10:33 +0200yoneda(~mike@193.206.102.122) (Quit: leaving)
2022-07-01 16:10:40 +0200 <geekosaur> (that doesn't match unix shells unless -e is set)
2022-07-01 16:10:54 +0200gdd1(~gdd@2001:470:1f13:187:445f:c307:f258:c47d)
2022-07-01 16:11:48 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:8b3a:f76b:742e:dc75) (Quit: WeeChat 2.8)
2022-07-01 16:13:01 +0200 <merijn> geekosaur: You mean that doesn't match posix sh :p
2022-07-01 16:13:22 +0200 <merijn> There's plenty of unix shells that aren't posix compliant and no real reason to be posix compliant, imo
2022-07-01 16:15:14 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-07-01 16:15:16 +0200 <geekosaur> I think you run into problems with subprocesses if you try to abort a pipeline while building it
2022-07-01 16:15:17 +0200gdd1(~gdd@2001:470:1f13:187:445f:c307:f258:c47d) (Excess Flood)
2022-07-01 16:15:27 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 16:16:40 +0200jtomas(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2022-07-01 16:19:39 +0200gdd1(~gdd@2001:470:1f13:187:445f:c307:f258:c47d)
2022-07-01 16:19:57 +0200 <BusConscious> ok i was confused by that line. So it stops processing the command:
2022-07-01 16:20:01 +0200 <BusConscious> In all of the cases shown in the table where an interactive shell is required not to exit, the shell shall not perform any further processing of the command in which the error occurred.
2022-07-01 16:20:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 272 seconds)
2022-07-01 16:21:32 +0200 <BusConscious> In any case my question is this: Is there is a state monad that allows me to abort execution on errors like the Parsec monad
2022-07-01 16:22:15 +0200jespada(~jespada@89.38.224.86) (Quit: Textual IRC Client: www.textualapp.com)
2022-07-01 16:22:37 +0200 <BusConscious> because then I don't have to handle x gazillion Either types
2022-07-01 16:23:12 +0200 <merijn> EitherT :)
2022-07-01 16:23:54 +0200 <merijn> So you get like "EitherT Error (StateT ShellEnv IO) a" (or maybe flip EitherT and StateT, depending on the semantics you want?
2022-07-01 16:23:58 +0200gdd1(~gdd@2001:470:1f13:187:445f:c307:f258:c47d) (Excess Flood)
2022-07-01 16:25:44 +0200gdd1(~gdd@129.199.146.230)
2022-07-01 16:26:02 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-07-01 16:26:10 +0200 <BusConscious> I think I would want the former
2022-07-01 16:26:46 +0200 <BusConscious> Do I have to lift . lift IO Actions then?
2022-07-01 16:26:54 +0200 <merijn> :t liftIO
2022-07-01 16:26:56 +0200 <lambdabot> MonadIO m => IO a -> m a
2022-07-01 16:27:00 +0200 <yin> ok i have lost any ability i had to produce random numbers in haskell
2022-07-01 16:27:23 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 16:28:27 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-01 16:29:54 +0200 <BusConscious> ah thanks I will have to really think about how to correctly handle all of these errors
2022-07-01 16:30:04 +0200 <BusConscious> and I want POSIX compliance
2022-07-01 16:31:25 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-01 16:32:58 +0200pleo(~pleo@user/pleo) (Quit: quit)
2022-07-01 16:34:59 +0200ARJ0019(~arj0019@162.218.254.7)
2022-07-01 16:37:42 +0200ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 276 seconds)
2022-07-01 16:38:35 +0200ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2022-07-01 16:38:45 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 256 seconds)
2022-07-01 16:40:54 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 264 seconds)
2022-07-01 16:42:41 +0200Schrostfutz_(~Schrostfu@dhcp-214-185.vpn.tu-berlin.de) (Ping timeout: 255 seconds)
2022-07-01 16:44:28 +0200aeka(~aeka@2606:6080:1001:e:2e9c:bad5:dbdd:84ea) (Quit: ZNC 1.8.2 - https://znc.in)
2022-07-01 16:44:44 +0200aeka(~aeka@2606:6080:1001:e:2e9c:bad5:dbdd:84ea)
2022-07-01 16:45:02 +0200img(~img@user/img) (Ping timeout: 268 seconds)
2022-07-01 16:45:17 +0200ccntrq(~Thunderbi@94.31.91.139) (Remote host closed the connection)
2022-07-01 16:45:39 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
2022-07-01 16:45:55 +0200Schrostfutz_(~Schrostfu@217.150.146.150)
2022-07-01 16:55:28 +0200Schrostfutz(~Schrostfu@dhcp-214-43.vpn.tu-berlin.de)
2022-07-01 16:56:48 +0200Schrostfutz_(~Schrostfu@217.150.146.150) (Ping timeout: 246 seconds)
2022-07-01 16:57:11 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-07-01 16:57:37 +0200img(~img@user/img)
2022-07-01 17:00:16 +0200mehrad(~mehrad@host-1m9myvj.static.zeelandnet.nl)
2022-07-01 17:00:34 +0200mehrad(~mehrad@host-1m9myvj.static.zeelandnet.nl) (Client Quit)
2022-07-01 17:01:21 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2022-07-01 17:01:23 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-07-01 17:01:56 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-07-01 17:02:26 +0200quarkyalice__(~alice@172.79.71.35) (Remote host closed the connection)
2022-07-01 17:02:35 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 17:02:39 +0200jakalx(~jakalx@base.jakalx.net)
2022-07-01 17:02:45 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net)
2022-07-01 17:02:48 +0200quarkyalice__(~alice@172.79.71.35)
2022-07-01 17:06:27 +0200benin00(~benin@89.187.179.58)
2022-07-01 17:08:28 +0200benin0(~benin@183.82.26.81) (Ping timeout: 268 seconds)
2022-07-01 17:08:29 +0200benin00benin0
2022-07-01 17:09:54 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-07-01 17:11:09 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2022-07-01 17:11:48 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-07-01 17:12:19 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-01 17:15:48 +0200Haskelytic(~Haskelyti@118.179.211.17)
2022-07-01 17:17:47 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2022-07-01 17:22:50 +0200ornx(~ornxka@user/ornxka) (Quit: WeeChat 3.4.1)
2022-07-01 17:25:23 +0200Surobaki(~surobaki@137.44.222.80) (Changing host)
2022-07-01 17:25:23 +0200Surobaki(~surobaki@user/surobaki)
2022-07-01 17:25:52 +0200zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
2022-07-01 17:26:58 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) (Ping timeout: 240 seconds)
2022-07-01 17:29:37 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-07-01 17:30:22 +0200benin06(~benin@183.82.26.81)
2022-07-01 17:33:08 +0200benin0(~benin@89.187.179.58) (Ping timeout: 268 seconds)
2022-07-01 17:33:09 +0200benin06benin0
2022-07-01 17:34:08 +0200benin0(~benin@183.82.26.81) (Client Quit)
2022-07-01 17:35:16 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-07-01 17:38:23 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-07-01 17:39:43 +0200pierrot(~pi@user/pierrot) (Read error: Connection reset by peer)
2022-07-01 17:44:10 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-07-01 17:44:17 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 17:44:35 +0200mbuf(~Shakthi@122.164.15.165) (Quit: Leaving)
2022-07-01 17:45:08 +0200Sgeo(~Sgeo@user/sgeo)
2022-07-01 17:50:36 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
2022-07-01 17:55:30 +0200 <Haskelytic> the const functor is leaving my brain scratching
2022-07-01 17:56:05 +0200 <Haskelytic> `data Constant a b = Constant a` can be a functor / applicative
2022-07-01 17:56:10 +0200 <Haskelytic> `b` is a ghost
2022-07-01 17:56:21 +0200 <Haskelytic> what's the point?
2022-07-01 17:56:30 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-07-01 17:56:36 +0200 <monochrom> It is the 2nd smallest example that defies "M Int contains Int", yeah. The 1st smallest being "data Proxy a = Proxy"
2022-07-01 17:57:05 +0200 <geekosaur> for one thing, it lets you substitute one argument for another
2022-07-01 17:57:26 +0200ubert(~Thunderbi@2a02:8109:abc0:6434:7e20:70d:7051:5007) (Remote host closed the connection)
2022-07-01 17:57:34 +0200 <geekosaur> so Constant eats the one that was originally passed in, and then substitutes something else for it
2022-07-01 17:58:30 +0200 <Haskelytic> Hmm...
2022-07-01 17:58:59 +0200 <geekosaur> it also gives you a value that is "tagged", so you can ensure that only things with the same tag are used together
2022-07-01 17:59:20 +0200 <Haskelytic> So b can be a type level tag to do API magic?
2022-07-01 17:59:40 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-01 17:59:41 +0200 <geekosaur> among other things, yes
2022-07-01 17:59:45 +0200 <Haskelytic> I guess that makes sense
2022-07-01 17:59:52 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-07-01 18:00:06 +0200c_aprakasa[m](~caprakasa@2001:470:69fc:105::cfd6) (Quit: You have been kicked for being idle)
2022-07-01 18:01:18 +0200 <Haskelytic> https://paste.tomsmeding.com/d78B3TN5
2022-07-01 18:01:35 +0200 <Haskelytic> I wrote this for an exercise in the haskell from first principles book
2022-07-01 18:01:57 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 18:01:59 +0200 <Haskelytic> I'm still not sure what the monoidal part of the functor is
2022-07-01 18:02:11 +0200 <Haskelytic> is it `Constant a`?
2022-07-01 18:02:57 +0200 <monochrom> A lens can be "forall f. Functor f => (s -> f t) -> (a -> f b)" and it contains a getter because you can set f = Const FieldType. This is one application of the Const functor.
2022-07-01 18:03:05 +0200 <Haskelytic> and why monoid? is there a deeper reason? or is it just that that's the least amount of assumption needed to implement <*>
2022-07-01 18:03:38 +0200 <geekosaur> it also provides a meaning for `pure`
2022-07-01 18:05:46 +0200 <Haskelytic> monochrom: cool!
2022-07-01 18:06:18 +0200 <geekosaur> since the type is `Constant a`, you need some way to magic up a value fitting `a` for `pure`. which means `a` needs to be a `Monoid`
2022-07-01 18:06:50 +0200mattil(~mattil@87-92-116-67.bb.dnainternet.fi)
2022-07-01 18:06:55 +0200 <geekosaur> once you've done that, the definition of `<*>` is pretty obvious
2022-07-01 18:07:03 +0200machinedgod(~machinedg@66.244.246.252) (Ping timeout: 268 seconds)
2022-07-01 18:07:11 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-07-01 18:07:20 +0200 <geekosaur> (that is, the instance isn't just for `Constant`, it needs to be for `Constant a`)
2022-07-01 18:07:31 +0200Surobaki(~surobaki@user/surobaki) (Read error: Connection reset by peer)
2022-07-01 18:07:59 +0200 <Haskelytic> Thanks that clears it up!
2022-07-01 18:08:22 +0200 <Haskelytic> I can feel my brain expanding :)
2022-07-01 18:11:30 +0200Vajb(~Vajb@2001:999:48c:99ca:b00c:585c:3999:aa8b) (Ping timeout: 272 seconds)
2022-07-01 18:12:15 +0200Vajb(~Vajb@2001:999:485:209:bc32:5580:b7a6:e68b)
2022-07-01 18:13:05 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-07-01 18:13:27 +0200pleo(~pleo@user/pleo)
2022-07-01 18:15:12 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 246 seconds)
2022-07-01 18:18:07 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-07-01 18:18:10 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-01 18:18:21 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-07-01 18:20:22 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 272 seconds)
2022-07-01 18:22:57 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-07-01 18:26:47 +0200coot(~coot@213.134.190.95) (Ping timeout: 268 seconds)
2022-07-01 18:26:52 +0200 <Lears> Haskelytic: Applicative = Monoidal Functor. An equivalent formulation is `class Functor f => Monoidal f where { pure :: f (); (<*>) :: f a -> f b -> f (a, b) }`. Under a slightly relaxed equality (flattening all nested tuples and removing units) the Applicative laws just become the Monoid laws.
2022-07-01 18:28:05 +0200 <yin> what's the simples way to make a function that randomly shuffles an arbitrary number of lists?
2022-07-01 18:28:52 +0200 <monochrom> I don't know about simplest. I know what I would do (and did).
2022-07-01 18:30:20 +0200inversed(~inversed@5.65.47.68) (Ping timeout: 260 seconds)
2022-07-01 18:30:36 +0200 <yin> i'm looking for inspiration!
2022-07-01 18:31:30 +0200 <yin> (please don't use monadic random)
2022-07-01 18:31:33 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 18:31:47 +0200inversed(~inversed@05412f44.skybroadband.com)
2022-07-01 18:32:46 +0200 <monochrom> I work in the ST monad, but this is for the mutable array, so I can swap elements in-place.
2022-07-01 18:33:01 +0200 <monochrom> I thread the old-new PRNG manually.
2022-07-01 18:33:42 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-07-01 18:33:45 +0200 <monochrom> The algorithm is imperative in nature, yes.
2022-07-01 18:34:24 +0200shapr(~user@2600:4040:2d31:7100:f8ab:6a16:c96:c6a8)
2022-07-01 18:34:53 +0200 <monochrom> https://danluu.com/sattolo/ function "shuffle" is the algorithm.
2022-07-01 18:35:51 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-07-01 18:36:02 +0200econo(uid147250@user/econo)
2022-07-01 18:36:35 +0200 <monochrom> I am not sure why you would reject monadic random.
2022-07-01 18:40:11 +0200Guest34(~Guest34@2605:a601:a615:f600:31c6:1b59:98d2:7b0d)
2022-07-01 18:41:07 +0200 <yin> i don't reject it, i just don't want to have to wrap my head around the new way of doing things while i just want to write a simple quick thing right now
2022-07-01 18:41:41 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-07-01 18:41:47 +0200 <geekosaur> that's not really looking for inspiration
2022-07-01 18:42:04 +0200 <monochrom> Are PRNG-using algorithms really that simple?
2022-07-01 18:42:21 +0200 <Guest34> Every time I look up the latest stack LTS, I see `abstract-deque` up at the top. So I finally took a look at it. Am I crazy, or is the class hierarchy mostly backwards? Seems like it would be much simpler if an `Unbounded` class inherited from a `Queue` class. Wouldn't have a bunch of invalid methods hanging around in the bounded case.
2022-07-01 18:42:28 +0200 <monochrom> The 1970s C people thought so. Then the 21st-century C people learned it the hard way.
2022-07-01 18:43:11 +0200 <monochrom> The "simple" C story has a global variable behind your back, so that the API is a "simple" effectful function call "random()" or something.
2022-07-01 18:43:38 +0200 <monochrom> The 21st-century shows how broken that is by noticing thread-unsafety.
2022-07-01 18:44:40 +0200 <monochrom> The solution is "random_r(your local generator, ...)" which is no simpler than any FP solution.
2022-07-01 18:45:37 +0200 <geekosaur> 1970s was rand(). early 1980s was random(). 1986 or so was ?rand48() which not only provided multiple random types, but provided seeded (thereby thread safe) versions of all of them
2022-07-01 18:45:54 +0200Schrostfutz(~Schrostfu@dhcp-214-43.vpn.tu-berlin.de) (Ping timeout: 268 seconds)
2022-07-01 18:46:11 +0200zebrag(~chris@user/zebrag)
2022-07-01 18:46:11 +0200 <geekosaur> everyone ignored those though because they were more work than random()
2022-07-01 18:46:42 +0200shapr(~user@2600:4040:2d31:7100:f8ab:6a16:c96:c6a8) (Remote host closed the connection)
2022-07-01 18:46:55 +0200 <geekosaur> come the 21st century when practically every program is multithreaded, they still ignored them and proceeded to reinvent them
2022-07-01 18:47:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 18:49:09 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
2022-07-01 18:51:15 +0200MajorBiscuit(~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Ping timeout: 246 seconds)
2022-07-01 18:53:16 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-01 18:53:35 +0200califax(~califax@user/califx)
2022-07-01 18:54:36 +0200jinsun(~jinsun@user/jinsun)
2022-07-01 18:54:46 +0200shapr(~user@2600:4040:2d31:7100:fe62:9285:d8a9:96db)
2022-07-01 18:58:11 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-01 18:59:01 +0200coot(~coot@213.134.190.95)
2022-07-01 19:02:11 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 19:03:32 +0200michalz(~michalz@185.246.204.101) (Ping timeout: 255 seconds)
2022-07-01 19:04:15 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 19:06:11 +0200mattil(~mattil@87-92-116-67.bb.dnainternet.fi) (Read error: Connection reset by peer)
2022-07-01 19:06:19 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-07-01 19:07:27 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 19:08:55 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-07-01 19:12:05 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 255 seconds)
2022-07-01 19:19:15 +0200jtomas(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net)
2022-07-01 19:22:01 +0200gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
2022-07-01 19:22:28 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-07-01 19:22:53 +0200causal(~user@50.35.83.177)
2022-07-01 19:25:35 +0200BusConscious(~martin@95.91.223.9) (Quit: leaving)
2022-07-01 19:27:17 +0200atwm(~atwm@81.28.193.19) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-07-01 19:27:47 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 19:31:07 +0200nate4(~nate@98.45.169.16)
2022-07-01 19:35:42 +0200nate4(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-07-01 19:37:32 +0200quarkyalice__(~alice@172.79.71.35) (Quit: Leaving)
2022-07-01 19:37:56 +0200quarkyalice(~alice@172.79.71.35)
2022-07-01 19:37:56 +0200quarkyalice(~alice@172.79.71.35) (Changing host)
2022-07-01 19:37:56 +0200quarkyalice(~alice@user/quarkyalice)
2022-07-01 19:39:35 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-07-01 19:44:36 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 272 seconds)
2022-07-01 19:46:57 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
2022-07-01 19:47:32 +0200yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-07-01 19:48:48 +0200jtomas(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2022-07-01 19:51:29 +0200kannon(~NK@135-180-47-54.fiber.dynamic.sonic.net)
2022-07-01 19:52:09 +0200Colere(~colere@about/linux/staff/sauvin)
2022-07-01 19:53:34 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 19:54:25 +0200mima(~mmh@aftr-62-216-210-22.dynamic.mnet-online.de)
2022-07-01 19:57:25 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 19:57:27 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net)
2022-07-01 19:58:13 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-07-01 20:00:12 +0200nurupo(~nurupo.ga@user/nurupo) (Quit: nurupo.ga)
2022-07-01 20:00:26 +0200nurupo(~nurupo.ga@user/nurupo)
2022-07-01 20:01:11 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-07-01 20:01:22 +0200ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Remote host closed the connection)
2022-07-01 20:01:42 +0200dcoutts__(~duncan@host86-150-18-54.range86-150.btcentralplus.com)
2022-07-01 20:01:45 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
2022-07-01 20:04:10 +0200kitzman_kitzman
2022-07-01 20:04:15 +0200dcoutts_(~duncan@host86-150-18-54.range86-150.btcentralplus.com) (Ping timeout: 260 seconds)
2022-07-01 20:08:39 +0200Jeanne-Kamikaze(~Jeanne-Ka@142.147.89.200)
2022-07-01 20:10:23 +0200Vajb(~Vajb@2001:999:485:209:bc32:5580:b7a6:e68b) (Read error: Connection reset by peer)
2022-07-01 20:10:40 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-07-01 20:11:30 +0200pseigo(~pseigo@node-1w7jr9ye7hx4fsjarlsl1lkjw.ipv6.telus.net) (Ping timeout: 264 seconds)
2022-07-01 20:11:47 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-01 20:12:22 +0200 <yin> oh well. i was hoping that forking concurrent threads of a my PRNG would give me different results but no...
2022-07-01 20:15:46 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-07-01 20:16:18 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds)
2022-07-01 20:17:25 +0200zmt00(~zmt00@user/zmt00) (Read error: Connection reset by peer)
2022-07-01 20:19:23 +0200 <shapr> I like using C-c C-l in emacs' haskell-mode to load a library or executable stanza into a cabal repl, but it fails with a test-suite stanza, is there a fix for that?
2022-07-01 20:19:37 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-07-01 20:21:10 +0200mima(~mmh@aftr-62-216-210-22.dynamic.mnet-online.de) (Ping timeout: 260 seconds)
2022-07-01 20:25:46 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Ping timeout: 272 seconds)
2022-07-01 20:26:25 +0200foul_owl(~kerry@23.82.194.108) (Ping timeout: 268 seconds)
2022-07-01 20:28:36 +0200pleo(~pleo@user/pleo) (Quit: quit)
2022-07-01 20:28:51 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 20:32:58 +0200zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
2022-07-01 20:33:42 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 20:34:08 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 20:35:59 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-07-01 20:37:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-01 20:38:22 +0200beesportsfan(~beesports@user/beesportsfan) (Remote host closed the connection)
2022-07-01 20:38:29 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 255 seconds)
2022-07-01 20:38:42 +0200mima(~mmh@aftr-62-216-210-42.dynamic.mnet-online.de)
2022-07-01 20:38:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Remote host closed the connection)
2022-07-01 20:42:36 +0200fserucas_(~fserucas@18.65.114.89.rev.vodafone.pt) (Quit: Leaving)
2022-07-01 20:43:41 +0200yax__(~yax__@user/yax/x-9576643)
2022-07-01 20:44:20 +0200mima(~mmh@aftr-62-216-210-42.dynamic.mnet-online.de) (Ping timeout: 255 seconds)
2022-07-01 20:45:14 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 255 seconds)
2022-07-01 20:47:02 +0200zmt00(~zmt00@user/zmt00)
2022-07-01 20:47:23 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
2022-07-01 20:50:40 +0200Guest3747(~Guest37@lfbn-ren-1-2056-23.w92-167.abo.wanadoo.fr)
2022-07-01 20:50:53 +0200Guest3747(~Guest37@lfbn-ren-1-2056-23.w92-167.abo.wanadoo.fr) ()
2022-07-01 20:53:12 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2022-07-01 20:54:38 +0200mc47(~mc47@xmonad/TheMC47)
2022-07-01 20:57:13 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Remote host closed the connection)
2022-07-01 20:57:28 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-07-01 21:00:03 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 246 seconds)
2022-07-01 21:01:47 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-07-01 21:01:59 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-07-01 21:03:14 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2022-07-01 21:12:03 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-07-01 21:13:43 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 21:15:18 +0200motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 240 seconds)
2022-07-01 21:16:25 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
2022-07-01 21:17:33 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 21:18:05 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 255 seconds)
2022-07-01 21:23:02 +0200Guest34(~Guest34@2605:a601:a615:f600:31c6:1b59:98d2:7b0d) (Ping timeout: 252 seconds)
2022-07-01 21:24:08 +0200Schrostfutz(~Schrostfu@217.150.146.150)
2022-07-01 21:32:06 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-07-01 21:33:03 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2022-07-01 21:36:32 +0200michalz(~michalz@185.246.204.119)
2022-07-01 21:39:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 21:41:11 +0200acidjnk(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de)
2022-07-01 21:41:42 +0200acidjnk_new(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de)
2022-07-01 21:42:21 +0200coot(~coot@213.134.190.95)
2022-07-01 21:42:50 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds)
2022-07-01 21:44:44 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50) (Ping timeout: 268 seconds)
2022-07-01 21:44:57 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-01 21:45:33 +0200acidjnk(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
2022-07-01 21:50:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-01 21:53:47 +0200kimjetwav(~user@2607:fea8:2340:da00:eadc:b566:9c61:625)
2022-07-01 21:54:07 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-07-01 21:56:20 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 272 seconds)
2022-07-01 21:56:45 +0200kannon(~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 246 seconds)
2022-07-01 21:57:14 +0200xheimlich(~xheimlich@179.218.1.150)
2022-07-01 22:02:13 +0200tfeb(~tfb@88.98.95.237)
2022-07-01 22:05:33 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c904:ea1d:dddd:db50)
2022-07-01 22:06:38 +0200tfeb(~tfb@88.98.95.237) (Client Quit)
2022-07-01 22:07:34 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
2022-07-01 22:08:09 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Quit: WeeChat 3.5)
2022-07-01 22:09:28 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-01 22:12:03 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-07-01 22:12:04 +0200zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
2022-07-01 22:12:29 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-07-01 22:15:41 +0200Jeanne-Kamikaze(~Jeanne-Ka@142.147.89.200) (Quit: Leaving)
2022-07-01 22:15:41 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds)
2022-07-01 22:16:09 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl)
2022-07-01 22:19:03 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com)
2022-07-01 22:20:18 +0200yax__(~yax__@user/yax/x-9576643) (Quit: Lost terminal)
2022-07-01 22:21:03 +0200Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-07-01 22:31:39 +0200 <yin> why list language extensions used in moduled in the cabal file?
2022-07-01 22:31:48 +0200 <yin> *modules
2022-07-01 22:32:17 +0200 <sclv> so they don't have to be listed at the top of every individual file
2022-07-01 22:33:39 +0200 <monochrom> Depending on my mood, on some days that would be my reason too, and on some other days I advocate the "redundancy" for helping your readers.
2022-07-01 22:34:14 +0200 <ARJ0019> it is my understanding that you can list language extensions in the module and cabal file level at the same time. Is this correct?
2022-07-01 22:34:23 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-07-01 22:34:29 +0200 <monochrom> I think yes.
2022-07-01 22:34:35 +0200 <geekosaur> yes
2022-07-01 22:34:53 +0200 <geekosaur> which means you can have extensions enables for all files, and extensions applying to only one or two files
2022-07-01 22:35:01 +0200 <ARJ0019> In that case, you can standardize some language features for your whole project in the cabal file, and then do specifics in the modules
2022-07-01 22:35:04 +0200 <geekosaur> (putting them in both places is otherwise redundant)
2022-07-01 22:35:41 +0200 <monochrom> I too was anti-"redundancy" when I was young. Rejecting the idea that in a report or thesis for example, they made me repeat the same information in the summary, then the introduction, then the conclusion.
2022-07-01 22:36:45 +0200 <monochrom> One day a good teacher explained that "but many readers don't have time to read the whole thing, some want to sample the summary, some want to sample the conclusion". Ah, I am happy to be a service to my readers then.
2022-07-01 22:36:59 +0200BusConscious(~martin@ip5f5bdf11.dynamic.kabel-deutschland.de)
2022-07-01 22:37:23 +0200 <ARJ0019> I don't agree with the use of redundancy here. language extensions happen at compile time only correct? redundacy is more applicable to runtime
2022-07-01 22:37:43 +0200 <yin> i also hate that this is a possibility
2022-07-01 22:37:46 +0200 <monochrom> Oh that's why I put it in quotes, yeah? :)
2022-07-01 22:38:15 +0200 <monochrom> It is not real redundancy, it's just programmers being lazy.
2022-07-01 22:38:38 +0200 <monochrom> And/Or programmers thinking that no other humans ever read code.
2022-07-01 22:38:43 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 22:39:16 +0200 <yin> but evaluating that laziness will eventually offend the more strict types :)
2022-07-01 22:39:24 +0200 <monochrom> Writing for other humans is very different from writing for computers. And programming is supposed to be super-hard because now you have two masters to serve.
2022-07-01 22:39:30 +0200 <ARJ0019> The real power in this functionality for me is that we can set language extensions that shape our overall project in the cabal file, and then fine tune the extras in the specific modules
2022-07-01 22:40:01 +0200 <monochrom> But since this is the real world, coders "simplify" that by ignoring other humans.
2022-07-01 22:42:06 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5)
2022-07-01 22:42:18 +0200 <ARJ0019> yin: maybe you could make a language extension that prevents this faux redundancy... /s
2022-07-01 22:43:06 +0200 <monochrom> Yes, start with GHC2021 >:)
2022-07-01 22:43:26 +0200 <yin> GHC2022July
2022-07-01 22:43:40 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-01 22:43:40 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-07-01 22:43:40 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-07-01 22:43:40 +0200winny(~weechat@user/winny) (Remote host closed the connection)
2022-07-01 22:43:40 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-01 22:43:40 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-07-01 22:43:49 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-07-01 22:43:58 +0200califax(~califax@user/califx)
2022-07-01 22:44:02 +0200noteness(~noteness@user/noteness)
2022-07-01 22:44:03 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-07-01 22:44:03 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-01 22:44:07 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-01 22:44:08 +0200winny(~weechat@user/winny)
2022-07-01 22:44:21 +0200 <yin> whatever happened to Haskell Prime btw?
2022-07-01 22:44:47 +0200 <monochrom> Co-induction. Haskell Prime always refers to the future.
2022-07-01 22:44:48 +0200 <ARJ0019> https://reasonablypolymorphic.com/blog/haskell202x/
2022-07-01 22:45:02 +0200pavonia(~user@user/siracusa)
2022-07-01 22:45:09 +0200 <geekosaur> nobody wants to document extensions well enough to standardize them, and the code is not the documentation
2022-07-01 22:45:32 +0200 <geekosaur> and nobody really knows how various ghc extensions interact with each other
2022-07-01 22:46:48 +0200 <monochrom> Indeed I think I heard that for example MultiParamTypeClass and/or FunDeps keep getting semantic changes over GHC version changes. You wouldn't even know where to start if you wanted to write down its semantics.
2022-07-01 22:47:02 +0200 <ARJ0019> are lanugage extensions written in some outside language like C?
2022-07-01 22:47:39 +0200 <geekosaur> the only part of ghc that isn't written in haskell is the rts
2022-07-01 22:47:53 +0200pleo(~pleo@user/pleo)
2022-07-01 22:47:59 +0200 <dsal> Writing haskell language extensions in a less capable language sounds quite unpleasant.
2022-07-01 22:48:02 +0200 <geekosaur> most of that is in C, with some Cmm and a little bit of assembly language
2022-07-01 22:49:03 +0200lyle(~lyle@104.246.145.85) (Quit: WeeChat 3.5)
2022-07-01 22:49:06 +0200jargon(~jargon@184.101.215.172)
2022-07-01 22:50:18 +0200merijn(~merijn@c-001-001-028.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-07-01 22:50:18 +0200 <monochrom> Do not think that language extensions and GHC's type checking being written in Haskell helps a tiny bit. :)
2022-07-01 22:51:10 +0200foul_owl(~kerry@23.82.194.107)
2022-07-01 22:51:58 +0200 <monochrom> The whole thing is complicated and tightly coupled enough that it is messy no matter how high level you get. (OK unless you get very imprecise, but what's the fun in that.)
2022-07-01 22:53:06 +0200chomwitt(~chomwitt@2a02:587:dc17:ef00:a734:f93:648c:824f)
2022-07-01 22:53:31 +0200 <monochrom> In fact I think we're in much deeper trouble than that.
2022-07-01 22:55:21 +0200 <monochrom> Even Haskell2010 type checking is not precisely standardized. Although we have Mark Jones's Typing Haskell in Haskell, it is not part of Haskell2010.
2022-07-01 22:56:05 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-07-01 22:56:29 +0200 <monochrom> You can see how it's then impossible to define say ScopedTypeVariables if you can't even precisely say what's its diff from Haskell2010.
2022-07-01 22:56:35 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-07-01 22:56:42 +0200 <ARJ0019> in what way does it lack standardization?
2022-07-01 22:57:03 +0200 <monochrom> Have you read the Haskell2010 Report?
2022-07-01 22:57:29 +0200 <geekosaur> hm, seems like that one should be definable. several others, I'd readily agree
2022-07-01 22:57:47 +0200 <geekosaur> but yes, the Report doesn't formally specify typechecking
2022-07-01 22:58:11 +0200 <geekosaur> and you can't just say "Hindley-Milner" because of typeclasses
2022-07-01 22:58:13 +0200 <ARJ0019> I have only read 'Learn You a Haskell for Great Good'. I am activly looking for resources that will help me do real world haskell work (i plan to get real world haskell soon)
2022-07-01 22:58:23 +0200 <monochrom> Oh haha but they did.
2022-07-01 22:59:22 +0200 <monochrom> It simply says (though I paraphrase) Hindley-Milner but modified to add type classes.
2022-07-01 22:59:31 +0200 <ARJ0019> so is it just that the type checking process is not standardized, but the correct result is?
2022-07-01 22:59:45 +0200 <monochrom> The subtext being "you are all PLT researchers and you have all seen the relevant papers, you know what I mean".
2022-07-01 22:59:55 +0200 <geekosaur> not sure the correct result is specified. ^
2022-07-01 23:00:01 +0200 <monochrom> <monochrom> Have you read the Haskell2010 Report?
2022-07-01 23:00:23 +0200 <geekosaur> they don't even name the papers
2022-07-01 23:00:37 +0200 <ARJ0019> sounds like the haskell report would be way over my head
2022-07-01 23:00:53 +0200 <monochrom> On other topics, sure.
2022-07-01 23:01:11 +0200 <monochrom> On type checking, it's just one plain-English sentence that everyone understands.
2022-07-01 23:01:19 +0200 <monochrom> Precisely because it says nothing.
2022-07-01 23:01:24 +0200Pickchea(~private@user/pickchea)
2022-07-01 23:01:37 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-07-01 23:02:17 +0200 <monochrom> Apart from the jargon "Hindley-Milner" it just says "just do the usual thing plus the obvious addition".
2022-07-01 23:02:38 +0200 <ARJ0019> ill have to check it out. Im a mech engineer, so I dont know the real details invloved. on my way to CSSE soon
2022-07-01 23:02:52 +0200son0p(~ff@181.136.122.143) (Remote host closed the connection)
2022-07-01 23:03:01 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Quit: left)
2022-07-01 23:03:13 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net)
2022-07-01 23:04:26 +0200 <dolio> I think it's technically lying, too.
2022-07-01 23:05:27 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 260 seconds)
2022-07-01 23:05:29 +0200 <ARJ0019> dolio: claims like that benefit from an explanation
2022-07-01 23:05:50 +0200 <dolio> It's not actually possible to infer the principal type of all functions in Haskell.
2022-07-01 23:06:16 +0200 <dolio> Or, maybe it is, but unusual.
2022-07-01 23:06:41 +0200 <ARJ0019> what kind of functions fit into that exclusion?
2022-07-01 23:07:01 +0200 <dolio> Section 4.4.2 gives an example. It involves polymorphic recursion.
2022-07-01 23:07:49 +0200 <dolio> In those situations, you need to give it a signature so it can verify the principal type.
2022-07-01 23:08:27 +0200 <dolio> Oh, 4.4.1, I mean.
2022-07-01 23:08:46 +0200 <monochrom> It may go deeper or worse. The original "Hindley-Milner" did not accomodate type sigs/annotations in the first place.
2022-07-01 23:09:18 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-07-01 23:09:42 +0200 <monochrom> Although, once again, every PLT researcher knows the necessary modification, so it's fine.
2022-07-01 23:09:48 +0200 <monochrom> or, "fine" :)
2022-07-01 23:10:41 +0200 <dolio> Section 4.5 goes into a little more detail, too.
2022-07-01 23:11:00 +0200 <ARJ0019> so this is only relevant where type inference is implemented?
2022-07-01 23:11:20 +0200 <dolio> The report says types can be inferred most of the time.
2022-07-01 23:11:25 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 23:11:43 +0200 <Pickchea> Hey, what are you guys talking about? It sounds very interesting.
2022-07-01 23:12:06 +0200 <ARJ0019> lies contained in the haskell report...
2022-07-01 23:12:12 +0200 <monochrom> How Haskell's type system is more folklore than documented :)
2022-07-01 23:12:21 +0200pseigo(~pseigo@d108-173-20-33.abhsia.telus.net) (Ping timeout: 246 seconds)
2022-07-01 23:12:33 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-01 23:12:43 +0200 <monochrom> (Is it OK if I invent the word "folklored"? :) )
2022-07-01 23:12:49 +0200 <dolio> Anyhow, as was mentioned, people with the background to implement Haskell would know the details, and probably not be confused by the sloppy description.
2022-07-01 23:13:42 +0200 <ARJ0019> +1 for "folklored". add it to the server dictionary
2022-07-01 23:14:11 +0200 <maerwald> dolio: that sounds like a tautology
2022-07-01 23:14:42 +0200 <geekosaur> that was precisely monochrom's point
2022-07-01 23:15:06 +0200 <monochrom> Wait, it was? :)
2022-07-01 23:15:21 +0200 <geekosaur> seemed like it to me
2022-07-01 23:15:31 +0200 <geekosaur> [01 21:01:11] <monochrom> On type checking, it's just one plain-English sentence that everyone understands.
2022-07-01 23:15:31 +0200 <geekosaur> [01 21:01:19] <monochrom> Precisely because it says nothing
2022-07-01 23:15:59 +0200 <monochrom> That one just explains why every beginner would understand that part of the Report. :)
2022-07-01 23:15:59 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-07-01 23:16:15 +0200ARJ0019(~arj0019@162.218.254.7) (Quit: Leaving)
2022-07-01 23:16:56 +0200 <geekosaur> I hash "tautology" and "says nothing" to the same bin 🙂
2022-07-01 23:17:32 +0200 <monochrom> Also a backstab at the notions of plain English, layperson understanding, all those "virtues".
2022-07-01 23:18:15 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-07-01 23:18:31 +0200 <monochrom> Ah yeah but there are two ways to say nothing. The less worse kind is tautology. The more worse kind is "not even wrong" e.g. infallible.
2022-07-01 23:23:35 +0200 <yin> i cant for the life of me find out why my output starts with "Up to date\n"
2022-07-01 23:23:43 +0200 <yin> is this a cabal thing?
2022-07-01 23:23:45 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-01 23:23:49 +0200 <geekosaur> that's cabal being noisy. pass -v0
2022-07-01 23:24:03 +0200 <yin> annoying as hell
2022-07-01 23:24:04 +0200noteness(~noteness@user/noteness)
2022-07-01 23:24:15 +0200 <monochrom> Yes it is a cabal thing.
2022-07-01 23:24:37 +0200pleo(~pleo@user/pleo) (Quit: quit)
2022-07-01 23:25:24 +0200 <monochrom> But "up to date" tries to report that it doesn't have to rebuild anything.
2022-07-01 23:25:43 +0200 <geekosaur> alias R='cabal v2-run --verbose=0'
2022-07-01 23:25:51 +0200 <geekosaur> from one of my own projects
2022-07-01 23:26:09 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-07-01 23:27:10 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-07-01 23:27:41 +0200Vajb(~Vajb@2001:999:485:209:bc32:5580:b7a6:e68b)
2022-07-01 23:27:43 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
2022-07-01 23:28:54 +0200zebrag(~chris@user/zebrag) (Ping timeout: 264 seconds)
2022-07-01 23:32:19 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-07-01 23:32:36 +0200nate4(~nate@98.45.169.16)
2022-07-01 23:33:15 +0200mima(~mmh@aftr-62-216-210-244.dynamic.mnet-online.de)
2022-07-01 23:33:53 +0200jakalx(~jakalx@base.jakalx.net)
2022-07-01 23:34:26 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-07-01 23:37:31 +0200nate4(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2022-07-01 23:43:11 +0200acidjnk_new(~acidjnk@dynamic-046-114-174-231.46.114.pool.telefonica.de) (Ping timeout: 256 seconds)
2022-07-01 23:43:30 +0200Pickchea(~private@user/pickchea) (Ping timeout: 246 seconds)
2022-07-01 23:43:38 +0200chslt^(~chslt@128-092-179-067.biz.spectrum.com)
2022-07-01 23:47:12 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net)
2022-07-01 23:51:34 +0200dsp(~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
2022-07-01 23:51:46 +0200yauhsien(~yauhsien@61-231-22-150.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-07-01 23:52:45 +0200pleo(~pleo@user/pleo)
2022-07-01 23:54:40 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)