2020/10/28

2020-10-28 00:00:24 +0100 <koz_> Although in retrospect, I think I've hit a false cognate (krysos versus kristos).
2020-10-28 00:01:16 +0100 <mort> re: the evince thing; just ask for sqrt(n) copies to get n copies
2020-10-28 00:01:29 +0100 <koz_> mort: I want 3 copies, wat do.
2020-10-28 00:01:47 +0100 <Axman6> ask for one and one and one
2020-10-28 00:01:58 +0100 <Rembane> Ask for sqrt 3 copies. *nods*
2020-10-28 00:02:00 +0100 <koz_> Axman6: Unary counting, always good.
2020-10-28 00:02:09 +0100 <mort> just print 1.7320508075688772 copies, yeah
2020-10-28 00:02:23 +0100 <Rembane> "Noch einmal, bitte."
2020-10-28 00:02:34 +0100 <Axman6> assume you'll fuck one up and ask for 2 copies
2020-10-28 00:03:51 +0100 <Rembane> I have this book on folding paper planes, so I always become happy when the printer prints too many pages. You should get a book on paper planes too.
2020-10-28 00:06:21 +0100 <MarcelineVQ> why would you fold a paper plane
2020-10-28 00:06:28 +0100jathan(~jathan@69.61.93.38)
2020-10-28 00:06:36 +0100 <MarcelineVQ> it won't fly at all!
2020-10-28 00:06:50 +0100 <koz_> MarcelineVQ: inb4 samsung joke
2020-10-28 00:07:01 +0100 <hpc> if you fold paper, is it still a plane?
2020-10-28 00:07:36 +0100 <MarcelineVQ> how can folding be real if our planes aren't real
2020-10-28 00:07:53 +0100nek0(~nek0@2a01:4f8:222:2b41::12) (Quit: ZNC 1.8.1 - https://znc.in)
2020-10-28 00:07:53 +0100hekkaidekapus_hekkaidekapus
2020-10-28 00:07:58 +0100 <Rembane> If you put a mark on the paper it can easily become a catastrophy when folded
2020-10-28 00:08:11 +0100 <Rembane> MarcelineVQ: Fold along one dimension
2020-10-28 00:08:26 +0100 <MarcelineVQ> I saw a movie about that one time
2020-10-28 00:08:36 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-10-28 00:08:37 +0100 <mort> I mean with the "every number can be written as a sum of four squares" thing, any number N of pages can be printed with O(1) print instructions, it's not even that bad
2020-10-28 00:08:43 +0100 <MarcelineVQ> some guy lost his eyes and morpheus had to beat him up
2020-10-28 00:08:53 +0100christo(~chris@81.96.113.213)
2020-10-28 00:09:06 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-28 00:09:07 +0100 <Rembane> Sounds like Minority Report
2020-10-28 00:09:31 +0100 <MarcelineVQ> the majority of people who see it enjoy it
2020-10-28 00:09:49 +0100mimi_vx(~mimi@tulipan.habr.nat.praha12.net) (Ping timeout: 264 seconds)
2020-10-28 00:10:53 +0100nek0(~nek0@2a01:4f8:222:2b41::12)
2020-10-28 00:11:15 +0100 <hekkaidekapus> Come on people, you can’t let a Latin/Greek conversation end without asking mort: ”Ets tu mort?” and requiring mort to think in French.
2020-10-28 00:11:16 +0100Varis(~Tadas@unaffiliated/varis)
2020-10-28 00:11:28 +0100hackageaura 3.2.1 - A secure package manager for Arch Linux and the AUR. https://hackage.haskell.org/package/aura-3.2.1 (fosskers)
2020-10-28 00:11:45 +0100 <koz_> hekkaidekapus: Not all are so linguistically graced.
2020-10-28 00:11:59 +0100 <hekkaidekapus> :)
2020-10-28 00:12:12 +0100 <koz_> We can't all insist that it's actually 'la COVID-19'.
2020-10-28 00:12:23 +0100 <mort> pardon, mais mon français n'est pas bonne
2020-10-28 00:12:38 +0100 <hekkaidekapus> :D
2020-10-28 00:13:02 +0100 <mort> mon français est mort
2020-10-28 00:13:35 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-10-28 00:13:45 +0100tolt_tolt
2020-10-28 00:13:54 +0100 <hekkaidekapus> At least we have dead-k :D
2020-10-28 00:14:13 +0100 <mort> it's a bit sad, the "feel" for the language is there but the vocabulary isn't
2020-10-28 00:14:18 +0100christo(~chris@81.96.113.213)
2020-10-28 00:14:33 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-10-28 00:14:39 +0100 <Rembane> Are linguistics some kind of human eating bovine?
2020-10-28 00:14:49 +0100 <mort> probably?
2020-10-28 00:15:23 +0100 <Axman6> it's called linguineistics if it's from Italy though
2020-10-28 00:15:24 +0100 <mort> not sure if it has to be a bovine precisely
2020-10-28 00:15:59 +0100Varis(~Tadas@unaffiliated/varis)
2020-10-28 00:16:04 +0100 <Rembane> Tasty!
2020-10-28 00:18:06 +0100 <koz_> mort: Vocabulary is hard.
2020-10-28 00:18:50 +0100LKoen(~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-10-28 00:18:55 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-10-28 00:19:01 +0100 <mort> yes
2020-10-28 00:19:34 +0100ericsagn1(~ericsagne@2405:6580:0:5100:2ef5:ab40:91d2:d4c8)
2020-10-28 00:20:12 +0100nek0(~nek0@2a01:4f8:222:2b41::12) (Quit: ZNC 1.8.1 - https://znc.in)
2020-10-28 00:21:48 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 00:22:00 +0100teardown(~user@gateway/tor-sasl/mrush)
2020-10-28 00:22:12 +0100ericsagnes(~ericsagne@2405:6580:0:5100:dc8a:5173:1db7:7a54) (Ping timeout: 260 seconds)
2020-10-28 00:23:51 +0100Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-10-28 00:25:07 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-10-28 00:26:32 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-28 00:28:06 +0100Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.9)
2020-10-28 00:30:04 +0100christo(~chris@81.96.113.213)
2020-10-28 00:34:43 +0100 <koz_> :t foldM
2020-10-28 00:34:45 +0100 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
2020-10-28 00:34:46 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-28 00:35:00 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-28 00:35:10 +0100mimi_vx(~mimi@2a01:490:16:1026:9954:a30:869a:297e)
2020-10-28 00:35:18 +0100mmohammadi9812(~mmohammad@5.238.178.31) (Ping timeout: 260 seconds)
2020-10-28 00:35:55 +0100obihann(~jhann@156.34.160.69) (Ping timeout: 256 seconds)
2020-10-28 00:37:47 +0100obihann(~jhann@156.34.160.69)
2020-10-28 00:40:58 +0100jedws(~jedws@101.184.193.144)
2020-10-28 00:41:38 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-10-28 00:42:43 +0100obihann(~jhann@156.34.160.69) (Ping timeout: 260 seconds)
2020-10-28 00:43:05 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2020-10-28 00:43:30 +0100 <Uniaika> 2~< koz_> Uniaika: We had a conversation on this topic already, I believe. :P // ah bloody hell I was persuaded it was
2020-10-28 00:43:37 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
2020-10-28 00:43:45 +0100dme2(~user@c-24-1-191-153.hsd1.il.comcast.net) (Ping timeout: 240 seconds)
2020-10-28 00:43:54 +0100 <Uniaika> lens functions do seem like a proper eDSL though
2020-10-28 00:44:05 +0100 <koz_> Not if you're textualizing then reading them back.
2020-10-28 00:44:20 +0100 <Axman6> lens is just just traverse with more steps, fight me
2020-10-28 00:44:29 +0100 <koz_> Repeat after me: as soon as your input is arbitrary text from outside, you have a compiler, not an eDSL.
2020-10-28 00:44:39 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-10-28 00:45:32 +0100 <Uniaika> as soon as my input is arbitrary text from outside, I have a compiler, not an eDSL
2020-10-28 00:48:59 +0100 <dmwitch> Seems like a category error.
2020-10-28 00:49:14 +0100 <dmwitch> As soon as your input is arbitrary text from outside, you have a DSL or GPL, not an eDSL.
2020-10-28 00:49:28 +0100 <koz_> dmwitch: That's a valid point.
2020-10-28 00:49:54 +0100 <koz_> Also, I get your name is meant to call to mind a spellcasting woman, but I see the food consisting of a filling with bread either side.
2020-10-28 00:50:32 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-10-28 00:50:49 +0100dmwitchsandmwitch
2020-10-28 00:50:56 +0100 <sandmwitch> ^_^
2020-10-28 00:50:58 +0100 <koz_> PERFECT
2020-10-28 00:51:00 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d)
2020-10-28 00:51:17 +0100 <sandmwitch> conclusion: sanch = bread
2020-10-28 00:51:39 +0100 <koz_> Two slices of, at that.
2020-10-28 00:53:44 +0100 <hekkaidekapus> lol :P Are Halloween times like this every year?
2020-10-28 00:54:06 +0100 <sandmwitch> This is the first year I've seen it. But I like it, and assign high probability to this becoming a tradition.
2020-10-28 00:54:58 +0100 <hekkaidekapus> It merits a proposal so that it’s enforced in all community medium/media.
2020-10-28 00:55:02 +0100 <sandmwitch> (Possibly related: people are turning to electronically-maintained relationships for their holiday celebrations more than usual this year.)
2020-10-28 00:55:33 +0100 <hekkaidekapus> That, too.
2020-10-28 00:55:56 +0100DigitalKiwi/nick WitchKiwi
2020-10-28 00:56:24 +0100 <DigitalKiwi> ya know what f it
2020-10-28 00:56:26 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-10-28 00:56:29 +0100DigitalKiwiWitchKiwi
2020-10-28 00:56:55 +0100hekkaidekapusrests my lungs :D
2020-10-28 00:58:36 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 258 seconds)
2020-10-28 00:59:51 +0100sandmwitchproposes DevilKiwi
2020-10-28 01:00:01 +0100Perlboy(~Perlboy@178.239.168.171) ()
2020-10-28 01:01:03 +0100 <sandmwitch> Another strong contender: DigitalKiwicked
2020-10-28 01:01:04 +0100 <WitchKiwi> i was thinking GhostKiwi
2020-10-28 01:01:29 +0100 <WitchKiwi> i love Wicked
2020-10-28 01:01:49 +0100 <WitchKiwi> DigitalKiWicked
2020-10-28 01:01:59 +0100 <WitchKiwi> fun fact: my gmail name is Ki Wi
2020-10-28 01:02:13 +0100 <sandmwitch> v. oriental
2020-10-28 01:02:16 +0100WitchKiwiDigitalKiWicked
2020-10-28 01:02:29 +0100 <DigitalKiWicked> quora banned me
2020-10-28 01:03:25 +0100banner(~banner@116-255-17-180.ip4.superloop.com)
2020-10-28 01:03:40 +0100 <DigitalKiWicked> kiwitch
2020-10-28 01:04:34 +0100 <DigitalKiWicked> "are you a bird or a fruit" "sandwich"
2020-10-28 01:04:54 +0100 <sandmwitch> I've only been banned from an online community once, and I couldn't even be upset about it because the message telling me why was just a link to this video: https://www.youtube.com/watch?v=p12coHOA51Q
2020-10-28 01:05:11 +0100 <sandmwitch> Still no idea what I did wrong. haha
2020-10-28 01:06:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-28 01:06:19 +0100 <Axman6> dat clipping
2020-10-28 01:06:49 +0100 <sandmwitch> it is the Flash way
2020-10-28 01:06:50 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2020-10-28 01:07:26 +0100 <Axman6> my DAC is wasted on this trash. but I would also not be mad if that's how I were banned
2020-10-28 01:08:36 +0100obihann(~jhann@156.34.160.69)
2020-10-28 01:08:55 +0100hekkaidekapusthanks sandmwitch for being literally kicked out of the room. I sweared I’d behave but it has been many consecutives minutes of loud giggles…
2020-10-28 01:09:34 +0100 <DigitalKiWicked> Quora
2020-10-28 01:09:34 +0100 <DigitalKiWicked> Quora Moderation flagged your profile as not conforming to Quora's Real Name Policy.
2020-10-28 01:09:34 +0100 <DigitalKiWicked> Quora Moderation blocked you from editing on Quora for this reason:
2020-10-28 01:09:34 +0100 <DigitalKiWicked> Blocked from editing due to an unverified name. For more information, see Quora's policy on using real names: https://www.quora.com/Do-I-have-....
2020-10-28 01:09:35 +0100 <DigitalKiWicked> You will not be able to add questions or write answers at this time.
2020-10-28 01:11:06 +0100 <DigitalKiWicked> guess they don't want my free labor
2020-10-28 01:11:18 +0100 <Rembane> DigitalKiWicked: So you had a so awesome name that you got blocked?
2020-10-28 01:11:47 +0100dme2(~user@c-24-1-191-153.hsd1.il.comcast.net)
2020-10-28 01:13:07 +0100ransom(~c4264035@2601:285:201:6720:a129:4845:9b41:4504) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 01:13:45 +0100obihann(~jhann@156.34.160.69) (Ping timeout: 240 seconds)
2020-10-28 01:14:38 +0100polyrain(~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e)
2020-10-28 01:16:56 +0100macrover(~macrover@ip70-189-231-35.lv.lv.cox.net) (Remote host closed the connection)
2020-10-28 01:20:20 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-28 01:21:22 +0100mmohammadi9812(~mmohammad@2.178.146.18)
2020-10-28 01:21:54 +0100fabianhjr(~fabian@2806:106e:18:31bb:bd1c:28a6:e7cb:6de1)
2020-10-28 01:21:54 +0100fabianhjr(~fabian@2806:106e:18:31bb:bd1c:28a6:e7cb:6de1) (Remote host closed the connection)
2020-10-28 01:23:24 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 240 seconds)
2020-10-28 01:25:53 +0100polyrain_(~polyrain@58.161.83.164)
2020-10-28 01:27:44 +0100polyrain(~polyrain@2001:8003:e501:6901:caf:e594:a7fb:67e) (Ping timeout: 240 seconds)
2020-10-28 01:31:44 +0100fendor_(~fendor@91.141.3.89.wireless.dyn.drei.com)
2020-10-28 01:33:01 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-28 01:33:09 +0100cylon007(~user@64.119.200.11)
2020-10-28 01:33:24 +0100 <cylon007> /?
2020-10-28 01:33:39 +0100 <sandmwitch> /!
2020-10-28 01:34:08 +0100fendor(~fendor@91.141.2.36.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
2020-10-28 01:34:34 +0100conal(~conal@64.71.133.70)
2020-10-28 01:34:39 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-10-28 01:34:55 +0100shatriff(~vitaliish@176.52.219.10)
2020-10-28 01:35:28 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-10-28 01:35:47 +0100dme2(~user@c-24-1-191-153.hsd1.il.comcast.net) (Ping timeout: 258 seconds)
2020-10-28 01:35:47 +0100shatriff(~vitaliish@176.52.219.10)
2020-10-28 01:36:01 +0100cylon007(~user@64.119.200.11) (Client Quit)
2020-10-28 01:36:05 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2020-10-28 01:36:05 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-10-28 01:36:16 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-10-28 01:36:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 01:36:38 +0100shatriff(~vitaliish@176.52.219.10)
2020-10-28 01:37:04 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-10-28 01:37:19 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-28 01:37:22 +0100shatriff(~vitaliish@176.52.219.10)
2020-10-28 01:37:53 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-10-28 01:38:49 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-10-28 01:41:16 +0100Bill--Door(550112fd@253.18.1.85.dynamic.wline.res.cust.swisscom.ch)
2020-10-28 01:41:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-28 01:43:35 +0100nek0(~nek0@mail.nek0.eu)
2020-10-28 01:44:40 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Read error: Connection reset by peer)
2020-10-28 01:45:10 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-10-28 01:48:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-10-28 01:49:21 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-28 01:52:23 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
2020-10-28 01:52:45 +0100Lord_of_Life_(~Lord@46.217.221.241)
2020-10-28 01:53:23 +0100nuncanada(~dude@179.235.160.168) (Read error: Connection reset by peer)
2020-10-28 01:54:41 +0100igustin(~igustin@185.204.1.185)
2020-10-28 01:54:48 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 265 seconds)
2020-10-28 01:55:00 +0100jrm(~jrm@freebsd/developer/jrm) (Quit: ciao)
2020-10-28 01:55:56 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
2020-10-28 01:56:50 +0100jrm(~jrm@freebsd/developer/jrm)
2020-10-28 01:58:26 +0100deftly(~user@209.58.189.165)
2020-10-28 01:58:26 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-10-28 02:00:42 +0100mbomba(~mbomba@142.114.9.241) (Ping timeout: 256 seconds)
2020-10-28 02:01:14 +0100christo(~chris@81.96.113.213)
2020-10-28 02:03:36 +0100conal(~conal@64.71.133.70)
2020-10-28 02:04:02 +0100banner(~banner@116-255-17-180.ip4.superloop.com) (Quit: Leaving)
2020-10-28 02:04:40 +0100Madars(~null@unaffiliated/madars) (Ping timeout: 256 seconds)
2020-10-28 02:07:37 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 246 seconds)
2020-10-28 02:07:47 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d) (Ping timeout: 260 seconds)
2020-10-28 02:08:10 +0100Madars(~null@unaffiliated/madars)
2020-10-28 02:09:13 +0100dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds)
2020-10-28 02:09:40 +0100blissful(~azuline@unaffiliated/azuline) (Quit: The Lounge - https://thelounge.chat)
2020-10-28 02:13:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 02:14:29 +0100plutoniix(~q@175.176.222.7)
2020-10-28 02:15:04 +0100Lord_of_Life_(~Lord@46.217.221.241) (Ping timeout: 240 seconds)
2020-10-28 02:17:37 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds)
2020-10-28 02:18:39 +0100Lord_of_Life(~Lord@46.217.221.153)
2020-10-28 02:19:40 +0100Amras(~Amras@unaffiliated/amras0000)
2020-10-28 02:23:22 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 02:23:54 +0100nuncanada(~dude@179.235.160.168)
2020-10-28 02:26:19 +0100m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds)
2020-10-28 02:27:06 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat)
2020-10-28 02:31:44 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 02:34:57 +0100alp(~alp@2a01:e0a:58b:4920:95e9:ca1e:6b04:cf54) (Ping timeout: 272 seconds)
2020-10-28 02:36:03 +0100darjeeling_(~darjeelin@115.215.42.47) (Ping timeout: 260 seconds)
2020-10-28 02:38:34 +0100jle`(~mstksg@unaffiliated/mstksg)
2020-10-28 02:39:16 +0100RecursiveG(~recursive@li810-210.members.linode.com)
2020-10-28 02:40:01 +0100RecursiveG(~recursive@li810-210.members.linode.com) (Client Quit)
2020-10-28 02:40:08 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-10-28 02:40:40 +0100avoandmayo(~textual@122-58-158-238-adsl.sparkbb.co.nz)
2020-10-28 02:42:35 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Quit: Leaving)
2020-10-28 02:42:38 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
2020-10-28 02:44:15 +0100RecursiveG(~recursive@li810-210.members.linode.com)
2020-10-28 02:45:29 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-10-28 02:45:53 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-28 02:47:12 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
2020-10-28 02:47:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-10-28 02:51:26 +0100polyrain_(~polyrain@58.161.83.164) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 02:51:41 +0100jbox(~atlas@unaffiliated/jbox)
2020-10-28 02:52:04 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-10-28 02:56:04 +0100firstlove(~firstlove@58.246.122.242) (Remote host closed the connection)
2020-10-28 02:58:17 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
2020-10-28 02:58:49 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-10-28 02:59:43 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-10-28 03:01:47 +0100GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
2020-10-28 03:01:48 +0100GyroW_(~GyroW@d54C03E98.access.telenet.be)
2020-10-28 03:01:48 +0100GyroW_(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-28 03:01:48 +0100GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-28 03:02:19 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 03:04:57 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-28 03:06:05 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 03:07:03 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
2020-10-28 03:08:43 +0100jlamothe(~jlamothe@198.251.55.207) (Ping timeout: 260 seconds)
2020-10-28 03:09:55 +0100obihann(~jhann@156.34.160.69)
2020-10-28 03:10:39 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-10-28 03:10:58 +0100st8less(~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Ping timeout: 246 seconds)
2020-10-28 03:11:10 +0100vacm(~vacwm@70.23.92.191)
2020-10-28 03:11:30 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-10-28 03:12:22 +0100oisdk(~oisdk@2001:bb6:3329:d100:4d5c:1d2c:a660:df1) (Quit: oisdk)
2020-10-28 03:12:22 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 03:14:44 +0100obihann(~jhann@156.34.160.69) (Ping timeout: 240 seconds)
2020-10-28 03:15:36 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
2020-10-28 03:18:54 +0100Chi1thangoo(~Chi1thang@87.112.60.168) (Ping timeout: 265 seconds)
2020-10-28 03:18:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 03:19:58 +0100hackageagda-unused 0.1.0 - Check for unused code in an Agda project. https://hackage.haskell.org/package/agda-unused-0.1.0 (msuperdock)
2020-10-28 03:23:24 +0100Bill--Door(550112fd@253.18.1.85.dynamic.wline.res.cust.swisscom.ch) (Remote host closed the connection)
2020-10-28 03:24:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-10-28 03:24:29 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-10-28 03:26:21 +0100darjeeling_(~darjeelin@112.16.171.8)
2020-10-28 03:26:56 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 03:26:56 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 03:26:56 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 03:27:45 +0100GyroW_(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-28 03:30:28 +0100hackagebarbies-th 0.1.7 - Create strippable HKD via TH https://hackage.haskell.org/package/barbies-th-0.1.7 (FumiakiKinoshita)
2020-10-28 03:31:25 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds)
2020-10-28 03:31:45 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 03:34:24 +0100darjeeling_(~darjeelin@112.16.171.8) (Ping timeout: 240 seconds)
2020-10-28 03:37:58 +0100mbomba(~mbomba@142.114.9.241)
2020-10-28 03:40:38 +0100toorevitimirp(~tooreviti@117.182.180.36)
2020-10-28 03:42:41 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-10-28 03:42:42 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-10-28 03:43:19 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-10-28 03:45:01 +0100jlamothe(~jlamothe@198.251.55.207)
2020-10-28 03:46:37 +0100acidjnk_new(~acidjnk@p200300d0c7237845ecd50ba376a38a54.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-28 03:51:24 +0100jakob_(~textual@p57b0eae0.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2020-10-28 03:52:41 +0100plutoniix(~q@175.176.222.7) (Quit: Leaving)
2020-10-28 03:53:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 03:57:12 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2020-10-28 03:58:53 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf) (Remote host closed the connection)
2020-10-28 03:59:27 +0100xff0x(~fox@2001:1a81:5219:2300:29ba:4988:f159:6286) (Ping timeout: 260 seconds)
2020-10-28 04:00:01 +0100igustin(~igustin@185.204.1.185) ()
2020-10-28 04:00:28 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf)
2020-10-28 04:01:17 +0100xff0x(~fox@2001:1a81:5251:7800:1dbd:1ac6:2640:4fc2)
2020-10-28 04:04:04 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2020-10-28 04:07:37 +0100mbomba(~mbomba@142.114.9.241) (Quit: WeeChat 2.9)
2020-10-28 04:09:24 +0100mbomba(~mbomba@142.114.9.241)
2020-10-28 04:10:42 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2020-10-28 04:12:51 +0100 <Kolkrabe> What are "strippable HKDs"? (I presume it has nothing to do with the currency of Hong Kong)
2020-10-28 04:13:03 +0100ech(~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds)
2020-10-28 04:13:18 +0100lagothrix(~lagothrix@unaffiliated/lagothrix) (Killed (tepper.freenode.net (Nickname regained by services)))
2020-10-28 04:13:18 +0100 <Axman6> higher kinded data
2020-10-28 04:13:23 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-10-28 04:14:17 +0100 <Axman6> I can't renenber what strippable means in this context, though it may be that when your functor is Identity there's no wrapping of the fields in identity (but maybe that was another package which did that)
2020-10-28 04:16:59 +0100 <Kolkrabe> Is it like wrapping fields of a datatype into another datatype?
2020-10-28 04:17:42 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
2020-10-28 04:17:56 +0100Orbstheorem(~roosember@hellendaal.orbstheorem.ch) (Quit: WeeChat 2.3)
2020-10-28 04:18:19 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 260 seconds)
2020-10-28 04:18:31 +0100 <Kolkrabe> I'm looking at the example at http://hackage.haskell.org/package/barbies-1.1.3.0/docs/Data-Barbie-Bare.html
2020-10-28 04:19:21 +0100 <Axman6> basically - instead of defining your types like Data Foo = Foo { foo :: Int, bar :: Bool } you use data Foo f = Foo {foo :: f Int, bar :: f Bool}. Then a lot of nice things fall out of doing that - Foo Identity is basically the original type, Foo (Const String) lets you associate a string with every field, Foo (Either String) might be the result of parsing a Foo where you can collect errors for each field, and if all fields were Rights you pa
2020-10-28 04:19:21 +0100 <Axman6> rsed it successfully
2020-10-28 04:20:53 +0100akad(~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 256 seconds)
2020-10-28 04:20:58 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-28 04:21:27 +0100solonarv(~solonarv@astrasbourg-653-1-117-122.w90-33.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2020-10-28 04:21:28 +0100 <Axman6> one really nice thing you can do is the transformation from Vector (Foo Identity) to Foo Vector - a.k.a the vector of structs to struct of vectors transformation
2020-10-28 04:22:12 +0100eruditass(uid248673@gateway/web/irccloud.com/x-upuflkjgqfommgrg) (Ping timeout: 260 seconds)
2020-10-28 04:22:12 +0100ReinH__(sid179972@gateway/web/irccloud.com/x-vgpjckyigmgjdwtk) (Ping timeout: 260 seconds)
2020-10-28 04:22:12 +0100rdivyanshu(sid322626@gateway/web/irccloud.com/x-otfoczynxqkuwcfm) (Ping timeout: 260 seconds)
2020-10-28 04:22:17 +0100plutoniix(~q@175.176.222.7)
2020-10-28 04:22:25 +0100alanz(sid110616@gateway/web/irccloud.com/x-hhuchzrtvkxyanvu) (Ping timeout: 240 seconds)
2020-10-28 04:22:28 +0100Cir0X(sid221743@gateway/web/irccloud.com/x-sfiedvvxkgjnutkr) (Read error: Connection reset by peer)
2020-10-28 04:22:29 +0100AndreasK(sid320732@gateway/web/irccloud.com/x-rxqfxdsbssdfwfxd) (Read error: Connection reset by peer)
2020-10-28 04:22:29 +0100bradparker(sid262931@gateway/web/irccloud.com/x-kzdpaybrmmwnrdgh) (Read error: Connection reset by peer)
2020-10-28 04:22:29 +0100joshmeredith(sid387798@gateway/web/irccloud.com/x-hdepxcnffbqdlwvu) (Read error: Connection reset by peer)
2020-10-28 04:22:30 +0100ebutleriv(sid217783@gateway/web/irccloud.com/x-cvawhvfjdshsscgr) (Read error: Connection reset by peer)
2020-10-28 04:22:30 +0100cvlad-(sid203065@gateway/web/irccloud.com/x-efqqsgkcshqvhkds) (Read error: Connection reset by peer)
2020-10-28 04:22:30 +0100banjiewen_(sid115913@gateway/web/irccloud.com/x-prbnvikrvoskgqwb) (Read error: Connection reset by peer)
2020-10-28 04:22:32 +0100jared-w(uid405292@gateway/web/irccloud.com/x-hoqehiufvhduodif) (Ping timeout: 260 seconds)
2020-10-28 04:22:32 +0100cemerick(sid54985@gateway/web/irccloud.com/x-gqtgtcmcxeexxtnf) (Ping timeout: 260 seconds)
2020-10-28 04:22:35 +0100natim87(sid286962@gateway/web/irccloud.com/x-ceyxlbqjhgkntuzg) (Read error: Connection reset by peer)
2020-10-28 04:22:35 +0100davetapley(sid666@gateway/web/irccloud.com/x-unkevmoregbjgeww) (Read error: Connection reset by peer)
2020-10-28 04:22:36 +0100benwr____(sid372383@gateway/web/irccloud.com/x-kvsrlvuwekbjywwv) (Read error: Connection reset by peer)
2020-10-28 04:22:36 +0100totbwf(sid402332@gateway/web/irccloud.com/x-ymdhjktodciveoos) (Read error: Connection reset by peer)
2020-10-28 04:22:43 +0100SrPx(sid108780@gateway/web/irccloud.com/x-bqucgfmlfmdjtbdg) (Read error: Connection reset by peer)
2020-10-28 04:22:53 +0100AndreasK(sid320732@gateway/web/irccloud.com/x-ktiwazcixhtnosgk)
2020-10-28 04:22:56 +0100ebutleriv(sid217783@gateway/web/irccloud.com/x-kvxiagmqenenwcwd)
2020-10-28 04:22:57 +0100benwr____(sid372383@gateway/web/irccloud.com/x-fpmmjvddoaxuhwfl)
2020-10-28 04:23:21 +0100SrPx(sid108780@gateway/web/irccloud.com/x-uslzvcburhozaynt)
2020-10-28 04:23:23 +0100davetapley(sid666@gateway/web/irccloud.com/x-robbsvqvrfwhlocr)
2020-10-28 04:23:24 +0100alanz(sid110616@gateway/web/irccloud.com/x-kaaptnygtinjlvts)
2020-10-28 04:23:29 +0100rdivyanshu(sid322626@gateway/web/irccloud.com/x-vijvgbwevjdmeabn)
2020-10-28 04:23:32 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-10-28 04:23:34 +0100bradparker(sid262931@gateway/web/irccloud.com/x-cpaqunedaxagfosc)
2020-10-28 04:23:37 +0100Cir0X(sid221743@gateway/web/irccloud.com/x-vbsqpqvnwnaxxlao)
2020-10-28 04:23:37 +0100joshmeredith(sid387798@gateway/web/irccloud.com/x-fahcpupvewgkoceh)
2020-10-28 04:23:37 +0100totbwf(sid402332@gateway/web/irccloud.com/x-sxpcryhpiyewihxs)
2020-10-28 04:23:39 +0100cvlad-(sid203065@gateway/web/irccloud.com/x-dghqjpkfmvjbucbi)
2020-10-28 04:23:39 +0100natim87(sid286962@gateway/web/irccloud.com/x-bwmegmbyiecjxmkz)
2020-10-28 04:23:41 +0100ReinH__(sid179972@gateway/web/irccloud.com/x-kynfnrknqktyblak)
2020-10-28 04:23:45 +0100banjiewen_(sid115913@gateway/web/irccloud.com/x-eopdvyfizptvmxgr)
2020-10-28 04:23:57 +0100lally(sid388228@gateway/web/irccloud.com/x-iepgjmxehrzuvipm) (Ping timeout: 260 seconds)
2020-10-28 04:23:57 +0100systemfault(sid267009@gateway/web/irccloud.com/x-htxicjxaklgtpnib) (Ping timeout: 260 seconds)
2020-10-28 04:24:02 +0100cemerick(sid54985@gateway/web/irccloud.com/x-syfoeolkqemrbwow)
2020-10-28 04:24:51 +0100lally(sid388228@gateway/web/irccloud.com/x-vliwvdsdwmscsdor)
2020-10-28 04:25:01 +0100systemfault(sid267009@gateway/web/irccloud.com/x-cuwcujscdtdsdgqf)
2020-10-28 04:25:06 +0100jared-w(uid405292@gateway/web/irccloud.com/x-hjvulmngvzyqxsmb)
2020-10-28 04:25:11 +0100eruditass(uid248673@gateway/web/irccloud.com/x-fakbfhwrqsthhqfr)
2020-10-28 04:25:42 +0100 <Kolkrabe> Axman6: I see, thanks. Would be also useful for parse trees where you want to have different trees with source position information attached or not
2020-10-28 04:25:51 +0100christo(~chris@81.96.113.213)
2020-10-28 04:27:35 +0100petersen(~petersen@redhat/juhp)
2020-10-28 04:28:51 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 04:29:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-10-28 04:30:07 +0100djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds)
2020-10-28 04:30:27 +0100ddellacosta(~dd@86.106.121.168) (Ping timeout: 260 seconds)
2020-10-28 04:30:58 +0100christo(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2020-10-28 04:31:00 +0100bartemius(~bartemius@109.252.20.20)
2020-10-28 04:33:04 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 04:34:11 +0100theDon(~td@muedsl-82-207-238-193.citykom.de) (Ping timeout: 260 seconds)
2020-10-28 04:35:05 +0100bartemius(~bartemius@109.252.20.20) (Ping timeout: 240 seconds)
2020-10-28 04:35:49 +0100theDon(~td@muedsl-82-207-238-123.citykom.de)
2020-10-28 04:40:12 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 04:43:32 +0100 <koz_> Kolkrabe: Yeah, it can be used for that too.
2020-10-28 04:43:48 +0100 <koz_> HKD does have some downsides though.
2020-10-28 04:47:21 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-10-28 04:48:32 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 04:52:40 +0100lucasb(uid333435@gateway/web/irccloud.com/x-qizvrgxqojerddcd) (Quit: Connection closed for inactivity)
2020-10-28 04:53:35 +0100scf-1(~scf-1@84.39.116.180)
2020-10-28 04:56:46 +0100Orbstheorem(~roosember@hellendaal.orbstheorem.ch)
2020-10-28 04:56:48 +0100 <Orbstheorem> #nixos
2020-10-28 04:57:16 +0100 <Orbstheorem> (sorry for the noise)
2020-10-28 04:57:31 +0100mbomba(~mbomba@142.114.9.241) (Quit: WeeChat 2.9)
2020-10-28 04:58:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 04:59:33 +0100jedws(~jedws@101.184.193.144) (Remote host closed the connection)
2020-10-28 04:59:44 +0100mmohammadi9812(~mmohammad@2.178.146.18) (Quit: Quit)
2020-10-28 05:00:00 +0100mmohammadi9812(~mmohammad@2.178.146.18)
2020-10-28 05:00:17 +0100jedws(~jedws@101.184.193.144)
2020-10-28 05:00:26 +0100Rudd0(~Rudd0@185.189.115.108)
2020-10-28 05:00:39 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2020-10-28 05:01:15 +0100ystael(~ystael@209.6.50.55) (Ping timeout: 260 seconds)
2020-10-28 05:01:19 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
2020-10-28 05:01:39 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
2020-10-28 05:03:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-10-28 05:05:16 +0100falafel(~falafel@71-34-132-121.clsp.qwest.net)
2020-10-28 05:06:34 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
2020-10-28 05:06:38 +0100jbox(~atlas@unaffiliated/jbox) ("WeeChat 2.9")
2020-10-28 05:07:02 +0100GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-28 05:07:20 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 05:07:20 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 05:07:20 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 05:07:38 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
2020-10-28 05:10:04 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2020-10-28 05:11:05 +0100obihann(~jhann@156.34.160.69)
2020-10-28 05:14:24 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds)
2020-10-28 05:15:15 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
2020-10-28 05:15:37 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
2020-10-28 05:15:53 +0100obihann(~jhann@156.34.160.69) (Ping timeout: 260 seconds)
2020-10-28 05:16:23 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-10-28 05:18:58 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-10-28 05:20:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 05:23:36 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Read error: Connection reset by peer)
2020-10-28 05:24:07 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-10-28 05:25:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-10-28 05:34:22 +0100plutoniix(~q@175.176.222.7) (Quit: Leaving)
2020-10-28 05:37:05 +0100zebrag(~inkbottle@aaubervilliers-654-1-111-120.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-10-28 05:37:07 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 05:37:25 +0100FreeBird_(~freebirdl@101.228.42.108) (Remote host closed the connection)
2020-10-28 05:38:30 +0100shatriff(~vitaliish@176.52.219.10)
2020-10-28 05:39:32 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-10-28 05:39:39 +0100jedws(~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 05:39:58 +0100zebrag(~inkbottle@aaubervilliers-654-1-111-120.w86-198.abo.wanadoo.fr)
2020-10-28 05:43:35 +0100crestfallen(~jvw@135-180-15-188.fiber.dynamic.sonic.net)
2020-10-28 05:43:52 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
2020-10-28 05:44:40 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
2020-10-28 05:47:26 +0100 <crestfallen> http://ix.io/2CfR hi the ghci session I have commented out at the bottom of this paste gave unexpected results. how did the zero in (Just 0) end up in the tree? thamks
2020-10-28 05:48:37 +0100 <sandmwitch> Well... I mean, -5 is not > 0, so
2020-10-28 05:49:01 +0100 <koz_> Yeah, pretty much exactly this.
2020-10-28 05:49:24 +0100 <crestfallen> (aa was originally : aa x = if even x then Just (div x 2) else Nothing )
2020-10-28 05:49:42 +0100 <crestfallen> so with Nothing it fails, I see that
2020-10-28 05:50:21 +0100 <crestfallen> But I thought that if anything fails the predicate then I would have Just 0 returned
2020-10-28 05:51:08 +0100 <sandmwitch> What does "if anything fails the predicate then I would have Just 0 returned" mean?
2020-10-28 05:51:26 +0100 <sandmwitch> Are you saying that you expect that `trevarse aa foo = Just 0` whenever there is a negative number somewhere in `foo`?
2020-10-28 05:51:36 +0100 <sandmwitch> If so, why do you expect that?
2020-10-28 05:51:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 05:51:45 +0100 <sandmwitch> (trevarse -> traverse, obviously)
2020-10-28 05:52:45 +0100 <crestfallen> so if we used this func, and gave it the list [2,4,6] we'd have Just [1,2,3]
2020-10-28 05:53:34 +0100 <crestfallen> so every member of the list needs to be even. but the other function I figured would return (Just 0)
2020-10-28 05:56:28 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 265 seconds)
2020-10-28 05:56:42 +0100 <sandmwitch> Why did you figure that, though?
2020-10-28 05:57:08 +0100GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-28 05:57:16 +0100falafel(~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 260 seconds)
2020-10-28 05:57:18 +0100GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-28 05:57:18 +0100GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-28 05:57:18 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 05:57:46 +0100fraktor(~walt@129.93.191.18) (Quit: WeeChat 2.8)
2020-10-28 05:58:08 +0100mmohammadi9812(~mmohammad@2.178.146.18) (Ping timeout: 256 seconds)
2020-10-28 05:58:37 +0100bartemius(~bartemius@109-252-20-20.nat.spd-mgts.ru)
2020-10-28 05:59:13 +0100 <crestfallen> because whatever goes after the else clause would be returned as (Just 0) ; I didn't expect 0 to be integrated into (Con 0) like that. weird
2020-10-28 05:59:46 +0100 <sandmwitch> The then/else divide is not special. The Just/Nothing divide is special.
2020-10-28 05:59:55 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 06:00:22 +0100mmohammadi9812(~mmohammad@2.178.187.147)
2020-10-28 06:00:29 +0100 <sandmwitch> (And the *reason* it is special is because the Applicative instance for Maybe does different things depending on whether it sees Just or Nothing.)
2020-10-28 06:01:15 +0100 <crestfallen> sandmwitch: thanks not sure I see exactly what's happening
2020-10-28 06:02:18 +0100 <crestfallen> I thought Just 0 would be a return value
2020-10-28 06:02:41 +0100Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-10-28 06:04:26 +0100 <koz_> :t traverse
2020-10-28 06:04:27 +0100 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2020-10-28 06:04:33 +0100 <koz_> Note what happens to the 'f'.
2020-10-28 06:05:47 +0100Tario(~Tario@201.192.165.173)
2020-10-28 06:05:59 +0100 <crestfallen> in the return? : f (t b) koz_
2020-10-28 06:06:30 +0100 <koz_> crestfallen: Yeah, exactly. That's what makes 'traverse' what it is. Now, notice where that 'f' is in the function argument to traverse.
2020-10-28 06:06:39 +0100 <koz_> Now, look at your situation - what is 'f' in your case.
2020-10-28 06:06:43 +0100 <koz_> Take. Due. Care.
2020-10-28 06:07:47 +0100 <crestfallen> f is Maybe.. in this case Just
2020-10-28 06:08:06 +0100 <koz_> The first was right, then you sank yourself. Again, please do not confuse the value level and the type level.
2020-10-28 06:08:11 +0100tdhttt(~tdhttt@static-198-54-131-149.cust.tzulo.com)
2020-10-28 06:08:24 +0100 <crestfallen> hold on
2020-10-28 06:08:26 +0100 <koz_> So therefore, given your 'aa', you'll _always_ end up with Just [some tree inside].
2020-10-28 06:08:47 +0100 <koz_> Because no matter which branch you take, you'll get a Just.
2020-10-28 06:08:47 +0100christo(~chris@81.96.113.213)
2020-10-28 06:09:07 +0100 <koz_> And since in your case, f ~ Maybe, the expected result is 'Maybe (Tree Int)'.
2020-10-28 06:09:11 +0100 <koz_> Which is exactly what you're seeing.
2020-10-28 06:09:20 +0100 <koz_> s/result/result type/
2020-10-28 06:10:07 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-10-28 06:10:48 +0100 <crestfallen> ...
2020-10-28 06:15:09 +0100 <crestfallen> so koz_ that behavior is interesting. it seems like the logic in the if / then statement has changed. (Just 0) is feeding the value to the rhs branch : (Con 0). trying to wrap my head around that
2020-10-28 06:15:36 +0100 <koz_> No, the logic in the if-then-else hasn't 'changed', whatever that means.
2020-10-28 06:15:47 +0100 <koz_> Look at your definition of 'traverse'.
2020-10-28 06:15:54 +0100 <koz_> (for your Tree type).
2020-10-28 06:16:00 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 258 seconds)
2020-10-28 06:16:08 +0100xxxzzzqqaa`(3dded63f@61-222-214-63.HINET-IP.hinet.net)
2020-10-28 06:16:29 +0100 <koz_> That behaviour _is_ interesting, but the if-then-else you have there is literally the least interesting part of it.
2020-10-28 06:16:35 +0100 <koz_> It's all about the traverse definition.
2020-10-28 06:16:53 +0100 <crestfallen> what I meant was ... else Nothing changes the logic
2020-10-28 06:17:00 +0100 <koz_> It does.
2020-10-28 06:17:10 +0100 <koz_> And that's because of _the traverse definition_.
2020-10-28 06:17:16 +0100 <koz_> I cannot stress enough just how much it matters.
2020-10-28 06:17:31 +0100 <Axman6> returning Nothing anywhere from the function passed to traverse causes the result to be Nothing, since that's what the applicative instance for Nothing requires
2020-10-28 06:17:34 +0100 <Axman6> uh, for Maybe
2020-10-28 06:18:14 +0100 <crestfallen> right. let me re-paste one sec
2020-10-28 06:18:14 +0100 <koz_> Axman6: Well, assuming it's not conditional on the values 'in' the Traversable somehow.
2020-10-28 06:18:17 +0100xerox_(~xerox@unaffiliated/xerox)
2020-10-28 06:18:20 +0100 <Axman6> iun traverse fn (Con a) = Con <$> (fn a), if fn returns Nothing, then the Con being fmapped over that Nothing still gives you as Nothing
2020-10-28 06:18:42 +0100 <Axman6> @src Functor @Maybe
2020-10-28 06:18:42 +0100 <lambdabot> Source not found. Do you think like you type?
2020-10-28 06:19:13 +0100 <koz_> Sassy lambdabot.
2020-10-28 06:19:42 +0100 <crestfallen> sorry just to keep a reference http://ix.io/2CfX
2020-10-28 06:19:50 +0100 <Axman6> fmap f (Just a) = Just (f a); fmap _ Nothing = Nothing
2020-10-28 06:22:18 +0100notzmv(~user@unaffiliated/zmv)
2020-10-28 06:23:35 +0100 <crestfallen> so the first Just in aa is the constructor for Maybe Tree a. the second Just : else (Just 0) is actually being fmapped over
2020-10-28 06:23:41 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 06:23:46 +0100day_(~Unknown@unaffiliated/day)
2020-10-28 06:25:06 +0100 <crestfallen> Axman6: am I correct?
2020-10-28 06:25:19 +0100 <Axman6> I don't think so, you seem very confused
2020-10-28 06:26:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-10-28 06:26:45 +0100day(~Unknown@unaffiliated/day) (Ping timeout: 240 seconds)
2020-10-28 06:26:45 +0100day_day
2020-10-28 06:27:16 +0100 <Axman6> I think you need to step through this line by line: traverse bb (Add (Add (Con 3) (Con 4)) (Con (-5))) ==> Add <$> traverse bb (Add (Con 3) (Con 4)) <*> (Con (-5)) ==> ???
2020-10-28 06:27:46 +0100 <crestfallen> Axman6: no I get it. in aa there is no failure at all. so (Con a) on the right hand branch is going to take the 0.
2020-10-28 06:27:49 +0100 <Axman6> just keep substituting the definitions for traverse, once you have none left, substitute in the definition for bb, in the Con 9 case
2020-10-28 06:27:58 +0100 <dminuoso> TIL, operator dont have to be functions. :>
2020-10-28 06:28:11 +0100 <dminuoso> % (.>>) = ">>"
2020-10-28 06:28:12 +0100 <yahb> dminuoso:
2020-10-28 06:28:26 +0100 <Axman6> % :t (%)
2020-10-28 06:28:26 +0100 <yahb> Axman6: Integral a => a -> a -> Ratio a
2020-10-28 06:28:34 +0100 <Axman6> % :t (.>>)
2020-10-28 06:28:34 +0100 <yahb> Axman6: [Char]
2020-10-28 06:28:52 +0100 <koz_> Oh wow, TIL indeed.
2020-10-28 06:29:11 +0100 <Axman6> crestfallen: I would _strongly_ recommend you go the evaluation by hand I suggested above
2020-10-28 06:29:25 +0100 <dminuoso> Im using this in a code generator with haskell-src-exts, such that I can do
2020-10-28 06:29:25 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 06:30:05 +0100 <dminuoso> let (.>>) = op (sym ">>") in infixApp fooE (.>>) barE
2020-10-28 06:32:44 +0100Sanchayan(~Sanchayan@122.167.95.166)
2020-10-28 06:32:48 +0100 <dminuoso> (Though ultimately I think Im going to use QQ instead, since [hs| $fooE >> $barE |] is a bit more readable)
2020-10-28 06:33:44 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 06:34:48 +0100 <dsal> :t infixApp
2020-10-28 06:34:49 +0100 <lambdabot> error: Variable not in scope: infixApp
2020-10-28 06:35:50 +0100 <koz_> dminuoso: I recently wrote my first quasi-quoters, and it was honestly rather pleasant.
2020-10-28 06:36:05 +0100 <dsal> oooh
2020-10-28 06:36:57 +0100howdoi(uid224@gateway/web/irccloud.com/x-vkinnmkhoknarggj) (Quit: Connection closed for inactivity)
2020-10-28 06:38:23 +0100 <dminuoso> koz_: Yeah, Im fond of QQ myself. I have some for IP/mac literals, especially in tests this is convenient. :)
2020-10-28 06:38:56 +0100 <koz_> I'm definitely adding them to my arsenal for the future.
2020-10-28 06:39:04 +0100 <dminuoso> http://hackage.haskell.org/package/hexquote-0.1/docs/Data-Hex-Quote.html this is a cute one as well
2020-10-28 06:39:11 +0100 <dminuoso> That find usage in one of my projects tests a lot
2020-10-28 06:42:42 +0100sandmwitch(~dmwit@pool-108-18-228-100.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-10-28 06:42:50 +0100 <crestfallen> Axman6: koz_: please look at > traverse bb list http://ix.io/2Cg1
2020-10-28 06:44:03 +0100dmwit(~dmwit@pool-108-18-228-100.washdc.fios.verizon.net)
2020-10-28 06:44:52 +0100dmwitdmwitch
2020-10-28 06:46:07 +0100crestfallenwretchswollen
2020-10-28 06:51:20 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-10-28 06:51:25 +0100taurux(~taurux@net-188-216-37-152.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
2020-10-28 06:51:29 +0100 <Axman6> wretchswollen: what about it?
2020-10-28 06:52:49 +0100 <Axman6> wretchswollen: try using this: bb x = if even x then Right (x `div` 2) else Left (show x)
2020-10-28 06:54:00 +0100taurux(~taurux@net-188-216-13-237.cust.vodafonedsl.it)
2020-10-28 06:54:16 +0100 <dminuoso> wretchswollen: You seem to be confusing Traversable with Filterable (see `witherable` package)
2020-10-28 06:54:50 +0100 <dminuoso> (A poor mans witherable on just [] is `mapMaybe` in case you are looking for that)
2020-10-28 06:56:04 +0100 <dminuoso> (Or I guess Witherable rather than Filterable)
2020-10-28 06:57:26 +0100 <wretchswollen> with list each member needs to be even. so if it's traverse bb [2,4,6] then we get Just [1,2,3]. so the program doesn't get to the else statement
2020-10-28 06:57:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 06:58:40 +0100 <wretchswollen> it builds Maybe List a without getting to the else statement
2020-10-28 06:59:06 +0100 <dminuoso> wretchswollen: `Nothing` *is* Maybe [Int] too
2020-10-28 06:59:23 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-10-28 06:59:29 +0100 <Axman6> wretchswollen: why won';t you do the thing I've now told you three times you should do? step. through. the. functions. by. expanding. their. definitions
2020-10-28 06:59:41 +0100 <Axman6> you will see what's happening nearly immediately
2020-10-28 06:59:58 +0100 <Axman6> but instead yuou keep asking the same question and not understanding the answers
2020-10-28 07:00:01 +0100scf-1(~scf-1@84.39.116.180) ()
2020-10-28 07:00:20 +0100 <dsal> To write good code, one must become one with the compiler.
2020-10-28 07:00:20 +0100 <Axman6> you have the wrong intuition, you can fix than by actually stepping through the evaluation
2020-10-28 07:00:26 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-10-28 07:00:40 +0100mirrorbird(~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
2020-10-28 07:00:49 +0100 <Axman6> I started the work for you, all you need to dfo is contunue it
2020-10-28 07:00:51 +0100 <Axman6> continue*
2020-10-28 07:01:40 +0100 <wretchswollen> theres a lot going on.
2020-10-28 07:01:46 +0100 <Axman6> yes
2020-10-28 07:01:50 +0100 <Axman6> so you take it one step at a time
2020-10-28 07:01:55 +0100 <Axman6> like I told you to
2020-10-28 07:02:20 +0100rinwa(~rinwa@5.102.238.236) (Ping timeout: 272 seconds)
2020-10-28 07:02:20 +0100 <wretchswollen> I don't have scrollback on this blasted chat client
2020-10-28 07:02:28 +0100 <Axman6> I think you need to step through this line by line: traverse bb (Add (Add (Con 3) (Con 4)) (Con (-5))) ==> Add <$> traverse bb (Add (Con 3) (Con 4)) <*> (Con (-5)) ==> ???
2020-10-28 07:02:30 +0100 <dminuoso> wretchswollen: Check the topic
2020-10-28 07:02:34 +0100 <dminuoso> We have a log.
2020-10-28 07:02:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-10-28 07:03:15 +0100 <Axman6> @where paste
2020-10-28 07:03:15 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
2020-10-28 07:06:29 +0100 <Axman6> wretchswollen: https://paste.tomsmeding.com/7TIQdWo7
2020-10-28 07:06:55 +0100 <Axman6> I took a few steps at a time there, you can spread it out more if you want
2020-10-28 07:08:25 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-10-28 07:08:37 +0100tdhttt(~tdhttt@static-198-54-131-149.cust.tzulo.com) (Ping timeout: 264 seconds)
2020-10-28 07:09:00 +0100 <wretchswollen> Axman6: thanks so much. I should probably revisit this tomm. dminuoso thanks kindly
2020-10-28 07:09:32 +0100tdhttt(~tdhttt@static-198-54-131-149.cust.tzulo.com)
2020-10-28 07:11:46 +0100obihann(~jhann@156.34.160.69)
2020-10-28 07:12:54 +0100 <wretchswollen> Axman6: yeah ok so doing > traverse aa (Con (-5)) ==> Just (Con 0)
2020-10-28 07:15:09 +0100 <Axman6> yes
2020-10-28 07:15:37 +0100 <Axman6> which is _exactly_ what the definition of traverse says will happen if your applicative is Maybe
2020-10-28 07:16:14 +0100 <wretchswollen> so what happens is essentially: Just (Add (Add (Con 8) (Con 9))) <*> Just (Con 0)
2020-10-28 07:16:42 +0100 <wretchswollen> hold on checking that..
2020-10-28 07:16:52 +0100 <Axman6> sort of, the Add <$> is needed in front of that to make it type check
2020-10-28 07:17:01 +0100obihann(~jhann@156.34.160.69) (Ping timeout: 246 seconds)
2020-10-28 07:17:10 +0100 <Axman6> you get Add <$> Just (Add (Add (Con 8) (Con 9))) <*> Just (Con 0)
2020-10-28 07:20:39 +0100 <wretchswollen> that's pretty interesting thanks Axman6
2020-10-28 07:20:40 +0100 <Axman6> which becomes Just (\x -> Add (Add (Add (Con 8) (Con 9))) x) <*> Just (Con 0)
2020-10-28 07:20:57 +0100 <Axman6> % :t (<*> @Maybe)
2020-10-28 07:20:57 +0100 <yahb> Axman6: ; <interactive>:1:6: error: parse error on input `@'
2020-10-28 07:21:02 +0100 <Axman6> % :t (<*>) @Maybe
2020-10-28 07:21:03 +0100 <yahb> Axman6: Maybe (a -> b) -> Maybe a -> Maybe b
2020-10-28 07:21:52 +0100m4v1(~m4v@185.244.214.217)
2020-10-28 07:21:56 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2020-10-28 07:22:02 +0100_vaibhavingale_(~Adium@42.106.216.64)
2020-10-28 07:23:19 +0100zaquest(~notzaques@5.128.210.178)
2020-10-28 07:25:01 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-10-28 07:26:28 +0100jud^(~jud@cpe-70-113-106-222.austin.res.rr.com) (Ping timeout: 246 seconds)
2020-10-28 07:27:21 +0100jedws(~jedws@101.184.193.144)
2020-10-28 07:30:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 07:31:21 +0100ecphras(~gschare@cpe-23-242-214-143.socal.res.rr.com)
2020-10-28 07:34:00 +0100ecphras(~gschare@cpe-23-242-214-143.socal.res.rr.com) (Client Quit)
2020-10-28 07:36:30 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-10-28 07:38:15 +0100idhugo(~idhugo@563472ae.rev.stofanet.dk)
2020-10-28 07:41:53 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-10-28 07:44:49 +0100nsyde(~nsyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 07:45:24 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
2020-10-28 07:46:26 +0100nados(~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 256 seconds)
2020-10-28 07:46:52 +0100caubert(~mrbentari@207.246.80.112) (Quit: WeeChat 2.9)
2020-10-28 07:47:02 +0100mrbentarikau(~mrbentari@207.246.80.112)
2020-10-28 07:47:20 +0100mrbentarikaucaubert
2020-10-28 07:49:02 +0100kori(~kori@arrowheads/kori) (Quit: WeeChat 2.8)
2020-10-28 07:50:28 +0100bitmagie(~Thunderbi@200116b8069fbf008d925686a233d598.dip.versatel-1u1.de)
2020-10-28 07:53:00 +0100idhugo(~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 260 seconds)
2020-10-28 07:53:03 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 07:53:30 +0100tuple(~igloo@66.115.157.61)
2020-10-28 07:53:49 +0100tuple(~igloo@66.115.157.61) (Client Quit)
2020-10-28 07:54:56 +0100jedws(~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 07:57:57 +0100keep_learning(~keep_lear@43.231.26.152)
2020-10-28 07:58:50 +0100|(183f4752@c-24-63-71-82.hsd1.ma.comcast.net)
2020-10-28 07:59:14 +0100|Guest35321
2020-10-28 08:00:28 +0100asheshambasta(~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be)
2020-10-28 08:01:50 +0100mimi1vx(~mimi@tulipan.habr.nat.praha12.net)
2020-10-28 08:02:47 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
2020-10-28 08:03:52 +0100plutoniix(~q@175.176.222.7)
2020-10-28 08:04:09 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-10-28 08:04:55 +0100mimi_vx(~mimi@2a01:490:16:1026:9954:a30:869a:297e) (Ping timeout: 272 seconds)
2020-10-28 08:05:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-10-28 08:06:56 +0100jedws(~jedws@101.184.193.144)
2020-10-28 08:11:32 +0100_vaibhavingale_1(~Adium@203.188.228.9)
2020-10-28 08:12:05 +0100_vaibhavingale_(~Adium@42.106.216.64) (Read error: Connection reset by peer)
2020-10-28 08:15:14 +0100alp(~alp@2a01:e0a:58b:4920:b56f:71bb:e7ea:75f0)
2020-10-28 08:15:29 +0100nsyde(~nsyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-28 08:16:04 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-28 08:22:36 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-28 08:24:57 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 08:26:14 +0100sfvm(~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
2020-10-28 08:27:05 +0100GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-28 08:27:56 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 08:27:56 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 08:27:56 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 08:29:04 +0100ulidtko|k(~ulidtko@193.111.48.79)
2020-10-28 08:29:20 +0100ulidtko(~ulidtko@193.111.48.79) (Remote host closed the connection)
2020-10-28 08:32:09 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-10-28 08:32:36 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-10-28 08:35:27 +0100hackagederiving-show-simple 0 - Derive a Show instance without field selector names https://hackage.haskell.org/package/deriving-show-simple-0 (FumiakiKinoshita)
2020-10-28 08:38:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 08:44:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-10-28 08:46:45 +0100phaul(~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-10-28 08:46:50 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 08:49:07 +0100idhugo(~idhugo@563472ae.rev.stofanet.dk)
2020-10-28 08:49:38 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-10-28 08:50:31 +0100dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
2020-10-28 08:50:57 +0100hackagehslua-module-doclayout 0.2.0.1 - Lua module wrapping Text.DocLayout. https://hackage.haskell.org/package/hslua-module-doclayout-0.2.0.1 (tarleb)
2020-10-28 08:55:00 +0100idhugo(~idhugo@563472ae.rev.stofanet.dk) (Read error: Connection reset by peer)
2020-10-28 08:55:12 +0100idhugo(~idhugo@563472ae.rev.stofanet.dk)
2020-10-28 08:55:27 +0100Lord_of_Life(~Lord@46.217.221.153) (Changing host)
2020-10-28 08:55:27 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-10-28 08:56:28 +0100rinwa(~rinwa@5.102.238.236)
2020-10-28 08:57:48 +0100xsperry(~as@unaffiliated/xsperry) (Remote host closed the connection)
2020-10-28 08:59:53 +0100idhugo(~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 260 seconds)
2020-10-28 09:03:23 +0100raichoo(~raichoo@213.240.178.58)
2020-10-28 09:03:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 09:04:02 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-10-28 09:10:05 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-28 09:13:05 +0100avoandmayo(~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 09:13:17 +0100 <dminuoso> binary question, when I have a tree of Get primitives, is there a good rule of thumb where to isolate?
2020-10-28 09:14:47 +0100idhugo(~idhugo@users-1190.st.net.au.dk)
2020-10-28 09:16:25 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2020-10-28 09:18:05 +0100jespada(~jespada@90.254.243.98) (Ping timeout: 258 seconds)
2020-10-28 09:20:47 +0100jespada(~jespada@90.254.243.98)
2020-10-28 09:23:06 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-28 09:28:25 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-28 09:29:57 +0100 <eedgit> Why are these named 'op' / 'e' - is it completely random or does it have some significance? (can't google 'cause its too short :( )
2020-10-28 09:29:57 +0100 <eedgit> https://dpaste.org/cht0
2020-10-28 09:30:31 +0100 <dminuoso> The 'e' is likely random
2020-10-28 09:30:39 +0100 <dminuoso> And 'op' is just to suggest this is likely to be used with some kind of "operator"
2020-10-28 09:30:45 +0100 <dminuoso> Think:
2020-10-28 09:30:52 +0100 <dminuoso> % foldr (+) 0 [1,2,3,4,5]
2020-10-28 09:30:52 +0100 <yahb> dminuoso: 15
2020-10-28 09:31:27 +0100 <eedgit> thank you! I thought that might be operator. Is there a big list of commonly used vars / built in ones
2020-10-28 09:31:36 +0100 <eedgit> To a novice it's like staring at a bowl of alphabet soup sometimes
2020-10-28 09:35:38 +0100 <merijn> eedgit: I don't think there is a list, some common ones would be f/g/h for functions, i/j/k for indices, any single letter for just "a value of some polymorphic type"
2020-10-28 09:36:10 +0100 <merijn> eedgit: oh, and of course the (x:xs) idiom (following from 1 item, multiple itemS you get 1 x, multiple xS)
2020-10-28 09:36:22 +0100kish(~oracle@unaffiliated/oracle)
2020-10-28 09:38:28 +0100 <merijn> eedgit: I might call the 'e' "acc" (for accumulator or something), but it's not really clear what a "better" name would be.
2020-10-28 09:39:56 +0100 <eedgit> `acc` is much better thanks
2020-10-28 09:41:11 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 09:41:32 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-10-28 09:44:02 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
2020-10-28 09:44:32 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
2020-10-28 09:46:03 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds)
2020-10-28 09:46:07 +0100jedws(~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 09:46:49 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-10-28 09:47:07 +0100 <dminuoso> eedgit: I tend to not like `acc` because it leads to a more imperative thinking.
2020-10-28 09:47:56 +0100 <dminuoso> https://wiki.haskell.org/wikiupload/3/3e/Right-fold-transformation.png
2020-10-28 09:48:28 +0100 <dminuoso> So if we foldr a list, then that second argument really is just what the empty list at the end gets replaced with.
2020-10-28 09:51:22 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Ping timeout: 265 seconds)
2020-10-28 09:52:33 +0100avoandmayo(~textual@122-58-158-238-adsl.sparkbb.co.nz)
2020-10-28 09:53:19 +0100avoandmayo(~textual@122-58-158-238-adsl.sparkbb.co.nz) (Client Quit)
2020-10-28 09:53:51 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-10-28 09:54:32 +0100 <tomsmeding> "imperative thinking" certainly fits the time of year, does it not?
2020-10-28 09:55:06 +0100 <merijn> Nothing wrong with imperative Haskell :)
2020-10-28 09:55:10 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-28 09:56:56 +0100 <merijn> https://twitter.com/k0001/status/1295846402648682496 :p
2020-10-28 09:57:49 +0100_vaibhavingale_(~Adium@203.188.228.9)
2020-10-28 09:58:22 +0100invaser(~Thunderbi@31.148.23.125)
2020-10-28 09:58:49 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-10-28 09:58:52 +0100 <tomsmeding> lol
2020-10-28 09:59:10 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-hxonwkkgkhrxlnbv) (Quit: Connection closed for inactivity)
2020-10-28 09:59:21 +0100 <tomsmeding> depends on the domain of course
2020-10-28 09:59:23 +0100thc202(~thc202@unaffiliated/thc202)
2020-10-28 09:59:37 +0100_vaibhavingale_1(~Adium@203.188.228.9) (Ping timeout: 264 seconds)
2020-10-28 09:59:38 +0100 <Rembane> As long as you don't think imperitavel... yeah... you can program using the style. *nods sagely*
2020-10-28 10:00:02 +0100m4v1(~m4v@185.244.214.217) ()
2020-10-28 10:00:59 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 10:01:08 +0100 <eedgit> dminuoso that's hurting my head a bit. Is the distinction you're making that it's 'folded' into the end, rather than accumulated in a new variable?
2020-10-28 10:02:42 +0100 <tomsmeding> eedgit: 'foldr op e l' really just replaces the (:) in l with op, and the [] in l with e
2020-10-28 10:03:14 +0100GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-28 10:03:26 +0100 <tomsmeding> foldr op e (1 : (2 : (3 : [])) = 1 `op` (2 `op` (3 `op` e))
2020-10-28 10:03:30 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 10:03:30 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 10:03:30 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 10:03:44 +0100 <tomsmeding> hence 'e' for "empty list"
2020-10-28 10:04:28 +0100 <tomsmeding> oh that's what the picture says, lol
2020-10-28 10:04:46 +0100 <eedgit> ahh ok, think I've got it (*whiteboarding intensifies*)
2020-10-28 10:04:49 +0100 <eedgit> ty
2020-10-28 10:05:49 +0100 <tomsmeding> and if you at some point think, hey you can generalise this idea of "replacing constructors" to other data types: welcome to the theory of folds :)
2020-10-28 10:09:11 +0100 <eedgit> still not entirely sure it's not witchcraft. My original implementation was pretty long but by looking at other solutions I'm down to a handful of variables
2020-10-28 10:09:28 +0100Franciman(~francesco@host-82-54-10-114.retail.telecomitalia.it)
2020-10-28 10:09:33 +0100 <eedgit> Is there a simpler / more native way than flattening and using foldr for rose-trees ?
2020-10-28 10:10:10 +0100 <dminuoso> eedgit: So, `flattening` *is* already fully descriptive of the fold.
2020-10-28 10:10:45 +0100 <dminuoso> We could think of Foldable having two equivalent signature methods `toList` and `foldr` (or perhaps foldMap instead of foldr).
2020-10-28 10:11:28 +0100 <dminuoso> (Im not actually sure why toList is not a method of Foldable)
2020-10-28 10:12:32 +0100 <dminuoso> But yes, you could essentially rip down the implementation of toList, and use that to implement a foldr directly
2020-10-28 10:12:56 +0100 <Axman6> is there any optimisations to he had with toList /= foldr (:) []?
2020-10-28 10:13:05 +0100 <dminuoso> Where, if you look at the above scheme, instead of putting in a `:` you just put in the argument `f` and, and instead of the `[]` at the end you put in the z
2020-10-28 10:13:42 +0100 <dminuoso> So if you had some implementation `flatten ... = x : ...; flatten ... = []`
2020-10-28 10:13:47 +0100 <dminuoso> You could, instead, replace that implementation as
2020-10-28 10:14:11 +0100 <dminuoso> instance Foldable YourTree where foldr f _z ... = x `f` ...; foldr _f z ... = z
2020-10-28 10:14:13 +0100 <dminuoso> Mechanically
2020-10-28 10:14:17 +0100 <dminuoso> (You dont even have to think about it)
2020-10-28 10:14:36 +0100 <dminuoso> And then the `flatten` you have for free via `toList`
2020-10-28 10:15:09 +0100 <dminuoso> Axman6: Well, less fusion/deforestation I guess?
2020-10-28 10:15:26 +0100 <dminuoso> (By "less" I mean "less required")
2020-10-28 10:15:35 +0100quaestor(~quaestor@griffith.christophrauch.de)
2020-10-28 10:15:35 +0100 <Axman6> but surely that would have happened in your foldr definition
2020-10-28 10:15:54 +0100 <dminuoso> If the foldr has to decompose a list again, that surely hinders optimizations
2020-10-28 10:16:23 +0100 <dminuoso> If we dont even allow generating a list, we dont have to do deforestation in the first place.
2020-10-28 10:16:58 +0100hackageukrainian-phonetics-basic 0.1.6.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.1.6.0 (OleksandrZhabenko)
2020-10-28 10:17:32 +0100bartemius(~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection)
2020-10-28 10:17:58 +0100hackagemmsyn6ukr 0.8.2.0 - A musical instrument synthesizer or a tool for Ukrainian language listening https://hackage.haskell.org/package/mmsyn6ukr-0.8.2.0 (OleksandrZhabenko)
2020-10-28 10:19:01 +0100mmohammadi9812(~mmohammad@2.178.187.147) (Ping timeout: 246 seconds)
2020-10-28 10:19:38 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 10:19:47 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-10-28 10:20:05 +0100mbomba(~mbomba@142.114.9.241)
2020-10-28 10:22:20 +0100 <eedgit> Makes sense, thanks
2020-10-28 10:22:50 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds)
2020-10-28 10:23:13 +0100knupfer(~Thunderbi@200116b82c8890009cbf5dfffee482bd.dip.versatel-1u1.de)
2020-10-28 10:23:29 +0100GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-28 10:23:39 +0100GyroW(~GyroW@d54C03E98.access.telenet.be)
2020-10-28 10:23:39 +0100GyroW(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-28 10:23:39 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 10:23:41 +0100knupfer(~Thunderbi@200116b82c8890009cbf5dfffee482bd.dip.versatel-1u1.de) (Remote host closed the connection)
2020-10-28 10:23:45 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-28 10:23:48 +0100knupfer(~Thunderbi@200116b82c88900038812dc9660ae862.dip.versatel-1u1.de)
2020-10-28 10:24:08 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-28 10:24:57 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-28 10:26:52 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 10:27:12 +0100benjamin-l(~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60)
2020-10-28 10:27:52 +0100avoandmayo(~textual@122.58.158.238)
2020-10-28 10:29:10 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2020-10-28 10:30:05 +0100mmohammadi9812(~mmohammad@2.178.160.31)
2020-10-28 10:30:46 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 10:32:54 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
2020-10-28 10:35:04 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 10:36:22 +0100avoandmayo(~textual@122.58.158.238) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 10:40:15 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 10:42:12 +0100avoandmayo(~textual@122-58-158-238-adsl.sparkbb.co.nz)
2020-10-28 10:42:37 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
2020-10-28 10:42:59 +0100berberman(~berberman@unaffiliated/berberman)
2020-10-28 10:43:09 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-10-28 10:44:52 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-28 10:45:53 +0100kuribas(~user@ptr-25vy0i9apvg5lclnymw.18120a2.ip6.access.telenet.be)
2020-10-28 10:48:52 +0100xxxzzzqqaa`(3dded63f@61-222-214-63.HINET-IP.hinet.net) (Remote host closed the connection)
2020-10-28 10:50:34 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 10:51:49 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 10:52:14 +0100avoandmayo(~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 10:54:24 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2020-10-28 10:54:42 +0100PeErLesS(~PeErLesS@s91904426.blix.com)
2020-10-28 10:55:05 +0100PeErLesSGuest65945
2020-10-28 10:55:08 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-28 11:00:28 +0100hackageth-lego 0.2 - Template Haskell construction utilities https://hackage.haskell.org/package/th-lego-0.2 (NikitaVolkov)
2020-10-28 11:01:48 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 260 seconds)
2020-10-28 11:02:57 +0100hackagewai-saml2 0.2.1.1 - SAML2 assertion validation as WAI middleware https://hackage.haskell.org/package/wai-saml2-0.2.1.1 (mbg)
2020-10-28 11:04:21 +0100Rudd0(~Rudd0@185.189.115.108)
2020-10-28 11:04:45 +0100m0rphism(~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de)
2020-10-28 11:04:47 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:6857:8c0f:5834:bc03) (Ping timeout: 246 seconds)
2020-10-28 11:05:24 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:7d65:3be5:43eb:ba0c)
2020-10-28 11:05:28 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
2020-10-28 11:09:01 +0100xsperry(~as@unaffiliated/xsperry)
2020-10-28 11:09:03 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net)
2020-10-28 11:09:45 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-10-28 11:10:02 +0100shatriff(~vitaliish@176.52.219.10)
2020-10-28 11:10:29 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-10-28 11:10:33 +0100p8m_(p8m@gateway/vpn/protonvpn/p8m)
2020-10-28 11:11:03 +0100shatriff(~vitaliish@176.52.219.10)
2020-10-28 11:11:05 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
2020-10-28 11:13:21 +0100obihann(~jhann@156.34.160.69)
2020-10-28 11:14:01 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds)
2020-10-28 11:16:23 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds)
2020-10-28 11:16:46 +0100jedws(~jedws@101.184.193.144)
2020-10-28 11:16:46 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds)
2020-10-28 11:16:56 +0100mbomba(~mbomba@142.114.9.241) (Quit: WeeChat 2.9)
2020-10-28 11:17:22 +0100vacm(~vacwm@70.23.92.191)
2020-10-28 11:17:37 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-10-28 11:20:33 +0100vacm(~vacwm@70.23.92.191) (Client Quit)
2020-10-28 11:20:44 +0100rprije(~rprije@194-193-168-77.tpgi.com.au) (Ping timeout: 272 seconds)
2020-10-28 11:22:04 +0100obihann(~jhann@156.34.160.69) (Ping timeout: 240 seconds)
2020-10-28 11:24:46 +0100jakob_(~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de)
2020-10-28 11:25:38 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-28 11:25:58 +0100acidjnk_new(~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de)
2020-10-28 11:26:46 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-10-28 11:27:25 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2020-10-28 11:28:26 +0100obihann(~jhann@156.34.160.69)
2020-10-28 11:29:44 +0100jedws(~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 11:30:20 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-28 11:32:17 +0100 <dminuoso> data ConDecl l where ConDecl l (Name l) [Type l] | ...
2020-10-28 11:32:26 +0100 <dminuoso> This is from haskell-src-exts, what is this type list?
2020-10-28 11:32:45 +0100 <dminuoso> Is that possibly for DatatypeContexts?
2020-10-28 11:34:34 +0100 <dminuoso> Oh shoot me.
2020-10-28 11:34:42 +0100 <dminuoso> Haskell for beginners.
2020-10-28 11:36:13 +0100Neo--(~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 264 seconds)
2020-10-28 11:37:37 +0100bennofs1(~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de)
2020-10-28 11:43:15 +0100darjeeling_(~darjeelin@115.215.42.47)
2020-10-28 11:43:30 +0100bartemius(~bartemius@109-252-20-20.nat.spd-mgts.ru)
2020-10-28 11:46:52 +0100jneira(501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250) (Ping timeout: 246 seconds)
2020-10-28 11:49:25 +0100jedws(~jedws@101.184.193.144)
2020-10-28 11:50:08 +0100Neo--(~neo@188-230-154-134.dynamic.t-2.net)
2020-10-28 11:53:20 +0100 <tomsmeding> I believe there was a conversation here a few days back with a beginning haskell programmer that had trouble distinguishing [a] on the type level and a singleton list on the value level
2020-10-28 11:54:09 +0100jess-o-lantern(jess@freenode/staff/jess)
2020-10-28 11:54:50 +0100 <tomsmeding> oh wait I'm misunderstanding your misunderstanding am I not
2020-10-28 11:55:08 +0100 <tomsmeding> yay
2020-10-28 11:55:25 +0100 <lortabac> types and data constructors with the same name were my main source of confusion when I was a beginner
2020-10-28 11:56:56 +0100 <tomsmeding> understandable
2020-10-28 11:57:31 +0100Neo--(~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 265 seconds)
2020-10-28 11:57:49 +0100aarvar(~foewfoiew@50.35.43.33) (Ping timeout: 264 seconds)
2020-10-28 11:58:16 +0100 <dminuoso> tomsmeding: Haha, I was just wondering "what in the name does a data constructor declaration need a type for"
2020-10-28 11:58:24 +0100 <dminuoso> My brain stopped working there for a good 5 minutes.
2020-10-28 11:58:47 +0100carlomagno1(~cararell@148.87.23.8)
2020-10-28 11:58:48 +0100 <tomsmeding> it's also kind of confusing
2020-10-28 11:59:04 +0100cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 240 seconds)
2020-10-28 11:59:15 +0100 <tomsmeding> "data constructor" is probably a value-level constructor, which takes value-level arguments
2020-10-28 11:59:43 +0100 <tomsmeding> so on the surface, having no idea about the organisation of haskell-src-exts, I'd assume that those types are the instantiations of the type variables of the data type or something?
2020-10-28 11:59:49 +0100 <tomsmeding> but that makes no sense in the context of a parser
2020-10-28 11:59:51 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-28 12:00:00 +0100fendor_(~fendor@91.141.3.89.wireless.dyn.drei.com) (Remote host closed the connection)
2020-10-28 12:00:11 +0100 <tomsmeding> and if it's really a data _type_ declaration, then please do not call that a "data cosntructor"
2020-10-28 12:01:18 +0100fendor(~fendor@91.141.3.89.wireless.dyn.drei.com)
2020-10-28 12:01:34 +0100carlomagno(~cararell@148.87.23.12) (Ping timeout: 246 seconds)
2020-10-28 12:02:35 +0100 <dminuoso> tomsmeding: `data Foo = Bar Int`
2020-10-28 12:02:39 +0100 <dminuoso> Here the `Int` is meant
2020-10-28 12:02:55 +0100 <dminuoso> (The declaration of the data constructor Bar does take a number of types)
2020-10-28 12:03:06 +0100 <tomsmeding> lol
2020-10-28 12:03:07 +0100jedws(~jedws@101.184.193.144) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 12:03:22 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 260 seconds)
2020-10-28 12:03:33 +0100 <tomsmeding> I guess we can share the bullet
2020-10-28 12:10:46 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-10-28 12:11:17 +0100mirrorbird(~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Ping timeout: 272 seconds)
2020-10-28 12:12:37 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 12:17:44 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 272 seconds)
2020-10-28 12:18:24 +0100Guest18(567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102)
2020-10-28 12:19:24 +0100knupfer(~Thunderbi@200116b82c88900038812dc9660ae862.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-10-28 12:19:46 +0100 <dminuoso> tomsmeding: Indeed, I was in a similar mindset as you. "This makes no sense"
2020-10-28 12:21:18 +0100machinedgod(~machinedg@24.105.81.50)
2020-10-28 12:24:51 +0100Chi1thangoo(~Chi1thang@87.112.60.168)
2020-10-28 12:25:51 +0100alp(~alp@2a01:e0a:58b:4920:b56f:71bb:e7ea:75f0) (Ping timeout: 272 seconds)
2020-10-28 12:26:16 +0100idhugo_(~idhugo@users-1190.st.net.au.dk)
2020-10-28 12:26:37 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
2020-10-28 12:26:49 +0100idhugo(~idhugo@users-1190.st.net.au.dk) (Read error: Connection reset by peer)
2020-10-28 12:27:02 +0100nerdypepper(nerdypeppe@152.67.160.69) (Remote host closed the connection)
2020-10-28 12:27:04 +0100nkly(~nkly@ip5f5bd51d.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds)
2020-10-28 12:27:15 +0100nerdypepper(nerdypeppe@152.67.160.69)
2020-10-28 12:27:47 +0100cheater(~user@unaffiliated/cheater)
2020-10-28 12:27:56 +0100dragestil(~quassel@185.137.175.104) (Remote host closed the connection)
2020-10-28 12:29:06 +0100dragestil(~quassel@185.137.175.104)
2020-10-28 12:29:39 +0100nkly(~nkly@2a02:8109:9ac0:4a4c::9b9d)
2020-10-28 12:30:24 +0100xff0x(~fox@2001:1a81:5251:7800:1dbd:1ac6:2640:4fc2) (Ping timeout: 240 seconds)
2020-10-28 12:31:08 +0100__monty__(~toonn@unaffiliated/toonn)
2020-10-28 12:31:09 +0100DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-10-28 12:31:27 +0100xff0x(~fox@2001:1a81:5251:7800:3e24:5cc1:3a0e:4d8)
2020-10-28 12:34:29 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-10-28 12:35:07 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-10-28 12:36:47 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-10-28 12:37:46 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-10-28 12:39:16 +0100cfricke(~cfricke@unaffiliated/cfricke) (Read error: Connection reset by peer)
2020-10-28 12:42:43 +0100plutoniix(~q@175.176.222.7) (Quit: Leaving)
2020-10-28 12:46:20 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-10-28 12:47:05 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-10-28 12:47:15 +0100acidjnk_new(~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-28 12:47:38 +0100acidjnk_new(~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de)
2020-10-28 12:48:33 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-10-28 12:49:45 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
2020-10-28 12:51:18 +0100bennofs1(~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2020-10-28 12:51:29 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Client Quit)
2020-10-28 12:56:34 +0100alp(~alp@2a01:e0a:58b:4920:a0d1:e2a9:a9ab:3adb)
2020-10-28 12:59:07 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-10-28 13:00:01 +0100Guest65945(~PeErLesS@s91904426.blix.com) ()
2020-10-28 13:01:57 +0100bennofs1(~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de)
2020-10-28 13:03:23 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-10-28 13:03:44 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Ping timeout: 240 seconds)
2020-10-28 13:03:49 +0100deftly(~user@209.58.189.165) (Ping timeout: 264 seconds)
2020-10-28 13:04:00 +0100bennofs1(~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Client Quit)
2020-10-28 13:04:42 +0100bennofs1(~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de)
2020-10-28 13:05:42 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 13:07:46 +0100cfricke(~cfricke@unaffiliated/cfricke) (Read error: Connection reset by peer)
2020-10-28 13:08:04 +0100Stanley00(~stanley00@unaffiliated/stanley00) ()
2020-10-28 13:08:52 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-10-28 13:09:30 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net)
2020-10-28 13:10:02 +0100Kolkrabe(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-10-28 13:13:45 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
2020-10-28 13:14:43 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-10-28 13:15:12 +0100ech(~user@gateway/tor-sasl/ech)
2020-10-28 13:17:31 +0100Guest18(567e8866@gateway/web/cgi-irc/kiwiirc.com/ip.86.126.136.102) (Quit: Connection closed)
2020-10-28 13:19:12 +0100p8m_(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 265 seconds)
2020-10-28 13:19:12 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
2020-10-28 13:19:21 +0100bennofs1(~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Quit: WeeChat 2.9)
2020-10-28 13:19:37 +0100bennofs1(~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de)
2020-10-28 13:23:45 +0100nuncanada(~dude@179.235.160.168) (Ping timeout: 240 seconds)
2020-10-28 13:25:14 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-10-28 13:27:07 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-28 13:27:24 +0100acidjnk_new(~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 13:28:57 +0100boxscape(577bcbc2@gateway/web/cgi-irc/kiwiirc.com/ip.87.123.203.194)
2020-10-28 13:30:02 +0100Guest35321(183f4752@c-24-63-71-82.hsd1.ma.comcast.net) (Remote host closed the connection)
2020-10-28 13:31:30 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2020-10-28 13:31:43 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-28 13:32:25 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f)
2020-10-28 13:33:44 +0100MindlessDrone(~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 256 seconds)
2020-10-28 13:34:25 +0100PlasmaStrike(~mattplasm@38.73.141.198) (Ping timeout: 264 seconds)
2020-10-28 13:36:07 +0100Foritus(~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) (Ping timeout: 260 seconds)
2020-10-28 13:37:22 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 13:37:50 +0100MindlessDrone(~MindlessD@unaffiliated/mindlessdrone)
2020-10-28 13:39:49 +0100Tops2(~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de)
2020-10-28 13:39:52 +0100Foritus(~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net)
2020-10-28 13:40:40 +0100bliminse(~bliminse@host109-158-129-241.range109-158.btcentralplus.com) (Ping timeout: 260 seconds)
2020-10-28 13:41:18 +0100bliminse(~bliminse@host109-158-129-241.range109-158.btcentralplus.com)
2020-10-28 13:41:44 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-28 13:41:57 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:7d65:3be5:43eb:ba0c) (Ping timeout: 260 seconds)
2020-10-28 13:42:15 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-28 13:42:47 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-10-28 13:44:08 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 13:46:12 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-10-28 13:47:27 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-28 13:47:29 +0100solonarv(~solonarv@astrasbourg-653-1-117-122.w90-33.abo.wanadoo.fr)
2020-10-28 13:48:43 +0100akad(~akad@109107030050.radomsko.vectranet.pl)
2020-10-28 13:50:07 +0100ericsagn1(~ericsagne@2405:6580:0:5100:2ef5:ab40:91d2:d4c8) (Ping timeout: 260 seconds)
2020-10-28 13:52:35 +0100mmohammadi9812(~mmohammad@2.178.160.31) (Quit: Quit)
2020-10-28 13:52:48 +0100mmohammadi9812(~mmohammad@2.178.160.31)
2020-10-28 13:53:07 +0100urodna(~urodna@unaffiliated/urodna)
2020-10-28 13:53:39 +0100idhugo_(~idhugo@users-1190.st.net.au.dk) (Quit: Leaving)
2020-10-28 13:54:52 +0100wallacer3(~quassel@ns3134113.ip-37-187-4.eu) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2020-10-28 13:57:55 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:7d65:3be5:43eb:ba0c)
2020-10-28 13:59:35 +0100koz_(~koz@2404:4408:4303:8800:4270:af80:81b7:2f9) (Ping timeout: 272 seconds)
2020-10-28 13:59:58 +0100GyroW_(~GyroW@d54C03E98.access.telenet.be)
2020-10-28 13:59:58 +0100GyroW_(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-28 13:59:58 +0100GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-28 14:00:27 +0100jamm_(~jamm@unaffiliated/jamm)
2020-10-28 14:00:44 +0100GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
2020-10-28 14:01:38 +0100ericsagn1(~ericsagne@2405:6580:0:5100:a7:5aa8:702f:4d52)
2020-10-28 14:02:38 +0100koz(~koz@121.99.240.58)
2020-10-28 14:07:03 +0100lemmih(~lemmih@2406:3003:2072:44:21d6:f064:b28b:f0d4) (Remote host closed the connection)
2020-10-28 14:07:19 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-10-28 14:07:23 +0100lemmih(~lemmih@2406:3003:2072:44:c5c7:520:a681:5f3f)
2020-10-28 14:08:50 +0100geekosaur85(82659a09@host154-009.vpn.uakron.edu)
2020-10-28 14:09:08 +0100djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
2020-10-28 14:10:54 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-10-28 14:11:14 +0100geekosaur85(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-10-28 14:12:00 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-10-28 14:13:34 +0100pie_(~pie_bnc]@unaffiliated/pie-/x-0787662) (Quit: pie_)
2020-10-28 14:13:34 +0100vancz(~vancz@unaffiliated/vancz) (Quit: vancz)
2020-10-28 14:13:54 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-plvaooheqznjbhqg) (Quit: Connection closed for inactivity)
2020-10-28 14:14:41 +0100pie_(~pie_bnc]@unaffiliated/pie-/x-0787662)
2020-10-28 14:14:41 +0100vancz(~vancz@unaffiliated/vancz)
2020-10-28 14:17:09 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d)
2020-10-28 14:20:29 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-10-28 14:21:22 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-10-28 14:22:40 +0100Tario(~Tario@201.192.165.173)
2020-10-28 14:23:00 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-10-28 14:23:22 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-10-28 14:23:34 +0100Neo--(~neo@188-230-154-134.dynamic.t-2.net)
2020-10-28 14:24:03 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
2020-10-28 14:25:15 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 14:25:15 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 14:25:15 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 14:26:04 +0100GyroW_(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-28 14:26:16 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-28 14:27:52 +0100WhereIsMySpoon(~WhereIsMy@178.239.168.171)
2020-10-28 14:29:35 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2020-10-28 14:32:08 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Remote host closed the connection)
2020-10-28 14:32:23 +0100Tops21(~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de)
2020-10-28 14:32:37 +0100Neo--(~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 264 seconds)
2020-10-28 14:33:05 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-10-28 14:33:24 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Read error: Connection reset by peer)
2020-10-28 14:34:04 +0100acidjnk_new(~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de)
2020-10-28 14:35:44 +0100Tops2(~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de) (Ping timeout: 240 seconds)
2020-10-28 14:36:44 +0100 <hyperisco> I am using dhall as a library and would like to _encode_ data and write it to a file. How can I do that? I see the ToDhall class but I am not sure where to go from there
2020-10-28 14:38:55 +0100Neo--(~neo@188-230-154-134.dynamic.t-2.net)
2020-10-28 14:39:25 +0100Amras(~Amras@unaffiliated/amras0000)
2020-10-28 14:39:48 +0100mirrorbird(~psutcliff@m83-187-163-53.cust.tele2.se)
2020-10-28 14:40:27 +0100hackagekeycloak-hs 2.0.0 - https://hackage.haskell.org/package/keycloak-hs-2.0.0 (CorentinDupont)
2020-10-28 14:41:23 +0100taurux(~taurux@net-188-216-13-237.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
2020-10-28 14:41:51 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 14:42:34 +0100ystael(~ystael@209.6.50.55)
2020-10-28 14:43:10 +0100taurux(~taurux@net-188-216-13-237.cust.vodafonedsl.it)
2020-10-28 14:43:34 +0100ystael(~ystael@209.6.50.55) (Read error: Connection reset by peer)
2020-10-28 14:44:46 +0100justsomeguy(~justsomeg@216.186.218.241)
2020-10-28 14:44:46 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2020-10-28 14:44:46 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-10-28 14:46:02 +0100Wuzzy(~Wuzzy@p5790ef06.dip0.t-ipconnect.de)
2020-10-28 14:46:04 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 14:47:33 +0100ystael(~ystael@209.6.50.55)
2020-10-28 14:48:52 +0100 <dminuoso> Can you emit newlines with CPP macros?
2020-10-28 14:49:10 +0100 <Uniaika> should you? :P
2020-10-28 14:49:29 +0100 <dminuoso> I want to define a bunch of instances with a single macro.
2020-10-28 14:49:31 +0100 <dminuoso> So yes.
2020-10-28 14:49:41 +0100 <Uniaika> I think you can
2020-10-28 14:50:28 +0100Neo--(~neo@188-230-154-134.dynamic.t-2.net) (Ping timeout: 256 seconds)
2020-10-28 14:52:24 +0100xff0x(~fox@2001:1a81:5251:7800:3e24:5cc1:3a0e:4d8) (Ping timeout: 240 seconds)
2020-10-28 14:53:40 +0100xff0x(~fox@83.236.18.113)
2020-10-28 14:57:08 +0100ddellacosta(~dd@86.106.121.168)
2020-10-28 14:57:43 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 258 seconds)
2020-10-28 15:00:47 +0100Neo--(~neo@188-230-154-134.dynamic.t-2.net)
2020-10-28 15:02:55 +0100akad(~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 256 seconds)
2020-10-28 15:04:23 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 15:06:44 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
2020-10-28 15:07:38 +0100 <siraben> Anyone using Emacs and got hlint + LSP to work together?
2020-10-28 15:07:44 +0100 <siraben> I want to see hlint hints when using haskell-lsp but the manual doesn't seem to say anything about it
2020-10-28 15:09:02 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 15:10:33 +0100son0p(~son0p@181.136.122.143)
2020-10-28 15:11:24 +0100ddellacosta(~dd@86.106.121.168) (Ping timeout: 240 seconds)
2020-10-28 15:12:14 +0100akad(~akad@109107030050.radomsko.vectranet.pl)
2020-10-28 15:13:24 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
2020-10-28 15:15:12 +0100GyroW(~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
2020-10-28 15:15:23 +0100GyroW(~GyroW@d54c03e98.access.telenet.be)
2020-10-28 15:15:23 +0100GyroW(~GyroW@d54c03e98.access.telenet.be) (Changing host)
2020-10-28 15:15:23 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 15:16:58 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
2020-10-28 15:20:47 +0100 <lyxia> hyperisco: there is a Pretty instance, maybe that's the right way?
2020-10-28 15:22:52 +0100whatisRT(~whatisRT@2002:5b41:6a33:0:d1ca:d6e:3bd1:254d) (Ping timeout: 260 seconds)
2020-10-28 15:24:52 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 15:25:05 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-28 15:25:25 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 15:25:43 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 15:25:47 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-10-28 15:25:53 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-28 15:26:12 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 15:26:41 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-28 15:27:00 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 15:27:29 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-28 15:28:27 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-10-28 15:28:42 +0100shatriff(~vitaliish@176.52.219.10)
2020-10-28 15:29:15 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-10-28 15:29:37 +0100nados(~dan@69-165-210-185.cable.teksavvy.com)
2020-10-28 15:32:28 +0100idhugo(~idhugo@eduroam06.au.dk)
2020-10-28 15:32:38 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-10-28 15:33:59 +0100ph88(~ph88@2a02:8109:9e40:2704:f4dc:2c7e:f773:7bca)
2020-10-28 15:36:02 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-10-28 15:36:19 +0100ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net)
2020-10-28 15:36:19 +0100ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net) (Changing host)
2020-10-28 15:36:19 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-10-28 15:36:57 +0100koz(~koz@121.99.240.58) (Remote host closed the connection)
2020-10-28 15:37:42 +0100koz(~koz@121.99.240.58)
2020-10-28 15:37:46 +0100 <tomsmeding> dminuoso: no you can't
2020-10-28 15:37:49 +0100 <tomsmeding> this is also annoying in C
2020-10-28 15:38:12 +0100 <tomsmeding> at least -- you can't, unless the haskell CPP is a different one than the regular CPP from C/C++
2020-10-28 15:38:36 +0100 <dminuoso> I think the CPP is the one from.. well.. I dont know..
2020-10-28 15:38:48 +0100 <dminuoso> The documentation seemed a bit fuzzy
2020-10-28 15:39:54 +0100 <tomsmeding> notable is that in C, the only place in the syntax that requires a hard newline is in CPP directives; since CPP macros can't generate new macros, it's therefore unnecessary for macros to be able to generate newliens
2020-10-28 15:40:11 +0100 <tomsmeding> and it turns out that they actually can't
2020-10-28 15:40:23 +0100 <merijn> GHC CPP is pretty much unspecified
2020-10-28 15:40:53 +0100 <merijn> It uses a super hacky setup of non-standard backwards compat flags/modes of the C compiler with a bunch of parsing rules changed to do CPP
2020-10-28 15:40:55 +0100 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/native-cpp
2020-10-28 15:40:59 +0100 <merijn> It's 100% vile hacks, basically
2020-10-28 15:41:23 +0100 <dminuoso> So if I want something clean, it's TH?
2020-10-28 15:42:02 +0100 <tomsmeding> generate TH with CPP!
2020-10-28 15:42:21 +0100 <tomsmeding> that's got to be the ugliest combination of extensions yet
2020-10-28 15:42:43 +0100 <dminuoso> tomsmeding: I can think of one better
2020-10-28 15:43:12 +0100 <dminuoso> Add RebindableSyntax to change how the Q monad works
2020-10-28 15:44:06 +0100 <tomsmeding> juicy
2020-10-28 15:44:58 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-10-28 15:45:16 +0100motherfsck(~motherfsc@unaffiliated/motherfsck)
2020-10-28 15:45:20 +0100 <dminuoso> Or maybe we can do something fancy with Arrows
2020-10-28 15:45:23 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-28 15:45:41 +0100 <dminuoso> (Are there still packages in use that even use the Arrows extension?)
2020-10-28 15:45:49 +0100 <merijn> TH is also ill-defined, but in a less broken and vile way :p
2020-10-28 15:46:02 +0100 <merijn> As in, at least TH is well-specified if you don't attempt to cross-compile
2020-10-28 15:46:25 +0100jamm_(~jamm@unaffiliated/jamm)
2020-10-28 15:46:42 +0100 <dminuoso> merijn: Is that because of reflection, where you could for instance look at `sizeOf (undefined :: Int)`?
2020-10-28 15:46:48 +0100 <dminuoso> (inside TH)
2020-10-28 15:47:14 +0100raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-10-28 15:49:11 +0100 <merijn> dminuoso: Yeah
2020-10-28 15:49:23 +0100 <merijn> And then you get hairy questions like "which Int"?
2020-10-28 15:49:37 +0100 <dminuoso> what do you mean by which?
2020-10-28 15:49:39 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Client Quit)
2020-10-28 15:49:47 +0100alp(~alp@2a01:e0a:58b:4920:a0d1:e2a9:a9ab:3adb) (Ping timeout: 272 seconds)
2020-10-28 15:49:50 +0100 <merijn> as in "on the target architecture" or "on the build architecture"
2020-10-28 15:49:55 +0100 <dminuoso> right
2020-10-28 15:50:27 +0100 <merijn> But if you don't cross-compile it's not ambiguous
2020-10-28 15:50:32 +0100 <dminuoso> Is that why TH is not allowed in the stage 1 compiler?
2020-10-28 15:50:41 +0100 <merijn> This is also why cross-compiling TH is probably forever doomed
2020-10-28 15:50:44 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2020-10-28 15:51:26 +0100 <merijn> Would've had to have explicit platform support build in from the get-go, but figuring out what it's "supposed" to do is hard
2020-10-28 15:52:21 +0100alp(~alp@88.126.45.36)
2020-10-28 15:52:53 +0100Ariakenom(~Ariakenom@h-158-174-186-203.NA.cust.bahnhof.se)
2020-10-28 15:52:53 +0100knupfer(~Thunderbi@200116b82c8890003c526afffe804160.dip.versatel-1u1.de)
2020-10-28 15:53:11 +0100 <Ariakenom> async exceptions, yay or nay?
2020-10-28 15:53:23 +0100 <monsterchrom> \∩/
2020-10-28 15:53:27 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
2020-10-28 15:53:47 +0100 <merijn> Ariakenom: Depends, do you like going depressed drinking binges?
2020-10-28 15:53:53 +0100 <merijn> s/going/going on
2020-10-28 15:53:56 +0100knupfer(~Thunderbi@200116b82c8890003c526afffe804160.dip.versatel-1u1.de) (Remote host closed the connection)
2020-10-28 15:54:09 +0100knupfer(~Thunderbi@200116b82c8890009dcece03b1dbb634.dip.versatel-1u1.de)
2020-10-28 15:54:22 +0100 <noctux> "how I developed a drinking habit with the help of #haskell"
2020-10-28 15:54:52 +0100 <merijn> Ariakenom: If yes, probably fine. If you have mercy on your liver, probably best avoid them as much as possible :)
2020-10-28 15:55:03 +0100 <merijn> Also reduces the amount of uncontrollable sobbing in your life
2020-10-28 15:55:13 +0100 <Ariakenom> :p
2020-10-28 15:55:17 +0100 <dminuoso> Ariakenom: Can you specify the question?
2020-10-28 15:55:39 +0100 <Ariakenom> dminuoso: would you prefer if they didnt exist in haskell
2020-10-28 15:55:58 +0100conal(~conal@64.71.133.70)
2020-10-28 15:56:01 +0100 <dminuoso> Hard to say, they're quite convenient for killing threads.
2020-10-28 15:56:03 +0100 <merijn> Ariakenom: I wish we had more control of what/where/when you could throw them
2020-10-28 15:56:13 +0100 <merijn> But I wish we had first class concurrency too
2020-10-28 15:56:28 +0100 <dminuoso> Without it, killing threads would require yield points and cooperatoin
2020-10-28 15:56:42 +0100 <merijn> dminuoso: It still does :p
2020-10-28 15:56:45 +0100 <dminuoso> heh
2020-10-28 15:56:56 +0100 <dminuoso> merijn: except GHC takes care of the yield points for me.
2020-10-28 15:57:02 +0100 <dminuoso> It does a mostly good job
2020-10-28 15:57:07 +0100 <merijn> Sure, but still!
2020-10-28 15:57:15 +0100 <dminuoso> okay fine
2020-10-28 15:57:29 +0100 <dminuoso> Without it, killing threads would require manual yield points and manual cooperation.
2020-10-28 15:57:29 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-28 15:57:41 +0100 <dminuoso> Which is hard to get right
2020-10-28 15:57:51 +0100 <Ariakenom> I once wrote some concurrent code in python where I added yield points and timeouts everywhere. that would have been much easier in haskell, I tihnk
2020-10-28 15:57:57 +0100 <dminuoso> I think, a notable fraction of async exception pain is because Control.Exception is messed up
2020-10-28 15:58:02 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-28 15:58:08 +0100 <dminuoso> But if you use UnliftIO.Exception for example, most of that is gone
2020-10-28 15:58:43 +0100 <Ariakenom> I like asyncs but I havent run into much trouble
2020-10-28 15:58:44 +0100idhugo(~idhugo@eduroam06.au.dk) (Ping timeout: 240 seconds)
2020-10-28 15:59:00 +0100 <merijn> Ariakenom: That's because there's no trouble, right up until the point everything is broken :p
2020-10-28 15:59:10 +0100 <merijn> And then it's impossible to debug :p
2020-10-28 15:59:34 +0100 <dminuoso> Ariakenom: To be exact, Control.Exception doesn't make a clear distinction between async and sync exceptions. That's sadly an antipattern
2020-10-28 15:59:43 +0100 <Ariakenom> agreed
2020-10-28 15:59:55 +0100 <dminuoso> We shouldnt hand you tools you can use to accidentally recover from an async exceptoin
2020-10-28 16:00:02 +0100WhereIsMySpoon(~WhereIsMy@178.239.168.171) ()
2020-10-28 16:00:04 +0100 <merijn> Naah
2020-10-28 16:00:06 +0100 <dminuoso> (If you want to shoot yourself in the foot, make your own shotgun)
2020-10-28 16:00:17 +0100 <merijn> The problem with Control.Exception is that it messed up masking stuff
2020-10-28 16:00:25 +0100 <dminuoso> merijn: no it *is* a problem
2020-10-28 16:00:41 +0100 <Ariakenom> veryUninterruptibleIAmBusyMask
2020-10-28 16:01:07 +0100Saukk(~Saukk@2001:998:f9:2914:1fa4:7678:3395:bc0)
2020-10-28 16:01:12 +0100 <dminuoso> merijn: Oh you mean how mask doesn't actually mask?
2020-10-28 16:01:18 +0100 <dminuoso> or not completely, anyhow
2020-10-28 16:01:38 +0100 <Ariakenom> funny thing. in python, Ctrl-C aka SIGINT aka KeyboardInterrupt is basically an async exception. but because asyncs arent a thing in python it can break most anything
2020-10-28 16:01:49 +0100 <merijn> I meant that catch and co should use uninterruptibleMask for cleanup, but don't
2020-10-28 16:01:53 +0100 <dminuoso> Perhaps we should rename mask/uninterruptableMask to mask/interruptableMask
2020-10-28 16:02:06 +0100 <dminuoso> (oh well, they should be flipped on one side)
2020-10-28 16:02:07 +0100 <merijn> There's a mailing list thread by me from 2013
2020-10-28 16:02:18 +0100Sanchayan(~Sanchayan@122.167.95.166) (Quit: leaving)
2020-10-28 16:02:19 +0100 <dminuoso> merijn: And I propose that catch shouldn't even catch async exceptions.
2020-10-28 16:02:42 +0100 <merijn> dminuoso: That's a user decision, tbh
2020-10-28 16:02:54 +0100 <dminuoso> I personally avoid all of that pain since all my apps use unliftio anyway, so I just use UnliftIO.Exception instead of Control.Exceptoin
2020-10-28 16:03:01 +0100 <dminuoso> which has the "fixed semantics"
2020-10-28 16:03:14 +0100 <Ariakenom> I at least prefer haskell embracing asyncs to python having it as a broken special case. half way isnt great
2020-10-28 16:03:39 +0100 <dminuoso> (it takes just a single `f catch (\(e :: SomeExceptoin) -> ...)` and your thread becomes unkillable
2020-10-28 16:03:51 +0100 <dminuoso> These catch-all points do exist
2020-10-28 16:04:05 +0100 <merijn> dminuoso: Well, then we should *instead* ban SomeException :p
2020-10-28 16:04:12 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 16:04:15 +0100 <merijn> I'm much more on-board for that
2020-10-28 16:04:43 +0100 <dminuoso> merijn: I dont care about the how really, in the current state of things, it's easier to tweak the combinators to selectively ignore async exceptions if they provide recovery
2020-10-28 16:04:58 +0100 <merijn> dminuoso: The current state of unchecked exceptions is a stupid mess too
2020-10-28 16:04:59 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 16:05:03 +0100 <dminuoso> such that async exceptions are just for acts of violence
2020-10-28 16:05:33 +0100 <dminuoso> (because if you wanted to use them for communication, just use stm instead...)
2020-10-28 16:05:34 +0100 <merijn> I should start a patreon to fund me working on a GHC fork full of "non fancy type" breaking extensions :p
2020-10-28 16:05:35 +0100GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 16:05:35 +0100GyroW_(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 16:05:35 +0100GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-28 16:06:11 +0100 <dminuoso> merijn: If only you could *sell* all your grand ideas but one, then you'd have enough money to fund yourself working on the remaining one.
2020-10-28 16:06:15 +0100 <Ariakenom> merijn's ghc cleaning fund
2020-10-28 16:06:25 +0100GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-28 16:07:03 +0100 <merijn> dminuoso: My grand ideas are *good* and as you know, you can't get people to listen to good ideas even if you pay them :p
2020-10-28 16:07:36 +0100 <dminuoso> Of course, everyone thinks their ideas are good.
2020-10-28 16:07:51 +0100 <dminuoso> It makes you wonder why nobody will listen to them!
2020-10-28 16:07:51 +0100 <merijn> Mine actualy, that's why no one listens to them!
2020-10-28 16:08:52 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c)
2020-10-28 16:09:20 +0100Saukk(~Saukk@2001:998:f9:2914:1fa4:7678:3395:bc0) (Remote host closed the connection)
2020-10-28 16:09:48 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Ping timeout: 260 seconds)
2020-10-28 16:11:17 +0100vacm(~vacwm@70.23.92.191)
2020-10-28 16:12:13 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-10-28 16:12:33 +0100vacm(~vacwm@70.23.92.191) (Client Quit)
2020-10-28 16:13:57 +0100 <__monty__> Interesting use of moduse tollens.
2020-10-28 16:15:27 +0100hackagehappstack-clientsession 7.3.2 - client-side session data https://hackage.haskell.org/package/happstack-clientsession-7.3.2 (JeremyShaw)
2020-10-28 16:17:42 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
2020-10-28 16:18:01 +0100nitrixnitrix-or-treat
2020-10-28 16:18:36 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-10-28 16:20:44 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 240 seconds)
2020-10-28 16:21:57 +0100hackageukrainian-phonetics-basic 0.1.7.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.1.7.0 (OleksandrZhabenko)
2020-10-28 16:22:31 +0100toorevitimirp(~tooreviti@117.182.180.36) (Remote host closed the connection)
2020-10-28 16:22:38 +0100son0p(~son0p@181.136.122.143)
2020-10-28 16:22:58 +0100hackagekeycloak-hs 2.0.1 - https://hackage.haskell.org/package/keycloak-hs-2.0.1 (CorentinDupont)
2020-10-28 16:24:24 +0100acidjnk_new(~acidjnk@p200300d0c72378970dcefe485f10de31.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 16:24:59 +0100Ariakenom_(~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se)
2020-10-28 16:27:34 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-10-28 16:27:44 +0100ggole(~ggole@2001:8003:8119:7200:517f:9804:f25b:eb42)
2020-10-28 16:28:14 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-28 16:28:34 +0100invaser(~Thunderbi@31.148.23.125)
2020-10-28 16:29:10 +0100Ariakenom(~Ariakenom@h-158-174-186-203.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
2020-10-28 16:32:13 +0100helpmeguys(676c5f93@103.108.95.147)
2020-10-28 16:32:52 +0100 <helpmeguys> Is it possible to write a Haskell program that generates the list of all the subsets of the set [1..n] that have as many elements as their complements. Note: the complement of a set contains all the elements in [1..n] that are not members of the given set. Show the outputs for n=6.
2020-10-28 16:34:17 +0100 <dminuoso> helpmeguys: When you say complement, do you mean that as relative complement with respect to [1..n]?
2020-10-28 16:34:37 +0100 <helpmeguys> Yes, under that assumption.
2020-10-28 16:34:55 +0100 <dminuoso> helpmeguys: The answer is yes.
2020-10-28 16:35:28 +0100 <helpmeguys> Can I get an example of such a program?
2020-10-28 16:36:08 +0100 <dminuoso> You mean a solution to your homework assignment?
2020-10-28 16:36:16 +0100 <Uniaika> (shots fired)
2020-10-28 16:36:17 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-10-28 16:36:18 +0100 <helpmeguys> No
2020-10-28 16:36:22 +0100 <dminuoso> :>
2020-10-28 16:36:26 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
2020-10-28 16:36:29 +0100 <dminuoso> No but seriously, this does sound like a homework assignment.
2020-10-28 16:36:30 +0100 <helpmeguys> I am just looking up old questions
2020-10-28 16:36:44 +0100 <dminuoso> What have you tried?
2020-10-28 16:38:43 +0100 <helpmeguys> Binary trees
2020-10-28 16:38:47 +0100 <helpmeguys> And all
2020-10-28 16:39:01 +0100 <helpmeguys> Cyclic groups
2020-10-28 16:39:41 +0100 <dminuoso> Maybe I understand the task wrong, but this seems like a very simple one liner..
2020-10-28 16:40:07 +0100 <helpmeguys> Please
2020-10-28 16:40:09 +0100 <helpmeguys> Help me
2020-10-28 16:40:22 +0100 <helpmeguys> I just want to see the code.
2020-10-28 16:40:29 +0100 <helpmeguys> It will relax my mind
2020-10-28 16:40:42 +0100 <dminuoso> Dunno, I still think this is a homework assignment.
2020-10-28 16:40:51 +0100 <ghoulguy> helpmeguys, give it a shot and then paste what you try on a pastebin to share/get help
2020-10-28 16:41:00 +0100 <ghoulguy> It will help relax your mind
2020-10-28 16:41:13 +0100 <dminuoso> I mean if this is an old question, you surely have an answer already, or have enough competency to solve this yourself.
2020-10-28 16:41:23 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-10-28 16:41:37 +0100 <dminuoso> And Im also not sure how binary trees or cyclic groups are even remotely useful here
2020-10-28 16:42:03 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-28 16:42:05 +0100akad(~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 240 seconds)
2020-10-28 16:42:30 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 16:42:32 +0100 <dminuoso> It should also be said, that lists dont form proper sets as they have internal ordering.
2020-10-28 16:42:43 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 16:42:52 +0100 <dminuoso> So that begs another question whether [1,2] = [2,1] for the purpose of this excercise
2020-10-28 16:43:11 +0100 <dminuoso> (or what a subset even means)
2020-10-28 16:43:20 +0100 <ghoulguy> I'm imagining: *Help> homework 4
2020-10-28 16:43:20 +0100 <ghoulguy> [[0,1],[0,2],[0,3],[1,2],[1,3],[2,3]]
2020-10-28 16:43:50 +0100 <dminuoso> ghoulguy: For the purpose of golfing, did you do the naive thing?
2020-10-28 16:44:25 +0100 <ghoulguy> I didn't use anything from Data.List, if that's what you're asking.
2020-10-28 16:44:47 +0100 <helpmeguys> *Help> homework 4
2020-10-28 16:44:55 +0100 <helpmeguys> Is that hint?
2020-10-28 16:45:50 +0100christo(~chris@81.96.113.213)
2020-10-28 16:46:58 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Ping timeout: 258 seconds)
2020-10-28 16:47:25 +0100boxscape(577bcbc2@gateway/web/cgi-irc/kiwiirc.com/ip.87.123.203.194) (Quit: Connection closed)
2020-10-28 16:49:20 +0100Tario(~Tario@201.192.165.173)
2020-10-28 16:49:30 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-10-28 16:50:07 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-28 16:50:07 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-28 16:50:26 +0100 <ghoulguy> dminuoso, That implementation tries to maximize sharing and minimize retraversing any lists
2020-10-28 16:51:06 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-dqhgzgfgsjzhioqy)
2020-10-28 16:52:08 +0100idhugo(~idhugo@563472ae.rev.stofanet.dk)
2020-10-28 16:53:52 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net)
2020-10-28 16:54:39 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-10-28 16:55:21 +0100GyroW_(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-28 16:55:41 +0100is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 256 seconds)
2020-10-28 16:55:49 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 16:55:49 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 16:55:49 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 16:56:39 +0100ddellacosta(~dd@86.106.121.168)
2020-10-28 16:58:03 +0100is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-28 16:59:26 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 17:00:45 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-10-28 17:02:31 +0100bartemius(~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection)
2020-10-28 17:03:15 +0100Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-10-28 17:03:39 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-10-28 17:03:57 +0100cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 265 seconds)
2020-10-28 17:03:58 +0100Tario(~Tario@201.192.165.173)
2020-10-28 17:04:44 +0100bennofs1(~benno@dslb-178-000-069-093.178.000.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2020-10-28 17:06:30 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-10-28 17:07:44 +0100MindlessDrone(~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 240 seconds)
2020-10-28 17:07:57 +0100vacm(~vacwm@70.23.92.191)
2020-10-28 17:08:38 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-10-28 17:09:24 +0100is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
2020-10-28 17:09:51 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 17:09:51 +0100vacm(~vacwm@70.23.92.191) (Client Quit)
2020-10-28 17:12:21 +0100MindlessDrone(~MindlessD@unaffiliated/mindlessdrone)
2020-10-28 17:12:27 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-10-28 17:13:22 +0100 <typetetris> Can I disable a redundant constraint warning for a single function within a file?
2020-10-28 17:13:38 +0100 <geekosaur> not currently
2020-10-28 17:13:39 +0100 <ghoulguy> typetetris: I'd be surprised
2020-10-28 17:14:06 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2020-10-28 17:14:14 +0100 <helpmeguys> Please
2020-10-28 17:14:17 +0100 <helpmeguys> Help me
2020-10-28 17:14:25 +0100 <helpmeguys> I will study better next time
2020-10-28 17:14:29 +0100 <helpmeguys> Haskell program that generates the list of all the subsets of the set [1..n] that have as many elements as their complements?
2020-10-28 17:14:31 +0100 <helpmeguys> I promise
2020-10-28 17:14:35 +0100 <helpmeguys> I will work hard
2020-10-28 17:14:37 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds)
2020-10-28 17:14:41 +0100 <dminuoso> typetetris: A long while ago, the ability to disable diagnostics per region was asked for orphans and overlapping names. The discussion quickly devolved into "lets build this right and put in an entire architecture for this for all diagnostics"
2020-10-28 17:14:47 +0100 <dminuoso> And then it stopped.
2020-10-28 17:14:50 +0100 <dminuoso> That was about 10 years ago I think?
2020-10-28 17:15:08 +0100 <ghoulguy> helpmeguys: study for what?
2020-10-28 17:15:17 +0100 <helpmeguys> For my diploma
2020-10-28 17:15:20 +0100 <merijn> dminuoso: I've had this discussion as recent as 2 years ago when I proposed an "ADOPT" macro for orphan instances
2020-10-28 17:15:43 +0100 <merijn> (yes, I think I'm verry funny)
2020-10-28 17:15:43 +0100 <dminuoso> merijn: Indeed. I think we're at a stage where it's fine to just hack ADOPT in, and deprecate it if or when we get that architecture
2020-10-28 17:15:46 +0100 <typetetris> Sometimes ghc complains HasCallStack would be redundant ... but I don't see how it comes into the signature otherwise.
2020-10-28 17:16:10 +0100 <helpmeguys> Please
2020-10-28 17:16:15 +0100 <helpmeguys> Can someone tell me :)
2020-10-28 17:16:20 +0100 <helpmeguys> Haskell program that generates the list of all the subsets of the set [1..n] that have as many elements as their complements?
2020-10-28 17:16:22 +0100 <dminuoso> Because the benefit of ADOPT greatly outweighs the heavy and unbearable engineering complexity (that nobody wants to do) that nobody needs anyway.
2020-10-28 17:16:40 +0100 <dminuoso> Out of all the things, I think ADOPT is pretty much the only one where I really want the diagnostics but the ability to selectively disable them
2020-10-28 17:16:44 +0100xerox_(~xerox@unaffiliated/xerox)
2020-10-28 17:16:52 +0100 <dminuoso> I've went as far as always using Orphan modules precisely because of this
2020-10-28 17:16:55 +0100 <typetetris> What is ADOPT?
2020-10-28 17:17:06 +0100 <dminuoso> typetetris: A proposed addition to suppress orphan instance warnings
2020-10-28 17:17:14 +0100 <typetetris> Thanks.
2020-10-28 17:17:21 +0100 <dminuoso> say `instance {-# ADOPT #-} C T`
2020-10-28 17:18:25 +0100 <dminuoso> merijn: Maybe we should restart the discussion and lobby for "lets fix this now, and deprecate it if this imaginary and impossible infrastructure ever arrives"
2020-10-28 17:18:29 +0100 <dminuoso> Im up for it
2020-10-28 17:18:42 +0100 <dminuoso> (the technical implementation should be very simple)
2020-10-28 17:18:46 +0100 <davean> We kinda got it for overlapping?
2020-10-28 17:18:49 +0100 <merijn> dminuoso: Good luck :)
2020-10-28 17:19:09 +0100 <merijn> typetetris: A made up pragma for silencing orphan instance warnings
2020-10-28 17:19:21 +0100 <dminuoso> davean: No, in case of overlapping it doesn't just suppress a warning, it affects instance resolution
2020-10-28 17:19:31 +0100 <dminuoso> ADOPT is really just about suppressing a warning
2020-10-28 17:19:39 +0100 <merijn> typetetris: Because the only current alternative is to disable *all* orphan instances, rather than specific ones
2020-10-28 17:20:18 +0100 <typetetris> merijn: Yes, a more specific pragma would be better.
2020-10-28 17:21:57 +0100 <dminuoso> typetetris: The rough argument against it was "yet another syntax change, causing more friction on libraries like haskell-src - and while we're at it, we should have an infrastructure in place where we could selectively disable any diagnostic on arbitrary code regions"
2020-10-28 17:22:06 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9)
2020-10-28 17:22:09 +0100 <dminuoso> You know, just the thing that requires tremendous engineering and effort
2020-10-28 17:22:23 +0100 <dminuoso> Except, we don't really need it for anything but orphan warnings realistically.
2020-10-28 17:22:26 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-28 17:22:58 +0100 <typetetris> dminuoso: .... yeah, sounds like YAGNI
2020-10-28 17:23:23 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-10-28 17:23:43 +0100 <dminuoso> typetetris: To be fair, GHC has frequently suffered from ad-hoc additions to its syntax like that.
2020-10-28 17:24:27 +0100 <dminuoso> So rather than "changing the syntax with extra bits every time you come up with the new idea", it's not completely unwise to think about "if we do this, we should find a general solution once and for all"
2020-10-28 17:24:32 +0100 <typetetris> Is there a timeline for the primops to speed up effect libraries in sight?
2020-10-28 17:24:41 +0100 <typetetris> Forgot how they have been called.
2020-10-28 17:26:16 +0100vacm(~vacwm@70.23.92.191)
2020-10-28 17:26:36 +0100kozkoz_
2020-10-28 17:26:51 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-10-28 17:27:15 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-28 17:27:28 +0100 <lyxia> typetetris: you can look up the proposal and its discussion on Github https://github.com/ghc-proposals/ghc-proposals/pull/313
2020-10-28 17:28:07 +0100 <helpmeguys> Okay
2020-10-28 17:28:11 +0100 <helpmeguys> My test is up
2020-10-28 17:28:16 +0100 <helpmeguys> At-least tell me now
2020-10-28 17:28:17 +0100 <helpmeguys> :)
2020-10-28 17:28:25 +0100 <ghoulguy> helpmeguys: What test?
2020-10-28 17:28:40 +0100 <helpmeguys> FBI Cybersec Command
2020-10-28 17:28:53 +0100ChanServ+q *!*@103.108.95.147
2020-10-28 17:29:28 +0100helpmeguys(676c5f93@103.108.95.147) (Remote host closed the connection)
2020-10-28 17:29:37 +0100 <dminuoso> Thank you whoever did that.
2020-10-28 17:29:58 +0100alp(~alp@88.126.45.36) (Ping timeout: 272 seconds)
2020-10-28 17:31:31 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-10-28 17:31:55 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-10-28 17:34:53 +0100polyrain(~polyrain@2001:8003:e501:6901:e039:127e:3f21:3e4c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 17:36:13 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-10-28 17:38:12 +0100koz_(~koz@121.99.240.58) (Ping timeout: 260 seconds)
2020-10-28 17:38:16 +0100Maxdamantus(~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 246 seconds)
2020-10-28 17:39:03 +0100alp(~alp@2a01:e0a:58b:4920:3dfd:5fdb:5e25:6dc1)
2020-10-28 17:40:15 +0100 <noctux> hmm, ghoulguy, is there actually a "nice" oneliner solution?
2020-10-28 17:40:22 +0100Maxdamantus(~Maxdamant@unaffiliated/maxdamantus)
2020-10-28 17:40:29 +0100howdoi(uid224@gateway/web/irccloud.com/x-npushggnkcvoclse)
2020-10-28 17:40:40 +0100 <noctux> my most (codeminimal) one was with permutations and nub
2020-10-28 17:40:45 +0100koz(~koz@121.99.240.58)
2020-10-28 17:41:09 +0100 <ghoulguy> noctux: If the goal is 'short' then using: filter and subsequences
2020-10-28 17:41:20 +0100kozkoz_
2020-10-28 17:41:32 +0100 <noctux> ah, damn it...
2020-10-28 17:41:59 +0100 <noctux> subsequences actually includes "ac" from "abc"...
2020-10-28 17:42:08 +0100 <noctux> someone should learn to read docs :P
2020-10-28 17:42:11 +0100 <noctux> ghoulguy: thanks!
2020-10-28 17:42:23 +0100 <ghoulguy> I wouldn't use that in general, though
2020-10-28 17:43:24 +0100 <noctux> sure, was just out of codegolf-interest
2020-10-28 17:43:57 +0100hackageesqueleto 3.3.4.1 - Type-safe EDSL for SQL queries on persistent backends. https://hackage.haskell.org/package/esqueleto-3.3.4.1 (parsonsmatt)
2020-10-28 17:44:36 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-10-28 17:44:53 +0100is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-28 17:45:20 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 256 seconds)
2020-10-28 17:45:38 +0100dbmikus(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2020-10-28 17:46:31 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-roarfkilnkqrlcqj)
2020-10-28 17:48:24 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 17:49:32 +0100alp(~alp@2a01:e0a:58b:4920:3dfd:5fdb:5e25:6dc1) (Ping timeout: 260 seconds)
2020-10-28 17:50:11 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-10-28 17:52:32 +0100shafox(~Srain@106.51.234.111)
2020-10-28 17:54:57 +0100Ariakenom(~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se)
2020-10-28 17:58:19 +0100justsomeguy(~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b)
2020-10-28 17:58:19 +0100justsomeguy(~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) (Changing host)
2020-10-28 17:58:19 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-10-28 17:58:35 +0100knupfer(~Thunderbi@200116b82c8890009dcece03b1dbb634.dip.versatel-1u1.de) (Quit: knupfer)
2020-10-28 17:58:46 +0100knupfer(~Thunderbi@200116b82c88900030a49d309e535b83.dip.versatel-1u1.de)
2020-10-28 17:59:02 +0100knupfer(~Thunderbi@200116b82c88900030a49d309e535b83.dip.versatel-1u1.de) (Client Quit)
2020-10-28 17:59:12 +0100knupfer(~Thunderbi@200116b82c889000692da158e2b06244.dip.versatel-1u1.de)
2020-10-28 17:59:31 +0100knupfer(~Thunderbi@200116b82c889000692da158e2b06244.dip.versatel-1u1.de) (Client Quit)
2020-10-28 17:59:48 +0100knupfer(~Thunderbi@200116b82c889000c591b125fca64e2d.dip.versatel-1u1.de)
2020-10-28 18:02:50 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-10-28 18:03:25 +0100is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
2020-10-28 18:03:41 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-10-28 18:04:24 +0100 <devalot> Haskell Cafe is still using mailman 2 and it appears there are issues with SPF and DMARC. As an example, I posted a message a few weeks ago. One person responded directly to me and the list. Neither message is in the archive. Is it just me or do others have problems with the mailing list?
2020-10-28 18:07:31 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 18:11:17 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-10-28 18:12:44 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 18:12:46 +0100aidecoe(~aidecoe@unaffiliated/aidecoe)
2020-10-28 18:16:04 +0100uhrenmacher(~uhrenmach@p200300ef8f06020024f0b14712d0bcf7.dip0.t-ipconnect.de)
2020-10-28 18:17:57 +0100hackagekeycloak-hs 2.0.2 - https://hackage.haskell.org/package/keycloak-hs-2.0.2 (CorentinDupont)
2020-10-28 18:18:34 +0100 <geekosaur> devalot, try in #haskell-infrastructure
2020-10-28 18:19:46 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-10-28 18:20:14 +0100britva(~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef)
2020-10-28 18:20:54 +0100Franciman(~francesco@host-82-54-10-114.retail.telecomitalia.it) (Quit: Leaving)
2020-10-28 18:24:02 +0100kayvan(~user@52-119-115-243.PUBLIC.monkeybrains.net)
2020-10-28 18:24:39 +0100uhrenmacher(~uhrenmach@p200300ef8f06020024f0b14712d0bcf7.dip0.t-ipconnect.de) (Quit: )
2020-10-28 18:24:57 +0100hololeap(~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
2020-10-28 18:26:28 +0100hackagecut-the-crap 2.2.0 - Cuts out uninteresting parts of videos by detecting silences. https://hackage.haskell.org/package/cut-the-crap-2.2.0 (Jappie)
2020-10-28 18:32:04 +0100 <justsomeguy> Hi there -- I'm on HPFP, chapter 8, learning about the basics of recursion. I'm writing a recursive function to multiply two numbers by repeatedly adding, and having trouble figuring out what I'm doing wrong. It works for positive inputs, but reverses the sign for negative inputs. Would someone mind taking a look at my code and giving me a hint? https://github.com/kingparra/multiply/blob/master/src/Lib.hs
2020-10-28 18:32:49 +0100 <lyxia> devalot: I've noticed that happening also a few weeks ago.
2020-10-28 18:33:48 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 18:34:06 +0100ggole(~ggole@2001:8003:8119:7200:517f:9804:f25b:eb42) (Quit: Leaving)
2020-10-28 18:35:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2020-10-28 18:36:06 +0100 <justsomeguy> Ah, ok, seems I hadn't considered the case where y is negative.
2020-10-28 18:36:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 18:38:09 +0100thunderrd(~thunderrd@183.182.111.47) (Ping timeout: 272 seconds)
2020-10-28 18:39:53 +0100rx_(63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207)
2020-10-28 18:43:21 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-10-28 18:47:58 +0100pjb(~t@2a01cb04063ec5000c3dc2e28b3d9ccb.ipv6.abo.wanadoo.fr)
2020-10-28 18:48:10 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2020-10-28 18:48:14 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds)
2020-10-28 18:50:46 +0100thunderrd(~thunderrd@183.182.115.112)
2020-10-28 18:51:10 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 258 seconds)
2020-10-28 18:51:57 +0100Chi1thangoo(~Chi1thang@87.112.60.168) (Read error: Connection reset by peer)
2020-10-28 18:54:10 +0100kayvan(~user@52-119-115-243.PUBLIC.monkeybrains.net) (Remote host closed the connection)
2020-10-28 18:54:18 +0100akad(~akad@109107030050.radomsko.vectranet.pl)
2020-10-28 18:54:54 +0100hololeap(~hololeap@unaffiliated/hololeap)
2020-10-28 18:55:33 +0100hololeap(~hololeap@unaffiliated/hololeap) (Max SendQ exceeded)
2020-10-28 18:55:38 +0100Chi1thangoo(~Chi1thang@87.112.60.168)
2020-10-28 18:56:03 +0100hololeap(~hololeap@unaffiliated/hololeap)
2020-10-28 18:56:31 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-10-28 18:56:44 +0100rx_(63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) (Ping timeout: 240 seconds)
2020-10-28 18:56:51 +0100 <typetetris> https://github.com/ghc-proposals/ghc-proposals/pull/313 was touched last time in September ... hopefully it doesn't fizzle out.
2020-10-28 18:58:31 +0100asheshambasta(~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds)
2020-10-28 18:59:01 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2020-10-28 18:59:24 +0100rx_(63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207)
2020-10-28 18:59:46 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-10-28 19:00:00 +0100ixlun(~matthew@213.205.241.94)
2020-10-28 19:00:11 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-28 19:00:31 +0100britva(~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef) (Quit: This computer has gone to sleep)
2020-10-28 19:01:12 +0100is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-28 19:01:45 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
2020-10-28 19:02:04 +0100 <ixlun> Hi all, I was wondering if someone may
2020-10-28 19:02:16 +0100 <ixlun> be able to help me with some performance issues
2020-10-28 19:02:42 +0100 <ixlun> After 1 min of execution I'm getting: total alloc = 60,821,691,232 bytes
2020-10-28 19:03:07 +0100 <ixlun> so I'm presuming I've got a space leak somehwere
2020-10-28 19:03:25 +0100Ariakenom_(~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se) (Quit: Leaving)
2020-10-28 19:04:42 +0100 <ixlun> apparently, (!) in https://termbin.com/7iia is responsible for a large part of that
2020-10-28 19:04:42 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-28 19:05:02 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-28 19:05:27 +0100kuribas(~user@ptr-25vy0i9apvg5lclnymw.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-10-28 19:05:31 +0100 <monsterchrom> IIRC "total alloc" means nothing when taken out of context.
2020-10-28 19:06:12 +0100 <monsterchrom> The correct first step is to look at "resident memory" only.
2020-10-28 19:07:09 +0100 <monsterchrom> And the best way is to use the unix/linux programs "top" or "htop" to look at RSS only. Not even "virtual whatever", that's a lie.
2020-10-28 19:07:23 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-10-28 19:10:43 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 19:10:50 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-10-28 19:12:23 +0100Kaivo(~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) (Ping timeout: 260 seconds)
2020-10-28 19:13:08 +0100 <ixlun> Hmm, I don't think it looks that terrible,
2020-10-28 19:13:24 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-10-28 19:13:27 +0100 <ixlun> but doesn't the above imply lots and lots of GC is occuring?
2020-10-28 19:13:53 +0100bennofs1(~benno@dslb-178-000-065-150.178.000.pools.vodafone-ip.de)
2020-10-28 19:13:53 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-28 19:14:01 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-28 19:14:39 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com)
2020-10-28 19:14:41 +0100 <dolio> Space leaks aren't the same as doing lots of GC.
2020-10-28 19:14:42 +0100 <monsterchrom> Yes, that does.
2020-10-28 19:14:51 +0100 <monsterchrom> And what dolio said.
2020-10-28 19:15:39 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-10-28 19:16:03 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 19:17:44 +0100jesser[m](jessermatr@gateway/shell/matrix.org/x-fexhchkhagwtqfyl)
2020-10-28 19:17:44 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-28 19:18:22 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-28 19:19:00 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-28 19:19:11 +0100 <rx_> what column is rss?
2020-10-28 19:19:32 +0100 <monsterchrom> Sorry, RES
2020-10-28 19:20:25 +0100taurux(~taurux@net-188-216-13-237.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
2020-10-28 19:21:46 +0100ranman1(~ranman@217.146.82.202)
2020-10-28 19:22:12 +0100taurux(~taurux@net-188-216-115-134.cust.vodafonedsl.it)
2020-10-28 19:24:26 +0100 <ixlun> Hmm, I think I need to do some reasrch on optimising Haskell
2020-10-28 19:24:27 +0100hackagepolysemy-methodology 0.1.0.0 - Domain modelling algebra for polysemy https://hackage.haskell.org/package/polysemy-methodology-0.1.0.0 (locallycompact)
2020-10-28 19:26:46 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-10-28 19:30:03 +0100ishutin_(~Ishutin@92-249-182-32.pool.digikabel.hu)
2020-10-28 19:32:49 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-28 19:33:13 +0100ishutin(~Ishutin@80-95-82-226.pool.digikabel.hu) (Ping timeout: 256 seconds)
2020-10-28 19:34:24 +0100idhugo(~idhugo@563472ae.rev.stofanet.dk) (Ping timeout: 240 seconds)
2020-10-28 19:34:58 +0100hackagehex-text 0.1.0.2 - ByteString-Text hexidecimal conversions https://hackage.haskell.org/package/hex-text-0.1.0.2 (chris_martin)
2020-10-28 19:35:31 +0100dcoutts_(~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 246 seconds)
2020-10-28 19:37:01 +0100kish(~oracle@unaffiliated/oracle) (Remote host closed the connection)
2020-10-28 19:37:10 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
2020-10-28 19:38:25 +0100kish(~oracle@unaffiliated/oracle)
2020-10-28 19:41:38 +0100dcoutts_(~duncan@33.14.75.194.dyn.plus.net)
2020-10-28 19:41:58 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net)
2020-10-28 19:43:10 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-10-28 19:44:02 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net)
2020-10-28 19:45:30 +0100Varis(~Tadas@unaffiliated/varis) (Ping timeout: 272 seconds)
2020-10-28 19:45:46 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-10-28 19:46:25 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds)
2020-10-28 19:46:25 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Remote host closed the connection)
2020-10-28 19:46:40 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds)
2020-10-28 19:47:57 +0100rx_(63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) ()
2020-10-28 19:48:12 +0100nyaomi(~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89) (Quit: meow)
2020-10-28 19:51:03 +0100rx_(63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207)
2020-10-28 19:51:45 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
2020-10-28 19:51:47 +0100 <rx_> hm, so `let double x = 2 * x; let quadruple x = quadruple (double x)` almost crashed my computer
2020-10-28 19:52:01 +0100 <rx_> why's that?
2020-10-28 19:52:10 +0100 <rx_> using ghci
2020-10-28 19:52:34 +0100 <geekosaur> because quadruple calls itself immediately
2020-10-28 19:52:35 +0100dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
2020-10-28 19:52:58 +0100 <rx_> but it's not defined
2020-10-28 19:53:09 +0100 <geekosaur> it's defined recursively at that point
2020-10-28 19:53:17 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-10-28 19:53:20 +0100 <rx_> ok
2020-10-28 19:53:36 +0100 <rx_> can I limit the "heap" space
2020-10-28 19:53:41 +0100is_null(~jpic@pdpc/supporter/professional/is-null) (Read error: Connection reset by peer)
2020-10-28 19:53:43 +0100 <geekosaur> let defines things recursively. this is a feature when used appropriately since infinite values are useful when they're productive
2020-10-28 19:53:59 +0100Kolkrabe(~user@unaffiliated/siracusa)
2020-10-28 19:54:09 +0100 <geekosaur> > let ones = 1 : ones in take 10 ones
2020-10-28 19:54:12 +0100 <lambdabot> [1,1,1,1,1,1,1,1,1,1]
2020-10-28 19:54:45 +0100GyroW_(~GyroW@d54C03E98.access.telenet.be)
2020-10-28 19:54:45 +0100GyroW_(~GyroW@d54C03E98.access.telenet.be) (Changing host)
2020-10-28 19:54:45 +0100GyroW_(~GyroW@unaffiliated/gyrow)
2020-10-28 19:54:49 +0100fabianhjr(~fabian@2806:106e:18:31bb:397f:b3aa:2c0e:c3b3)
2020-10-28 19:54:49 +0100fabianhjr(~fabian@2806:106e:18:31bb:397f:b3aa:2c0e:c3b3) (Client Quit)
2020-10-28 19:55:07 +0100 <geekosaur> there are ways to limit heap but it'll still crash ghci
2020-10-28 19:55:09 +0100 <rx_> that's haskell after the : ?
2020-10-28 19:55:29 +0100 <geekosaur> yes
2020-10-28 19:55:44 +0100GyroW(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-28 19:56:04 +0100 <geekosaur> (x:xs) is the fundamental way of building a list
2020-10-28 19:56:13 +0100 <rx_> oh yeah
2020-10-28 19:56:23 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-10-28 19:56:29 +0100 <rx_> I thought it was a separator for a moment
2020-10-28 19:56:31 +0100 <rx_> thanks
2020-10-28 19:59:57 +0100hackagevimeta 0.3.0.1 - Frontend for video metadata tagging tools https://hackage.haskell.org/package/vimeta-0.3.0.1 (PeterJones)
2020-10-28 20:00:14 +0100knupfer(~Thunderbi@200116b82c889000c591b125fca64e2d.dip.versatel-1u1.de) (Remote host closed the connection)
2020-10-28 20:00:23 +0100knupfer(~Thunderbi@200116b82c889000d491c85aad532716.dip.versatel-1u1.de)
2020-10-28 20:00:24 +0100mirrorbird(~psutcliff@m83-187-163-53.cust.tele2.se) (Ping timeout: 240 seconds)
2020-10-28 20:00:49 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2020-10-28 20:01:05 +0100nineonine(~textual@216.81.48.202)
2020-10-28 20:01:12 +0100alp(~alp@2a01:e0a:58b:4920:d435:c55a:9994:ea6)
2020-10-28 20:03:27 +0100 <dminuoso> rx_: As a useful note, (:) is actually just a data constructor that happens to look like an operator. :)
2020-10-28 20:03:29 +0100conal(~conal@64.71.133.70)
2020-10-28 20:03:30 +0100berberman_(~berberman@unaffiliated/berberman)
2020-10-28 20:04:04 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds)
2020-10-28 20:04:21 +0100 <dminuoso> One could assume list was defined as `data [a] = a : [a] | []` - or alternatively as `data List a = Cons a [a] | Nil`. In this second version `Cons` takes the role of (:) :)
2020-10-28 20:04:29 +0100is_null(~jpic@pdpc/supporter/professional/is-null)
2020-10-28 20:05:11 +0100 <rx_> what does caps mean in hs ?
2020-10-28 20:05:22 +0100 <rx_> library function?
2020-10-28 20:05:33 +0100 <geekosaur> initial capital is a constructor, vs. a variable/binding
2020-10-28 20:05:46 +0100 <rx_> oh ok
2020-10-28 20:06:22 +0100 <geekosaur> this is important in pattersn so it knows which parts are structural to be matched against, vs. which parts are data that can be bound to
2020-10-28 20:06:40 +0100bartemius(~bartemius@109-252-20-20.nat.spd-mgts.ru)
2020-10-28 20:06:55 +0100 <dminuoso> Oh, I messed up the second declaration. That should have read `data List a = Cons a (List a) | Nil` of course.
2020-10-28 20:06:59 +0100fmeyer(~fmeyer@p4fc127b6.dip0.t-ipconnect.de)
2020-10-28 20:07:06 +0100 <dminuoso> % data List a = Cons a (List a) | Nil
2020-10-28 20:07:06 +0100 <yahb> dminuoso:
2020-10-28 20:07:25 +0100tdhttt(~tdhttt@static-198-54-131-149.cust.tzulo.com) (Ping timeout: 240 seconds)
2020-10-28 20:07:49 +0100 <geekosaur> when using infix constructors, initial colon (:) is "capital" (borrowed from list syntax)
2020-10-28 20:07:56 +0100ulidtko|k(~ulidtko@193.111.48.79) (Remote host closed the connection)
2020-10-28 20:08:02 +0100 <rx_> hmm, there is no way out of the quadruple function is there
2020-10-28 20:08:14 +0100ulidtko|k(~ulidtko@193.111.48.79)
2020-10-28 20:08:25 +0100 <geekosaur> not as written. but did you want double (double x) ?
2020-10-28 20:08:38 +0100 <rx_> I'm tracing through it but I realize it needs a way out
2020-10-28 20:08:48 +0100 <rx_> ah no, just going through the haskell wikibook
2020-10-28 20:09:16 +0100 <rx_> clever question by the author I guess :]
2020-10-28 20:09:16 +0100 <hyperisco> okay I hate exceptions in Haskell now
2020-10-28 20:09:17 +0100 <geekosaur> either that, or a way to produce a partial result before it recurses (like the `ones` example)
2020-10-28 20:09:33 +0100 <hyperisco> so about them checked exceptions
2020-10-28 20:09:35 +0100 <geekosaur> hyperisco, what took you so long?
2020-10-28 20:09:49 +0100 <hyperisco> I have never written a program that does IO in Haskell until now lol
2020-10-28 20:09:49 +0100damianfral4(~damianfra@243.red-176-80-34.dynamicip.rima-tde.net) (Ping timeout: 264 seconds)
2020-10-28 20:09:58 +0100tdhttt(~tdhttt@2600:8802:2203:2500:49a:4401:3967:ca62)
2020-10-28 20:09:59 +0100 <hyperisco> you know how Haskell is also a research language?
2020-10-28 20:10:11 +0100 <hyperisco> so anyways, every exception is a SomeException right?
2020-10-28 20:10:17 +0100 <geekosaur> yes
2020-10-28 20:10:22 +0100 <hyperisco> okay then it is fixed
2020-10-28 20:10:51 +0100 <hyperisco> I am just in two minds that you either have unityped errors or you have checked errors, and checked errors are not really so useful
2020-10-28 20:11:02 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-28 20:11:29 +0100 <hyperisco> a half-way of unchecked I dunno what type you're throwing is unpleasant
2020-10-28 20:11:39 +0100 <dsal> I'm a pretty non-fan of checked exceptions. I've gone from "I hate exceptions in Haskell" to "Eh"
2020-10-28 20:12:03 +0100 <dminuoso> dsal: Are you opposed to the general idea of it, or to specific implementations of it?
2020-10-28 20:12:11 +0100Amras(~Amras@unaffiliated/amras0000)
2020-10-28 20:12:11 +0100 <dminuoso> Because why would you willingly discard information?
2020-10-28 20:12:21 +0100 <dsal> I've only experienced in Java, and most of what I've done there is get rid of things.
2020-10-28 20:13:08 +0100 <dsal> It just seems to sprawl without bounds and get wrapped in other thing that make it somewhat lossy. I don't think it *can't* be done, but the Java experiment was very bad.
2020-10-28 20:13:10 +0100 <hyperisco> dminuoso, you'd willingly discard information when there is no decisions to be made on the basis of that information
2020-10-28 20:13:25 +0100 <hyperisco> because, otherwise, it is extra effort to keep around
2020-10-28 20:13:27 +0100 <geekosaur> ^
2020-10-28 20:13:47 +0100 <dminuoso> hyperisco: Why do decisions need to be made? Isn't it enough to have some kind of proof your program is right?
2020-10-28 20:13:50 +0100 <dsal> Yeah, like, I'd be fine with a handler somewhere that could infer what exceptions were in scope.
2020-10-28 20:13:58 +0100 <hyperisco> and it just seems to be that, for many uses, a string message and maybe a stack trace and maybe a source line suffices
2020-10-28 20:14:02 +0100 <dminuoso> In a similar sense to how type systems dont make active decisions for you, they just filter out bad programs.
2020-10-28 20:14:25 +0100 <dsal> i.e., when you go to write an exception handler, it would be aware of the things that might be thrown. If you're not writing an exception handler, you shouldn't have to say anything.
2020-10-28 20:14:30 +0100 <dminuoso> "Oops forgot to catch an exception here" can lead to brittle software in production.
2020-10-28 20:14:53 +0100 <dsal> I've seen far more bugs from "I was forced to deal with an exception here" than forgetting to catch them.
2020-10-28 20:15:03 +0100 <dsal> Crashes > bad behavior.
2020-10-28 20:15:13 +0100 <hyperisco> dminuoso, what is the point of having more than one exception type?
2020-10-28 20:15:16 +0100 <dminuoso> Not sure whether the > denotes badness or goodness.
2020-10-28 20:15:26 +0100 <rx_> dminuoso, it seems hard to solve just forgetting to do something
2020-10-28 20:15:35 +0100 <dsal> Heh. I'd rather have software crash than behave incorrectly.
2020-10-28 20:15:58 +0100 <dminuoso> dsal: Depends on what the cost of crash recovery is.
2020-10-28 20:16:03 +0100 <dsal> But I'd be open to "what kinds of crashes might occur here"
2020-10-28 20:16:29 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-28 20:16:40 +0100 <dminuoso> hyperisco: The same point of having more than one data type?
2020-10-28 20:16:42 +0100 <dsal> The cost of crash recovery is probably less than the cost of "the software just did the wrong thing that was kind of undefined"
2020-10-28 20:16:52 +0100 <dminuoso> The ability to pattern match on it, and make decisions.
2020-10-28 20:17:05 +0100 <dsal> I used to write a lot of erlang, though, where crashing is great.
2020-10-28 20:17:05 +0100 <hyperisco> dminuoso, I think that is a good hypothesis but my experience is that it does not bear out
2020-10-28 20:17:11 +0100 <dminuoso> dsal: Id argue that depends greatly on the problem domain of your software.
2020-10-28 20:17:45 +0100 <dminuoso> hyperisco: So perhaps the right ergonomics haven't been discovered or implemented yet. Im merely suggesting that in principle checked exceptions seems like a desirable thing.
2020-10-28 20:17:57 +0100 <dsal> Maybe, but I'd think undefined behavior is generally worse than crashed program.
2020-10-28 20:18:10 +0100 <hyperisco> dminuoso, I found some utility with file system operations, because you can glean the state of the file system (or at least what the state was) by which exception was thrown
2020-10-28 20:18:16 +0100 <dminuoso> Because I'd rather have my compiler tell me "you have an uncaught exception here" than to discover this at runtime.
2020-10-28 20:18:22 +0100 <dminuoso> I mean folks, that's precisely why we love our typesystem.
2020-10-28 20:18:27 +0100 <dsal> dminuoso: I'm not sure I disagree with you in general. It wouldn't be the only thing Java got very wrong.
2020-10-28 20:18:54 +0100akad_(~akad@109107030050.radomsko.vectranet.pl)
2020-10-28 20:19:16 +0100akad(~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 246 seconds)
2020-10-28 20:19:20 +0100 <hyperisco> dminuoso, if the ergonomics were sufficient that you could largely ignore it when it is not needed then the cost of having it around would be near zero and I wouldn't complain :)
2020-10-28 20:19:32 +0100Tops21(~Tobias@dyndsl-095-033-093-217.ewe-ip-backbone.de) (Quit: Leaving.)
2020-10-28 20:19:35 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-28 20:19:40 +0100day(~Unknown@unaffiliated/day) (Ping timeout: 260 seconds)
2020-10-28 20:19:54 +0100 <dsal> I think most places there's a try block in java, nobody should be dealing with exceptions at all. A catch block does one of three things: 1. Rewraps an exception to satisfy the type system, 2. possibly does something sensible, 3. introduces a bug.
2020-10-28 20:19:59 +0100 <dsal> These are the things I'd want to avoid.
2020-10-28 20:20:39 +0100mirrorbird(~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
2020-10-28 20:21:02 +0100 <dsal> #2 there is OK. Most places there's a try block, we probably just want finally. That's easy to do in Haskell already. So the checked exceptions system needs to let me ignore exceptions where I need them. Then I'm happy with the compiler letting me know I introduced a new exception that I've not considered.
2020-10-28 20:21:06 +0100 <hyperisco> dminuoso, I think type inference demonstrates a strong antagonism to types
2020-10-28 20:21:08 +0100 <dsal> Hopefully I can also still do partial exception handler.
2020-10-28 20:21:19 +0100 <dminuoso> dsal: Interestingly, in Haskell we have related issues with recovery mechanisms in Control.Exception - a plain `catch f (\(e :: SomeException) -> ...)` will catch and recover from async exceptions.
2020-10-28 20:21:21 +0100 <dsal> Wait, what?
2020-10-28 20:21:53 +0100 <hyperisco> dminuoso, I think it says we want automatic analysis without the expense of explaining ourselves
2020-10-28 20:22:08 +0100rx_(63f22acf@gateway/web/cgi-irc/kiwiirc.com/ip.99.242.42.207) (Quit: Connection closed)
2020-10-28 20:22:14 +0100 <dminuoso> hyperisco: I'd say type inference is a compromise.
2020-10-28 20:22:17 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-10-28 20:22:34 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 20:22:34 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 20:22:34 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 20:22:44 +0100GyroW_(~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
2020-10-28 20:22:51 +0100 <dsal> dminuoso: Yeah, I think it can be better. I'm going to go ahead and say your initial assessment of my opinion is probably right. Something hurt me, but that doesn't mean all things will.
2020-10-28 20:23:05 +0100 <hyperisco> and I'd admit that probably the worst annoyance of Java that C# fixed was type inference for variable declarations
2020-10-28 20:23:08 +0100 <dminuoso> So a system of checked exceptions should, ideally, have a similar model of type inference, where the type checker would automatically deduce what exceptions can be thrown, which exceptions are removed, and so forth.
2020-10-28 20:23:23 +0100acidjnk_new(~acidjnk@p200300d0c7237897ad6a1cb47299ad15.dip0.t-ipconnect.de)
2020-10-28 20:23:35 +0100 <dsal> Type inference just prevents you from having to talk about types all over the place. You *need* to talk about your types in some place.
2020-10-28 20:23:41 +0100 <dminuoso> In a way where you can suddenly hop in and declare some fact, and then let the checker verify whether this leads to conflicts with all the inferred things
2020-10-28 20:24:00 +0100 <dminuoso> dsal: Right! The more you elaborate, the better type errors get.
2020-10-28 20:24:14 +0100sphalerite(~sphalerit@NixOS/user/lheckemann) (Quit: nixos 20.09, here I come!)
2020-10-28 20:24:36 +0100 <dminuoso> I mean we see this in multiple levels. It frequently happens that I encounter GHC errors in all the wrong places, because of the way type inference works.
2020-10-28 20:24:51 +0100 <hyperisco> even on TLDs is a burden
2020-10-28 20:25:02 +0100 <hyperisco> literally dozens of exception types build up
2020-10-28 20:25:29 +0100 <hyperisco> are you going to keep typing those all out? unlikely
2020-10-28 20:26:19 +0100dexterlb(~dexterlb@2a01:9e40:2:2::2) (Quit: Boing)
2020-10-28 20:26:50 +0100conal(~conal@64.71.133.70)
2020-10-28 20:27:51 +0100dexterlb(~dexterlb@2a01:9e40:2:2::2)
2020-10-28 20:28:12 +0100 <hyperisco> probably there is a type synonym at the top of the file for the union of all exceptions thrown by definitions in that file, because then it is much shorter and less noisy
2020-10-28 20:28:34 +0100nineonine(~textual@216.81.48.202) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 20:29:11 +0100 <hyperisco> but then you're weakening all your definitions, and largely forgoing any purpose the feature had in the first place
2020-10-28 20:30:30 +0100 <hyperisco> I feel like some of you are in the "wouldn't it be great if" stage of the discussion, and I am in the "it wasn't so great" part of the discussion
2020-10-28 20:31:09 +0100 <hyperisco> but I haven't applied checked exceptions to every domain of programming… like I said, some use in file system APIs. Could be others.
2020-10-28 20:31:28 +0100 <dolio> Which one wasn't great?
2020-10-28 20:31:44 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
2020-10-28 20:32:05 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-10-28 20:32:05 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-10-28 20:32:37 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-10-28 20:33:36 +0100 <hyperisco> checked exceptions as a type list / row type
2020-10-28 20:33:56 +0100mmohammadi9812(~mmohammad@2.178.160.31) (Read error: Connection reset by peer)
2020-10-28 20:34:02 +0100 <dolio> In what context? Haskell?
2020-10-28 20:34:06 +0100mmohammadi9812(~mmohammad@2.178.160.31)
2020-10-28 20:34:17 +0100 <hyperisco> I was using PureScript but I don't see why the conclusions wouldn't port
2020-10-28 20:35:14 +0100jakob_(~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2020-10-28 20:35:14 +0100 <hyperisco> related, that is a language that had a concept of effect rows and removed them, was a hugely breaking change
2020-10-28 20:35:51 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-10-28 20:36:45 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-10-28 20:36:54 +0100user01_(~user01@179.181.12.232)
2020-10-28 20:37:08 +0100user01_(~user01@179.181.12.232) ("Leaving")
2020-10-28 20:37:52 +0100 <dolio> Well, any judgment based on an expectation of GHC type programming doesn't sound relevant, for instance, because I would imagine the point would be to design an exception system with usability in mind, and complicated GHC type hackery is usually the antithesis of that.
2020-10-28 20:38:02 +0100 <davean> I've used it in a few Haskell projects.
2020-10-28 20:38:06 +0100 <davean> It wasn't terrible.
2020-10-28 20:38:18 +0100jneira(501e64fa@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.250)
2020-10-28 20:38:23 +0100shafox(~Srain@106.51.234.111) (Read error: Connection reset by peer)
2020-10-28 20:38:26 +0100 <davean> I didn't keep using it.
2020-10-28 20:38:53 +0100geekosaurcan't help but think "wasn't terrible" is not a usability milestone to reach for
2020-10-28 20:39:02 +0100 <hyperisco> there could be a more palatable system out there… but I think we can look at Java and see that isn't it either, though that seems contended. I'm not Java programmer
2020-10-28 20:39:23 +0100 <dolio> Anything concluded based on Java is also irrelevant.
2020-10-28 20:39:51 +0100 <davean> http://hackage.haskell.org/package/control-monad-exception is the one I used IIRC.
2020-10-28 20:40:03 +0100 <hyperisco> you should consider it relevant, because if you exclude yourself from tried examples then how do you avoid repeating them
2020-10-28 20:40:42 +0100 <hyperisco> your chance of success in designing a better system is lessened if you don't fill these potholes first
2020-10-28 20:40:53 +0100 <dolio> No, the point is to design a good system, so saying that Java's isn't good doesn't mean that there can't be a good one. This is just the argument that all type systems are bad because Java's is bad.
2020-10-28 20:41:08 +0100 <hyperisco> that wasn't my argument, but never mind
2020-10-28 20:41:29 +0100 <davean> Is this discussion going anywhere useful?
2020-10-28 20:41:36 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection)
2020-10-28 20:42:12 +0100 <dminuoso> And who knows, perhaps there's some cool ways to build a workable idea into the Haskell type system that either nobody has thought of before, or it hasn't risen to popularity yet.
2020-10-28 20:42:52 +0100Athas(athas@2a01:7c8:aaac:1cf:3df1:2652:30d1:76b7) (Quit: ZNC - http://znc.sourceforge.net)
2020-10-28 20:43:02 +0100Athas(athas@2a01:7c8:aaac:1cf:a58f:f586:d8cf:e687)
2020-10-28 20:43:46 +0100 <dminuoso> I guess the real problem is type inference at the end, it seems like an almost trivial task to build checked exceptions without the backdoors Java has.
2020-10-28 20:44:15 +0100 <hyperisco> I think it starts with another look at exactly what the problem is and allowing new ideas to come in
2020-10-28 20:45:09 +0100u0_a298(~user@47.206.148.226)
2020-10-28 20:45:24 +0100 <dolio> If the other example is PureScript's Eff, then I think it also isn't a very good example. It was kind of the most bare bones step in that direction, missing a lot of stuff that could potentially make such a system useful. At least, if I recall correctly.
2020-10-28 20:45:51 +0100 <hyperisco> the need to throw multiple exception types, and now how do we analyse that with types or other static analysis, are the assumptions that need to be revisited
2020-10-28 20:46:21 +0100 <dminuoso> The last time I had this type of discussion, it was theorized that checked exceptions might perhaps best live in separate type system.
2020-10-28 20:46:42 +0100 <dminuoso> Id have to dig my logs to find the exact arguments for this
2020-10-28 20:46:44 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
2020-10-28 20:46:51 +0100 <hyperisco> dolio, it was done away with because it was more work for the programmer without substantial (or I might argue any) payoff
2020-10-28 20:46:57 +0100mmohammadi9812(~mmohammad@2.178.160.31) (Read error: Connection reset by peer)
2020-10-28 20:47:07 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-10-28 20:47:23 +0100mmohammadi9812(~mmohammad@2.178.160.31)
2020-10-28 20:47:24 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-10-28 20:47:45 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-10-28 20:48:06 +0100 <hyperisco> and it relates because the symptoms are similar… it accumulated effects as a row type, there weren't interesting ways to discharge most of them, so all rows tended to be widened to the union of all effects
2020-10-28 20:48:08 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 20:48:14 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-10-28 20:48:16 +0100 <dolio> It was like, 'what if instead of IO there were a bunch of fine grained but still opaque monads, but that's it.' And it turns out that isn't super useful for browser stuff. Just keeping track of FileInput vs. FileOutput in a completely non-acionable way is not useful.
2020-10-28 20:48:36 +0100 <dolio> Non-actionable, even.
2020-10-28 20:48:40 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 20:48:59 +0100 <hyperisco> this concept of effects was without the utility of interpretation, so it isn't to be compared to effect systems
2020-10-28 20:50:29 +0100 <hyperisco> dolio, no it was even sillier than that, it was more like you had a NOW effect if you called Date.getNow(), and a AJAX effect if you used XmlHttpRequest, and several other made up… lets say "tags"
2020-10-28 20:50:44 +0100nek0(~nek0@mail.nek0.eu) (Quit: The Lounge - https://thelounge.chat)
2020-10-28 20:51:04 +0100alp(~alp@2a01:e0a:58b:4920:d435:c55a:9994:ea6) (Ping timeout: 240 seconds)
2020-10-28 20:51:05 +0100 <hyperisco> the only one I can argue had utility was the EXCEPTION effect, which is caused by throw and could be discharged with a catch
2020-10-28 20:51:34 +0100 <hyperisco> what is the use of a type… it is found through the ways it is introduced and the ways in which it is eliminated
2020-10-28 20:51:39 +0100 <dolio> Yeah. Just tracking whether or not you use getNow in particular is not useful.
2020-10-28 20:51:57 +0100nek0(~nek0@mail.nek0.eu)
2020-10-28 20:52:18 +0100 <hyperisco> the effect rows in PS were almost all with introductions and without eliminations, and so that is how I'd argue they had no use
2020-10-28 20:52:39 +0100 <dolio> Yeah, but exceptions can be caught.
2020-10-28 20:52:44 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 20:52:46 +0100 <hyperisco> they let you look at a definition and say "oh that uses XmlHttpRequest somewhere" and then not do anything about it, seemingly
2020-10-28 20:52:56 +0100 <dolio> So they are unlike that kind of useless tracking.
2020-10-28 20:53:15 +0100 <hyperisco> yes, _when_ they can be sensibly caught
2020-10-28 20:53:39 +0100 <hyperisco> and why would you catch them? because you know what they mean and you can decide something based on that meaning
2020-10-28 20:54:03 +0100 <hyperisco> and it seems to be that, many times, that just isn't the case
2020-10-28 20:54:11 +0100conal(~conal@64.71.133.70)
2020-10-28 20:55:01 +0100 <hyperisco> so a solution should account for the reality that, much of the time, it is an unneeded facility
2020-10-28 20:55:26 +0100 <geekosaur> that seems to depend on what you're using it for. service? you probably want to catch a lot of stuff for resource management reasons if nothing else. simple client? probably just let it abort
2020-10-28 20:56:26 +0100crestfallen(~john@128.32.176.159)
2020-10-28 20:58:35 +0100u0_a298(~user@47.206.148.226) (Read error: Connection reset by peer)
2020-10-28 20:59:05 +0100u0_a298(~user@47.206.148.226)
2020-10-28 21:00:04 +0100ystael(~ystael@209.6.50.55) (Ping timeout: 240 seconds)
2020-10-28 21:01:08 +0100Varis(~Tadas@unaffiliated/varis)
2020-10-28 21:01:54 +0100bartemius(~bartemius@109-252-20-20.nat.spd-mgts.ru) (Remote host closed the connection)
2020-10-28 21:02:04 +0100 <hyperisco> so I said I hated Haskell exceptions just a while ago… why… well lets ignore the conclusion that all exceptions are a SomeException and can be caught that way
2020-10-28 21:02:19 +0100 <hyperisco> lets say to catch a thrown exception you had to name the type of that exception exactly
2020-10-28 21:02:46 +0100dopplerg-(~dop@titan.pathogen.is) (Ping timeout: 256 seconds)
2020-10-28 21:02:51 +0100 <geekosaur> the ergonomics of that are also something of a problem imo
2020-10-28 21:02:58 +0100ixlun(~matthew@213.205.241.94) (Read error: Connection reset by peer)
2020-10-28 21:03:02 +0100 <hyperisco> then there is a documentation problem of knowing how to catch an exception, because you know not which exception type is thrown or where it is thrown
2020-10-28 21:03:29 +0100 <hyperisco> and that is something checked exceptions would fix, yes, but so does catching SomeException
2020-10-28 21:03:32 +0100u0_a298(~user@47.206.148.226) (Ping timeout: 260 seconds)
2020-10-28 21:03:35 +0100dopplergange(~dop@titan.pathogen.is)
2020-10-28 21:03:37 +0100nineonine(~textual@216.81.48.202)
2020-10-28 21:03:46 +0100 <dminuoso> A particularly fancy bit about Haskell and checked exceptions is async exceptions.
2020-10-28 21:04:19 +0100 <dminuoso> That alone should thwart an attempt at a complete, type-driven, way of checked exceptions.
2020-10-28 21:04:31 +0100hiroaki(~hiroaki@ip4d176049.dynamic.kabel-deutschland.de)
2020-10-28 21:04:32 +0100 <dminuoso> I just realized.
2020-10-28 21:04:40 +0100 <hyperisco> so then we can either assume all IO throws or we could talk about adding the one bit of information to determine if it throws
2020-10-28 21:05:00 +0100 <dminuoso> hyperisco: It throws. at any time, that means catching doesnt ever remove exceptions
2020-10-28 21:05:06 +0100 <dminuoso> because after its caught, it could be thrown to you again.
2020-10-28 21:05:21 +0100 <hyperisco> sure
2020-10-28 21:06:53 +0100 <hyperisco> just sussing out that there are different facets to what we might consider the problem to be, and it would be smart to not immediately conflate them to necessitate a unified solution
2020-10-28 21:08:12 +0100dopplergange(~dop@titan.pathogen.is) (Ping timeout: 260 seconds)
2020-10-28 21:08:58 +0100Deide(~Deide@217.155.19.23)
2020-10-28 21:11:27 +0100hackageuuagc 0.9.53.1 - Attribute Grammar System of Universiteit Utrecht https://hackage.haskell.org/package/uuagc-0.9.53.1 (JeroenBransen)
2020-10-28 21:11:34 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 21:11:48 +0100 <dminuoso> I guess the above again recognizes, that async exceptions shouldn't share code with regular exceptions. They should be borderline uncatchable.
2020-10-28 21:12:49 +0100 <dolio> Yeah, it doesn't make much sense for async exceptions to be checked.
2020-10-28 21:12:59 +0100onealmond(~onealmond@cpc72411-sotn15-2-0-cust577.15-1.cable.virginm.net)
2020-10-28 21:13:07 +0100geekosaurstill thinks most non-async exceptions should be ExceptT
2020-10-28 21:13:13 +0100 <geekosaur> or similar
2020-10-28 21:13:25 +0100rprije(~rprije@194-193-168-77.tpgi.com.au)
2020-10-28 21:14:03 +0100nuxdie_(uid343142@gateway/web/irccloud.com/x-ctcwkmqltziojobr)
2020-10-28 21:14:06 +0100 <geekosaur> except there's a bootstrapping problem between base and mtl if we do that
2020-10-28 21:14:27 +0100 <hyperisco> indeed that was the term implementation of the checked exceptions I did use
2020-10-28 21:14:47 +0100nuxdie_(uid343142@gateway/web/irccloud.com/x-ctcwkmqltziojobr) (Client Quit)
2020-10-28 21:14:52 +0100 <hyperisco> is as simple as ExceptT and the error type is a variant type, using whatever fancy type features for polymorphic unions
2020-10-28 21:16:08 +0100ystael(~ystael@209.6.50.55)
2020-10-28 21:16:27 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds)
2020-10-28 21:17:10 +0100 <hyperisco> and as complicated as not all monads work as transformers
2020-10-28 21:17:20 +0100nuxdie(uid343142@gateway/web/irccloud.com/x-eubxksbuxauhuttg)
2020-10-28 21:18:19 +0100nyaomi(~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89)
2020-10-28 21:19:35 +0100 <hyperisco> well what do I mean… I mean that stacking ExceptT on another monad does not necessarily give you the semantics you want, which was the case with PureScript's Aff
2020-10-28 21:19:55 +0100Reiser(~0a2a0001@static.210.242.216.95.clients.your-server.de) (Changing host)
2020-10-28 21:19:55 +0100Reiser(~0a2a0001@unaffiliated/reisen)
2020-10-28 21:21:28 +0100 <hyperisco> why? because if you have an M a you can lift it to ExceptT e M a , but if you take an ExceptT e M a you cannot necessarily lower it to M a
2020-10-28 21:21:55 +0100 <hyperisco> and you would need to do that if definitions on M a themselves took an M a
2020-10-28 21:22:09 +0100 <hyperisco> such as… bracketing
2020-10-28 21:22:10 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 21:24:37 +0100dopplergange(~dop@titan.pathogen.is)
2020-10-28 21:25:19 +0100blissful(~azuline@unaffiliated/azuline)
2020-10-28 21:25:57 +0100dopplergange(~dop@titan.pathogen.is) (Read error: Connection reset by peer)
2020-10-28 21:26:10 +0100dopplergange(~dop@titan.pathogen.is)
2020-10-28 21:29:32 +0100acidjnk_new2(~acidjnk@p200300d0c7226033a9f8e60d1c4e3d2a.dip0.t-ipconnect.de)
2020-10-28 21:29:43 +0100notnatebtw(~nate@125.161.130.165) (Quit: WeeChat 2.9)
2020-10-28 21:29:47 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-10-28 21:30:25 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-10-28 21:30:36 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-10-28 21:30:44 +0100acidjnk_new(~acidjnk@p200300d0c7237897ad6a1cb47299ad15.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-10-28 21:31:07 +0100 <hyperisco> how can I touch a file with Haskell IO? I am on Windows
2020-10-28 21:31:18 +0100 <hyperisco> I have tried appendFile path "" and this seems to leave the file untouched
2020-10-28 21:32:02 +0100_vaibhavingale_(~Adium@203.188.228.9) (Quit: Leaving.)
2020-10-28 21:32:06 +0100rinwa(~rinwa@5.102.238.236) (Quit: WeeChat 1.9.1)
2020-10-28 21:32:43 +0100 <hyperisco> I also tried opening the file in append mode, writing the empty string, and closing the handle, and also that left the file untouched
2020-10-28 21:33:16 +0100jakob_(~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de)
2020-10-28 21:33:31 +0100 <geekosaur> afaik you need to use system-specific stuff,e.g. there's a touchFile in the unix package and I don't know off the top of my head what the win32 equivalent is
2020-10-28 21:34:00 +0100 <hyperisco> what if, like a madman, I rename the file
2020-10-28 21:35:44 +0100knupfer(~Thunderbi@200116b82c889000d491c85aad532716.dip.versatel-1u1.de) (Quit: knupfer)
2020-10-28 21:35:45 +0100knupfer1(~Thunderbi@200116b82c88900028a87937fa2fda7d.dip.versatel-1u1.de)
2020-10-28 21:36:03 +0100 <geekosaur> no idea, sorry
2020-10-28 21:36:10 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net)
2020-10-28 21:36:24 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
2020-10-28 21:37:19 +0100aarvar(~foewfoiew@50.35.43.33)
2020-10-28 21:37:20 +0100GyroW(~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
2020-10-28 21:37:39 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 21:37:39 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 21:37:39 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 21:38:10 +0100knupfer1(~Thunderbi@200116b82c88900028a87937fa2fda7d.dip.versatel-1u1.de) (Client Quit)
2020-10-28 21:38:12 +0100knupfer(~Thunderbi@200116b82c88900065f627a2dcebe201.dip.versatel-1u1.de)
2020-10-28 21:38:45 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 240 seconds)
2020-10-28 21:39:04 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 258 seconds)
2020-10-28 21:39:13 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-10-28 21:40:16 +0100avoandmayo(~textual@122-58-158-238-adsl.sparkbb.co.nz)
2020-10-28 21:41:01 +0100wretchswollen(~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds)
2020-10-28 21:41:26 +0100Graypup_(Graypup@lfcode.ca) (Quit: ZNC 1.6.1 - http://znc.in)
2020-10-28 21:43:32 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-10-28 21:43:54 +0100sphalerite(~sphalerit@NixOS/user/lheckemann)
2020-10-28 21:44:21 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-10-28 21:44:23 +0100alp(~alp@2a01:e0a:58b:4920:31ac:4738:735:9459)
2020-10-28 21:44:31 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-olrayksqtbhbbqvo)
2020-10-28 21:45:26 +0100dopplergange(~dop@titan.pathogen.is) (Quit: ZNC 1.7.5 - https://znc.in)
2020-10-28 21:45:36 +0100crestfallen(~john@128.32.176.159) (Ping timeout: 256 seconds)
2020-10-28 21:46:36 +0100falafel(~falafel@71-34-132-121.clsp.qwest.net)
2020-10-28 21:48:26 +0100darjeeling_(~darjeelin@115.215.42.47) (Ping timeout: 256 seconds)
2020-10-28 21:49:32 +0100dopplergange(~dop@titan.pathogen.is)
2020-10-28 21:51:30 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4998:5831:a85a:ec6f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 21:52:52 +0100chaosmasttter(~chaosmast@p200300c4a70a4101b8cb3fec88fbfe5e.dip0.t-ipconnect.de)
2020-10-28 21:53:33 +0100Graypup_(Graypup@lfcode.ca)
2020-10-28 21:54:27 +0100hackagetasty-rerun 1.1.18 - Rerun only tests which failed in a previous test run https://hackage.haskell.org/package/tasty-rerun-1.1.18 (Bodigrim)
2020-10-28 21:56:38 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:81f2:cbad:9b12:33ca)
2020-10-28 21:56:40 +0100dopplerg-(~dop@199.58.187.26)
2020-10-28 21:57:25 +0100dopplergange(~dop@titan.pathogen.is) (Ping timeout: 240 seconds)
2020-10-28 22:00:01 +0100ranman1(~ranman@217.146.82.202) ()
2020-10-28 22:00:17 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-10-28 22:00:44 +0100invaser(~Thunderbi@31.148.23.125)
2020-10-28 22:02:04 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
2020-10-28 22:02:55 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:81f2:cbad:9b12:33ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-10-28 22:07:46 +0100dopplerg-(~dop@199.58.187.26) (Ping timeout: 256 seconds)
2020-10-28 22:08:39 +0100dopplergange(~dop@titan.pathogen.is)
2020-10-28 22:09:32 +0100darjeeling_(~darjeelin@115.215.42.47)
2020-10-28 22:10:05 +0100alp(~alp@2a01:e0a:58b:4920:31ac:4738:735:9459) (Remote host closed the connection)
2020-10-28 22:10:25 +0100alp(~alp@2a01:e0a:58b:4920:494c:d829:c480:230f)
2020-10-28 22:17:04 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-10-28 22:18:24 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Read error: No route to host)
2020-10-28 22:18:30 +0100takuan_dozo(~takuan@178-116-218-225.access.telenet.be)
2020-10-28 22:19:23 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-10-28 22:23:02 +0100one_almond(~onealmond@185.195.232.170)
2020-10-28 22:23:18 +0100one_almond(~onealmond@185.195.232.170) (Remote host closed the connection)
2020-10-28 22:23:50 +0100dansho(~dansho@ip68-108-167-185.lv.lv.cox.net)
2020-10-28 22:25:27 +0100falafel(~falafel@71-34-132-121.clsp.qwest.net) (Remote host closed the connection)
2020-10-28 22:25:44 +0100falafel(~falafel@71-34-132-121.clsp.qwest.net)
2020-10-28 22:26:03 +0100onealmond(~onealmond@cpc72411-sotn15-2-0-cust577.15-1.cable.virginm.net) (Ping timeout: 256 seconds)
2020-10-28 22:26:22 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-10-28 22:29:21 +0100Ariakenom(~Ariakenom@h-155-4-221-164.NA.cust.bahnhof.se) (Quit: Leaving)
2020-10-28 22:34:47 +0100invaser(~Thunderbi@31.148.23.125) (Quit: invaser)
2020-10-28 22:35:06 +0100invaser(~Thunderbi@31.148.23.125)
2020-10-28 22:36:18 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-10-28 22:36:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-10-28 22:38:10 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de)
2020-10-28 22:39:05 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
2020-10-28 22:39:34 +0100chaosmasttter(~chaosmast@p200300c4a70a4101b8cb3fec88fbfe5e.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-10-28 22:39:43 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-28 22:40:16 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-10-28 22:42:04 +0100nyaomi(~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89) (Ping timeout: 240 seconds)
2020-10-28 22:42:44 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
2020-10-28 22:43:21 +0100thir(~thir@p200300f27f0b7e004c18ab60065ea01b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2020-10-28 22:44:34 +0100GyroW(~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
2020-10-28 22:44:43 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-10-28 22:44:49 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
2020-10-28 22:44:49 +0100GyroW(~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
2020-10-28 22:44:49 +0100GyroW(~GyroW@unaffiliated/gyrow)
2020-10-28 22:45:33 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Quit: Curry, you fools!)
2020-10-28 22:46:29 +0100takuan_dozo(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-10-28 22:52:56 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-10-28 22:52:58 +0100hackagekeycloak-hs 2.0.3 - https://hackage.haskell.org/package/keycloak-hs-2.0.3 (CorentinDupont)
2020-10-28 22:53:35 +0100 <koz_> Does foldM _require_ a Monad constraint to make sense, or could foldA actually exist?
2020-10-28 22:54:22 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
2020-10-28 22:56:38 +0100 <joel135> hmm
2020-10-28 22:56:50 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:1c75:523e:ddcb:cd98)
2020-10-28 22:59:16 +0100drewolson(~drewolson@64.227.24.16) (*.net *.split)
2020-10-28 22:59:16 +0100qz(~quetzal@li272-85.members.linode.com) (*.net *.split)
2020-10-28 22:59:16 +0100glamas(~glamas@107.182.17.237) (*.net *.split)
2020-10-28 22:59:16 +0100gekh(~gkh@thor.kevinhill.nl) (*.net *.split)
2020-10-28 22:59:16 +0100zopsi(~zopsi@irc.dir.ac) (*.net *.split)
2020-10-28 22:59:16 +0100tv-(~tv@unaffiliated/tv-) (*.net *.split)
2020-10-28 22:59:16 +0100Flonk(~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) (*.net *.split)
2020-10-28 22:59:16 +0100digia(~digia@unaffiliated/digia) (*.net *.split)
2020-10-28 22:59:16 +0100NieDzejkob(~quassel@188.123.215.55) (*.net *.split)
2020-10-28 22:59:16 +0100clynamen(~clynamen@109.116.4.71) (*.net *.split)
2020-10-28 22:59:16 +0100rzmt(~rzmt@87-92-180-112.rev.dnainternet.fi) (*.net *.split)
2020-10-28 22:59:16 +0100bobbytables(~bobbytabl@ec2-44-224-191-138.us-west-2.compute.amazonaws.com) (*.net *.split)
2020-10-28 22:59:16 +0100amatecha__(sid10006@gateway/web/irccloud.com/x-uwkjukjibnksfmha) (*.net *.split)
2020-10-28 22:59:16 +0100spoonm(spoonm@gunma.spoonm.org) (*.net *.split)
2020-10-28 22:59:16 +0100milessabin(sid86799@gateway/web/irccloud.com/x-rqchthtgtmeyzixk) (*.net *.split)
2020-10-28 22:59:16 +0100seliopou(seliopou@entropy.tmok.com) (*.net *.split)
2020-10-28 22:59:16 +0100stvc(~stvc@192.241.166.39) (*.net *.split)
2020-10-28 22:59:16 +0100marble_visions(~user@68.183.79.8) (*.net *.split)
2020-10-28 22:59:16 +0100HiRE_(~HiRE@104.128.237.40) (*.net *.split)
2020-10-28 22:59:16 +0100bsima(~bsima@simatime.com) (*.net *.split)
2020-10-28 22:59:16 +0100tstat(~tstat@165.227.66.131) (*.net *.split)
2020-10-28 22:59:16 +0100eagleflo(~aku@eagleflow.fi) (*.net *.split)
2020-10-28 22:59:16 +0100Someguy123(~someguy@unaffiliated/compgenius999) (*.net *.split)
2020-10-28 22:59:16 +0100madog(~madog@163.ip-51-254-203.eu) (*.net *.split)
2020-10-28 22:59:16 +0100sayak1(~sayak@static.11.113.47.78.clients.your-server.de) (*.net *.split)
2020-10-28 22:59:16 +0100sim590(~sim590@modemcable090.207-203-24.mc.videotron.ca) (*.net *.split)
2020-10-28 22:59:23 +0100madog(~madog@163.ip-51-254-203.eu)
2020-10-28 22:59:24 +0100jedws(~jedws@101.184.193.144)
2020-10-28 22:59:25 +0100eagleflo(~aku@eagleflow.fi)
2020-10-28 22:59:26 +0100glamas(~glamas@107.182.17.237)
2020-10-28 22:59:26 +0100spoonm(spoonm@gunma.spoonm.org)
2020-10-28 22:59:26 +0100seliopou(seliopou@entropy.tmok.com)
2020-10-28 22:59:27 +0100NieDzejkob(~quassel@188.123.215.55)
2020-10-28 22:59:27 +0100rzmt(~rzmt@87-92-180-112.rev.dnainternet.fi)
2020-10-28 22:59:30 +0100drewolson(~drewolson@64.227.24.16)
2020-10-28 22:59:30 +0100milessabin(sid86799@gateway/web/irccloud.com/x-tsnesmrcjrlroviv)
2020-10-28 22:59:31 +0100digia(~digia@unaffiliated/digia)
2020-10-28 22:59:32 +0100sayak1(~sayak@static.11.113.47.78.clients.your-server.de)
2020-10-28 22:59:32 +0100qz(~quetzal@li272-85.members.linode.com)
2020-10-28 22:59:32 +0100clynamen(~clynamen@109.116.4.71)
2020-10-28 22:59:34 +0100bobbytables(~bobbytabl@ec2-44-224-191-138.us-west-2.compute.amazonaws.com)
2020-10-28 22:59:36 +0100marble_visions(~user@68.183.79.8)
2020-10-28 22:59:38 +0100HiRE(~HiRE@2602:ffc5:20::1:512e)
2020-10-28 22:59:39 +0100bsima(~bsima@simatime.com)
2020-10-28 22:59:41 +0100stvc(~stvc@192.241.166.39)
2020-10-28 22:59:46 +0100gekh(~gkh@thor.kevinhill.nl)
2020-10-28 22:59:50 +0100zopsi(~zopsi@irc.dir.ac)
2020-10-28 23:00:00 +0100Flonk(~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com)
2020-10-28 23:00:07 +0100amatecha__(sid10006@gateway/web/irccloud.com/x-umzvzowaztsfellj)
2020-10-28 23:01:40 +0100esph(~weechat@unaffiliated/esph) (Read error: Connection reset by peer)
2020-10-28 23:02:01 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 264 seconds)
2020-10-28 23:02:01 +0100nckx(~nckx@tobias.gr) (Ping timeout: 264 seconds)
2020-10-28 23:02:09 +0100tv-(~tv@unaffiliated/tv-)
2020-10-28 23:02:10 +0100sim590(~sim590@modemcable090.207-203-24.mc.videotron.ca)
2020-10-28 23:02:10 +0100 <jle`> :t foldM
2020-10-28 23:02:11 +0100 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
2020-10-28 23:02:20 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-10-28 23:02:21 +0100 <jle`> yea that needs to be monady
2020-10-28 23:02:36 +0100 <jle`> since you have to bind the 'b' to use the (b -> a -> m b)
2020-10-28 23:02:37 +0100 <koz_> I guess if it was an 'effectful foldMap' it wouldn't?
2020-10-28 23:02:47 +0100nckx(~nckx@tobias.gr)
2020-10-28 23:02:49 +0100tv-(~tv@unaffiliated/tv-) (Client Quit)
2020-10-28 23:03:10 +0100tv-(~tv@unaffiliated/tv-)
2020-10-28 23:03:37 +0100esph(~weechat@unaffiliated/esph)
2020-10-28 23:03:39 +0100 <jle`> yeah, like traverse_
2020-10-28 23:03:45 +0100 <jle`> er, traverse
2020-10-28 23:03:50 +0100crestfallen(~john@128.32.176.159)
2020-10-28 23:03:51 +0100 <koz_> Yeah, except a general monoid instead of ().
2020-10-28 23:04:01 +0100 <jle`> in this case the "next `m b` to use" depends on the result of a previous action
2020-10-28 23:04:05 +0100 <jle`> :t traverse
2020-10-28 23:04:06 +0100 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2020-10-28 23:04:13 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-10-28 23:04:17 +0100 <jle`> but for traverse, the "next `f b`" can be decided without any previous actions
2020-10-28 23:04:23 +0100 <koz_> It'd be like 'foldMapA :: (Applicative f, Monoid m, Traversable t) => (a -> f m) -> t a -> f m'
2020-10-28 23:04:24 +0100 <Uniaika> (obligatory slides for Traverse: https://clementd-files.cellar-c2.services.clever-cloud.com/lambdalille-traverse.html#1.0 )
2020-10-28 23:04:36 +0100 <jle`> koz_: that's foldMap with Ap, yeah
2020-10-28 23:04:44 +0100mmohammadi9812(~mmohammad@2.178.160.31) (Ping timeout: 240 seconds)
2020-10-28 23:04:51 +0100 <koz_> It's not _quite_ a generalized traverse_.
2020-10-28 23:04:55 +0100 <koz_> (stronger constraint needed)
2020-10-28 23:05:06 +0100 <jle`> :t \f -> getAp . foldMap (Ap . f)
2020-10-28 23:05:07 +0100 <lambdabot> forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Ap f a1)) => (a2 -> f a1) -> t a2 -> f a1
2020-10-28 23:05:19 +0100 <jle`> hm, that's weird
2020-10-28 23:05:32 +0100 <jle`> it should have the same type as yours
2020-10-28 23:05:34 +0100 <koz_> Monoid (Ap f a) holds whenever Applicative f, right?
2020-10-28 23:05:53 +0100 <jle`> (Applicative f, Monoid a) => Monoid (Ap f a)
2020-10-28 23:06:07 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-10-28 23:06:18 +0100 <jle`> i'm pretty sure your foldMapA is equivalent to traverse_
2020-10-28 23:06:37 +0100 <koz_> :t traverse_
2020-10-28 23:06:38 +0100 <lambdabot> (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
2020-10-28 23:07:02 +0100 <jle`> use [b] for m
2020-10-28 23:07:02 +0100Someguy123(~someguy@unaffiliated/compgenius999)
2020-10-28 23:07:02 +0100 <koz_> Except that instead of (), we can get back any Monoid m.
2020-10-28 23:07:42 +0100 <jle`> i think you can implement both in terms of each other
2020-10-28 23:09:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 23:09:51 +0100 <koz_> I think there's a catch here somewhere.
2020-10-28 23:09:51 +0100 <jle`> you'd just use Const m or something like that
2020-10-28 23:09:51 +0100 <jle`> for your Applicative
2020-10-28 23:09:51 +0100 <jle`> Compose f (Const m)
2020-10-28 23:09:59 +0100 <koz_> Ah, I see.
2020-10-28 23:10:04 +0100 <koz_> Yeah that'd work.
2020-10-28 23:10:11 +0100nyaomi(~naomi@2604:6000:1509:c86e:c878:29ff:fedf:ce89)
2020-10-28 23:10:19 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2020-10-28 23:10:36 +0100 <koz_> Would be great to have a helper doing that, admittedly.
2020-10-28 23:10:57 +0100 <koz_> It reminds me of something I saw in the churros library which permitted a similar generalization.
2020-10-28 23:11:20 +0100 <jle`> % :t \ff -> fmap getConst . getCompose . traverse_ (Compose . fmap Const . ff)
2020-10-28 23:11:21 +0100 <yahb> jle`: (Foldable t, Applicative f, Monoid b) => (a -> f b) -> t a -> f b
2020-10-28 23:11:40 +0100 <jle`> but it'd be easier to write in terms of foldMap
2020-10-28 23:12:10 +0100 <jle`> % :t \ff -> getAp . foldMap (Ap . ff)
2020-10-28 23:12:10 +0100 <yahb> jle`: (Foldable t, Applicative f, Monoid a1) => (a2 -> f a1) -> t a2 -> f a1
2020-10-28 23:12:31 +0100 <jle`> huh you could even flip the Const if you use Ap
2020-10-28 23:12:57 +0100notnatebtw(~nate@125.161.130.165)
2020-10-28 23:12:58 +0100 <koz_> That's actually interesting - foldMap and foldr can implement each other, but if you throw in effects, you actually can't do that.
2020-10-28 23:13:13 +0100 <jle`> % :t \ff -> getAp . getConst . traverse_ (Const . Ap . ff)
2020-10-28 23:13:13 +0100 <yahb> jle`: (Foldable t, Applicative f, Monoid a1) => (a2 -> f a1) -> t a2 -> f a1
2020-10-28 23:13:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-10-28 23:13:36 +0100 <jle`> koz_: well it's kind of up to what you think is the rightful generalization of foldr
2020-10-28 23:13:49 +0100t1m(4dde69fc@gateway/web/ajax/mibbit.com/session)
2020-10-28 23:13:57 +0100 <jle`> and foldM isn't necessarily the natural generalization from an applicative standpoint
2020-10-28 23:14:05 +0100 <koz_> What's another view?
2020-10-28 23:14:32 +0100 <jle`> maybe foldr :: (f a -> f b -> f b) -> f b -> t a -> f b ?
2020-10-28 23:14:48 +0100 <jle`> although...i guess that's more of a specialization than a generalization
2020-10-28 23:15:23 +0100 <koz_> Yeah, it's not actually similar to the foldMapA above, since you gotta stick effects in both negative and positive positions.
2020-10-28 23:15:47 +0100 <koz_> (in the function argument)
2020-10-28 23:16:06 +0100 <jle`> hm, i think you can implement foldMapM in terms of foldM
2020-10-28 23:16:08 +0100t1m(4dde69fc@gateway/web/ajax/mibbit.com/session) (Disconnected by services)
2020-10-28 23:16:11 +0100 <jle`> you just need Monad in both cases
2020-10-28 23:16:14 +0100 <jle`> so they can still implement 'each other'
2020-10-28 23:16:35 +0100 <jle`> and you can always use foldMapA with monads too
2020-10-28 23:16:39 +0100 <koz_> Yes, that's true.
2020-10-28 23:16:47 +0100 <koz_> But the reverse direction doesn't (necessarily) hold.
2020-10-28 23:16:48 +0100 <jle`> so, you can implement foldM with foldMapA :)
2020-10-28 23:17:10 +0100 <jle`> hm, i wonder if you can implement foldMapA with foldM
2020-10-28 23:17:32 +0100 <jle`> i thiiink it should be possible actually
2020-10-28 23:17:32 +0100 <koz_> I mean, yeah. Your starting value is the mempty.
2020-10-28 23:17:38 +0100 <jle`> just use foldM to get [m a]
2020-10-28 23:17:42 +0100 <jle`> and foldMapA id
2020-10-28 23:17:45 +0100 <koz_> Lol.
2020-10-28 23:17:47 +0100 <koz_> Ah yes.
2020-10-28 23:17:51 +0100 <koz_> 'Hack everythign into list'.
2020-10-28 23:18:00 +0100 <koz_> Aka 'how all of Foldable works'.
2020-10-28 23:18:50 +0100 <koz_> Although realistically, by its very nature, 'toList' falls out of Traversable even if Foldable weren't a thing.
2020-10-28 23:19:29 +0100 <koz_> (or heck, toX, where X is some linear collection with concatenation and emptiness as concepts)
2020-10-28 23:19:45 +0100 <koz_> (or heck, it doesn't even technically have to be a _linear_ collection)
2020-10-28 23:19:54 +0100matt57(d57a8ff0@host213-122-143-240.range213-122.btcentralplus.com)
2020-10-28 23:24:08 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-10-28 23:24:18 +0100 <jle`> yeah, Foldable is baby Traversable :)
2020-10-28 23:25:16 +0100 <koz_> And basically, we get 'emptiness and concatenation' as a special case of Monoid.
2020-10-28 23:25:29 +0100 <koz_> Basically, it really is all traverse and monoids all the way down.
2020-10-28 23:25:33 +0100jamm_(~jamm@unaffiliated/jamm)
2020-10-28 23:27:22 +0100remexre(~nathan@207-153-38-50.fttp.usinternet.com) (Read error: Connection reset by peer)
2020-10-28 23:28:21 +0100britva(~britva@2a02:aa13:7240:2980:1ce4:625f:f093:45ef)
2020-10-28 23:30:24 +0100ichimaru(~ichimaru@45.63.97.131) (Quit: ichimaru)
2020-10-28 23:31:13 +0100remexre(~nathan@207-153-38-50.fttp.usinternet.com)
2020-10-28 23:37:05 +0100son0p(~son0p@181.136.122.143) (Quit: Lost terminal)
2020-10-28 23:37:22 +0100matt57(d57a8ff0@host213-122-143-240.range213-122.btcentralplus.com) (Remote host closed the connection)
2020-10-28 23:39:25 +0100bitmagie(~Thunderbi@200116b8069fbf008d925686a233d598.dip.versatel-1u1.de) (Quit: bitmagie)
2020-10-28 23:39:34 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-10-28 23:39:52 +0100knupfer(~Thunderbi@200116b82c88900065f627a2dcebe201.dip.versatel-1u1.de) (Remote host closed the connection)
2020-10-28 23:40:01 +0100knupfer(~Thunderbi@200116b82c88900041e2bae31fea6a53.dip.versatel-1u1.de)
2020-10-28 23:40:29 +0100christo(~chris@81.96.113.213)
2020-10-28 23:44:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-10-28 23:45:07 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds)
2020-10-28 23:45:44 +0100day(~Unknown@unaffiliated/day)
2020-10-28 23:47:48 +0100fendor(~fendor@91.141.3.89.wireless.dyn.drei.com) (Remote host closed the connection)
2020-10-28 23:48:24 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-10-28 23:48:44 +0100mmohammadi9812(~mmohammad@2.178.160.31)
2020-10-28 23:50:44 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-10-28 23:53:24 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-10-28 23:55:49 +0100vk3wtf(~doc@14-202-30-62.static.tpgi.com.au) (Quit: WeeChat 2.7.1)
2020-10-28 23:56:20 +0100vk3wtf(~doc@14-202-30-62.static.tpgi.com.au)
2020-10-28 23:57:37 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
2020-10-28 23:58:07 +0100xsperry(~as@unaffiliated/xsperry) ()
2020-10-28 23:58:49 +0100jakob_(~textual@p200300f49f1622000181680b896afdc3.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2020-10-28 23:59:32 +0100jakob_(~textual@p57b0eae0.dip0.t-ipconnect.de)
2020-10-28 23:59:52 +0100crestfallen(~john@128.32.176.159) (Quit: Leaving)