2021/09/14

2021-09-14 00:00:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Remote host closed the connection)
2021-09-14 00:01:26 +0200 <sshine> janus, which one do you have in mind?
2021-09-14 00:01:29 +0200 <[exa]> man is there really no alternative of kinda-better-than-hashtable performance? no reasonable array-packed tries or some other stuff?
2021-09-14 00:02:00 +0200 <sshine> [exa], bloom filters? >;)
2021-09-14 00:02:25 +0200 <janus> sshine: i think it sounds reasonable to 1. make Object in opaque in aeson, release breaking new version that uses Map internally and requires Ord
2021-09-14 00:02:56 +0200 <janus> 2. add newHashMapWithSalt :: RandomGen m => m (HashMap a b) to unordered-containers
2021-09-14 00:03:00 +0200 <[exa]> sshine: bloom filters are kinda constant by default, no need to break referential transparency there
2021-09-14 00:04:12 +0200 <sshine> janus, yeah, I suppose. but I don't know how subscribers feel about it. it's either that or changing the way you inject a seed, which is gonna be super messy because there isn't one effect system to rule them all.
2021-09-14 00:04:22 +0200acidjnk_new3(~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de)
2021-09-14 00:04:39 +0200hololeap_hololeap
2021-09-14 00:04:44 +0200 <awpr> `Word64 -> HashMap a b`?
2021-09-14 00:04:45 +0200 <sshine> janus, right
2021-09-14 00:05:15 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
2021-09-14 00:05:16 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Changing host)
2021-09-14 00:05:16 +0200wroathe(~wroathe@user/wroathe)
2021-09-14 00:05:20 +0200 <awpr> no need to bake the random number generation into unordered-containers, as far as I can tell, just let callers choose how to get their salt
2021-09-14 00:05:23 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 268 seconds)
2021-09-14 00:05:41 +0200 <sshine> awpr, right.
2021-09-14 00:05:46 +0200 <janus> awpr: yeah that one too, sure, but RandomGen is an interface, you can make your own randomGen that always returns 4 ;) so not strictly needed.
2021-09-14 00:06:19 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-14 00:06:23 +0200 <awpr> not a fan of needing to define fake random number generators to pass in a number
2021-09-14 00:06:31 +0200 <sshine> awpr, it's not a fake one.
2021-09-14 00:06:44 +0200 <awpr> it sure violates the concept of the class, though
2021-09-14 00:07:02 +0200 <janus> awpr: what is your use case? reproducability? there is loads of infrastructure already that let's you reproduce easily
2021-09-14 00:07:10 +0200 <awpr> what the hash map needs to be constructed isn't a random number generator, it's a number
2021-09-14 00:07:20 +0200 <sshine> awpr, no. randomness with a known seed is still pseudo-random.
2021-09-14 00:07:31 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-14 00:07:52 +0200 <awpr> all of the randomness we're talking about is pseudo-random
2021-09-14 00:08:01 +0200 <ldlework> generated randomness from an unknown seed is still pseudo-ranom
2021-09-14 00:08:03 +0200 <ldlework> heh yeah
2021-09-14 00:08:15 +0200acidjnk_new(~acidjnk@p200300d0c720309498f6e7a7a92d4c02.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-09-14 00:08:23 +0200 <janus> well i just fear that people talking about IO do that because they think that IO is somehow 'more random' than a PRNG
2021-09-14 00:08:24 +0200 <sshine> I suppose having a basic data type with a big, fat disclaimer that says "don't put 'user' data into this one" isn't so good. :) so that warrants breaking the module API.
2021-09-14 00:08:24 +0200 <ldlework> i mean we can get philosophical and say randomness is epistemological, but heh
2021-09-14 00:08:34 +0200 <hpc> even /dev/random uses seeded prng values
2021-09-14 00:08:38 +0200 <janus> similar to how people used /dev/random because they were afraid that /dev/urandom wasn't enough
2021-09-14 00:09:43 +0200 <janus> hpc: only does that because people coded against random when they didn't really need it , right?
2021-09-14 00:09:48 +0200 <hpc> janus: the thing that ultimately snapped me out of it was "we're afraid of using less than one bit of entropy per one bit of randomness, but not afraid of using 2048 bits of entropy to secure unknown gigs of https traffic"
2021-09-14 00:10:44 +0200 <hpc> janus: as of i-forget-when, /dev/random is the same as /dev/urandom iirc
2021-09-14 00:10:54 +0200 <janus> right, only because people were irrationally afraid
2021-09-14 00:11:03 +0200 <sshine> I recall that, too
2021-09-14 00:11:27 +0200 <janus> doesn't make sense to work around kernel bugs, futile endavour.... i respect defence in depth, but come on...
2021-09-14 00:11:31 +0200 <hpc> anyhoo that was more at awpr's notion of "fake randomness"
2021-09-14 00:11:47 +0200 <sshine> I somehow, in my brain, always defaulted to /dev/urandom unless I had a reason not to, and I never did have a reason not to.
2021-09-14 00:12:06 +0200 <awpr> the thing I called "fake randomness" is `newtype UseThisSalt = UseThisSalt Word64; instance RandomGen UseThisSalt`
2021-09-14 00:12:31 +0200 <hpc> i had an alias to force entropy by doing wc -l recursively over /
2021-09-14 00:12:49 +0200 <hpc> for when something was using /dev/random and being slow about it
2021-09-14 00:13:09 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-09-14 00:14:11 +0200 <[exa]> oh fun, I remmeber when taking stuff from /dev/random actually blocked
2021-09-14 00:14:24 +0200max22-(~maxime@2a01cb0883359800c3e0f756754ec9b4.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-09-14 00:15:01 +0200 <sshine> I recently generated a GPG key. it went sadly fast.
2021-09-14 00:15:39 +0200 <hpc> somehow it's more satisfying when it takes forever lol
2021-09-14 00:16:03 +0200 <sshine> yes, it gave a perception of fortitude.
2021-09-14 00:16:15 +0200 <janus> i saw my tormented childhood in the ascii art of my gpg key. so i hacked my kernel to disable its randomness, now i feel better.
2021-09-14 00:17:00 +0200System123(~System123@203-134-35-213.sta.estpak.ee)
2021-09-14 00:17:12 +0200 <hpc> go full xkcd, make /dev/random a pipe to $(yes 4)
2021-09-14 00:17:13 +0200 <hpc> :D
2021-09-14 00:17:37 +0200 <hpc> this is rapidly getting -offtopic
2021-09-14 00:18:36 +0200ubert(~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Quit: ubert)
2021-09-14 00:18:52 +0200ubert(~Thunderbi@178.165.189.117.wireless.dyn.drei.com)
2021-09-14 00:19:22 +0200VoidNoir0(~VoidNoir0@72.80.203.52)
2021-09-14 00:19:36 +0200acidjnk_new(~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de)
2021-09-14 00:23:16 +0200acidjnk_new3(~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-09-14 00:23:25 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2)
2021-09-14 00:23:42 +0200cjb(~cjbayliss@user/cjb)
2021-09-14 00:23:52 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-09-14 00:23:53 +0200ubert(~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
2021-09-14 00:25:54 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-14 00:26:37 +0200xsperry(~as@user/xsperry) (Remote host closed the connection)
2021-09-14 00:27:47 +0200sm2n_(~sm2n@user/sm2n)
2021-09-14 00:28:09 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-14 00:29:06 +0200ubert(~Thunderbi@178.165.189.117.wireless.dyn.drei.com)
2021-09-14 00:29:20 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-09-14 00:30:10 +0200sm2n(~sm2n@user/sm2n) (Ping timeout: 260 seconds)
2021-09-14 00:32:30 +0200System123(~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 260 seconds)
2021-09-14 00:34:19 +0200mentAI(~mentAI@2001:67c:2628:647:12::3c2)
2021-09-14 00:38:43 +0200sm2n_(~sm2n@user/sm2n) (Remote host closed the connection)
2021-09-14 00:39:09 +0200sm2n_(~sm2n@user/sm2n)
2021-09-14 00:40:13 +0200sm2n_(~sm2n@user/sm2n) (Remote host closed the connection)
2021-09-14 00:40:46 +0200sm2n_(~sm2n@user/sm2n)
2021-09-14 00:41:43 +0200sm2n_(~sm2n@user/sm2n) (Remote host closed the connection)
2021-09-14 00:41:58 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-09-14 00:42:58 +0200hendursaga(~weechat@user/hendursaga)
2021-09-14 00:43:12 +0200Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-09-14 00:43:34 +0200TranquilEcho(~grom@user/tranquilecho) (Quit: WeeChat 2.8)
2021-09-14 00:48:22 +0200ubert(~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-14 00:54:06 +0200favonia(~favonia@user/favonia) (Ping timeout: 268 seconds)
2021-09-14 00:57:18 +0200aerona(~aerona@2600:6c54:4600:f300:d963:2c18:9947:74cf)
2021-09-14 00:57:48 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2021-09-14 01:01:26 +0200nicbk(~nicbk@user/nicbk)
2021-09-14 01:02:13 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-09-14 01:02:57 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-09-14 01:04:41 +0200xsperry(~as@user/xsperry)
2021-09-14 01:08:07 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-09-14 01:13:57 +0200slack1256(~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net)
2021-09-14 01:17:56 +0200acidjnk_new(~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-09-14 01:20:29 +0200jacks2(~bc8165b6@217.29.117.252)
2021-09-14 01:20:30 +0200sheddow(~sheddow@84-52-255.245.3p.ntebredband.no) (Quit: Client closed)
2021-09-14 01:21:50 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-14 01:24:56 +0200slack1256(~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net) (Ping timeout: 268 seconds)
2021-09-14 01:26:44 +0200Cajun(~Cajun@user/cajun)
2021-09-14 01:27:21 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 265 seconds)
2021-09-14 01:31:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 01:31:40 +0200pretty_d1(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2.1)
2021-09-14 01:36:26 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-09-14 01:38:37 +0200m4lvin(~m4lvin@w4eg.de) (Ping timeout: 252 seconds)
2021-09-14 01:38:44 +0200m4lvin(~m4lvin@w4eg.de)
2021-09-14 01:40:03 +0200hololeapmashes the keyboard like a monkey
2021-09-14 01:41:13 +0200Gurkenglas(~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-09-14 01:41:30 +0200 <monochrom> Ah, so you use Shakespeare's works for passwords!
2021-09-14 01:41:40 +0200 <haskl> What are the advantages of using groundhog over simply persistent and vice versa?
2021-09-14 01:43:13 +0200aplainze1akind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-09-14 01:46:42 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 260 seconds)
2021-09-14 01:48:07 +0200wroathe(~wroathe@user/wroathe)
2021-09-14 01:49:05 +0200pony(~ed@101.53.218.157) (Quit: WeeChat 2.8)
2021-09-14 01:53:20 +0200brettgilio(~brettgili@137.184.3.255) (Ping timeout: 256 seconds)
2021-09-14 01:56:08 +0200dave_uy(~dave_uy@108.61.193.26) (Quit: The Lounge - https://thelounge.chat)
2021-09-14 01:57:24 +0200aplainze1akind(~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 268 seconds)
2021-09-14 02:00:12 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 02:00:13 +0200proofofkeags_(~proofofke@205.209.28.54) (Ping timeout: 265 seconds)
2021-09-14 02:00:27 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 02:00:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-14 02:05:33 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 02:05:46 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 02:19:36 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 268 seconds)
2021-09-14 02:39:30 +0200kayvank(~user@52-119-115-185.PUBLIC.monkeybrains.net)
2021-09-14 02:42:35 +0200 <awpr> koz: you were asking about `portray` with `prettyprinter` a few days ago, right? I went ahead and wrote a backend (okay, more like forked the `pretty` backend, but still): https://hackage.haskell.org/package/portray-prettyprinter
2021-09-14 02:45:02 +0200 <koz> awpr: Yep, was me. Thanks!
2021-09-14 02:54:35 +0200lars__(~lars@c-76-104-180-32.hsd1.wa.comcast.net)
2021-09-14 02:57:15 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 265 seconds)
2021-09-14 02:57:54 +0200infinity0(~infinity0@occupy.ecodis.net) (Remote host closed the connection)
2021-09-14 02:58:14 +0200dmwit(~dmwit@pool-173-73-185-183.washdc.fios.verizon.net)
2021-09-14 03:00:15 +0200infinity0(~infinity0@occupy.ecodis.net)
2021-09-14 03:03:50 +0200System123(~System123@203-134-35-213.sta.estpak.ee)
2021-09-14 03:05:09 +0200tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2021-09-14 03:08:19 +0200System123(~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
2021-09-14 03:08:51 +0200abrantesasf(abrantesas@gateway/vpn/protonvpn/abrantesasf)
2021-09-14 03:10:25 +0200pony(~ed@101.100.135.69)
2021-09-14 03:12:45 +0200nicbk(~nicbk@user/nicbk) (Ping timeout: 276 seconds)
2021-09-14 03:13:46 +0200pony(~ed@101.100.135.69) (Client Quit)
2021-09-14 03:14:24 +0200pony(~ed@101.100.135.69)
2021-09-14 03:18:11 +0200xff0x(~xff0x@2001:1a81:53ae:3300:d2cc:9d43:abd1:db1a) (Ping timeout: 268 seconds)
2021-09-14 03:19:27 +0200xff0x(~xff0x@2001:1a81:53ed:e500:473d:a67f:1294:2993)
2021-09-14 03:19:35 +0200kayvank(~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection)
2021-09-14 03:25:53 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 03:26:06 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 03:26:07 +0200retroid_(~retro@176.255.22.194)
2021-09-14 03:26:12 +0200abrantesasf(abrantesas@gateway/vpn/protonvpn/abrantesasf) (Quit: Leaving)
2021-09-14 03:30:13 +0200neurocyte0(~neurocyte@45.14.191.55)
2021-09-14 03:30:13 +0200neurocyte0(~neurocyte@45.14.191.55) (Changing host)
2021-09-14 03:30:13 +0200neurocyte0(~neurocyte@user/neurocyte)
2021-09-14 03:32:20 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-14 03:32:35 +0200neurocyte(~neurocyte@user/neurocyte) (Ping timeout: 268 seconds)
2021-09-14 03:32:35 +0200neurocyte0neurocyte
2021-09-14 03:35:03 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-09-14 03:38:58 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-14 03:41:13 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2021-09-14 03:46:13 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 03:46:29 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 03:46:34 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Client Quit)
2021-09-14 03:46:51 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 03:47:23 +0200amk(~amk@109.255.169.126) (Ping timeout: 268 seconds)
2021-09-14 03:48:21 +0200amk(~amk@109.255.169.126)
2021-09-14 03:48:47 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-09-14 03:50:39 +0200cheater(~Username@user/cheater)
2021-09-14 03:50:40 +0200texasmynsted(~texasmyns@99.96.221.112)
2021-09-14 03:52:07 +0200 <texasmynsted> So I see there is a new haskellings out so I thought I would check it out. I do not use stack so that is a strike against me right there I guess.
2021-09-14 03:54:06 +0200 <texasmynsted> I did stack2cabal and was able to `cabal build` and `cabal install`. But not run the app. `haskellings run Types1` fails with "Couldn't find ghc-8.10.4".
2021-09-14 03:54:11 +0200 <texasmynsted> I can find it just fine.
2021-09-14 03:54:32 +0200 <texasmynsted> It is in ~/.ghcup/bin/ghc-8.10.4
2021-09-14 03:55:31 +0200 <texasmynsted> Should I ask in the haskellings github, or is it foolish to expect it work just because it compiles and installs?
2021-09-14 03:56:43 +0200nicbk(~nicbk@user/nicbk)
2021-09-14 03:58:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 03:59:43 +0200pbrisbin(~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) (Ping timeout: 268 seconds)
2021-09-14 04:00:24 +0200 <Axman6> maybe it's looking specifically for stack's GHC 8.10.4. What is haskellings?
2021-09-14 04:03:37 +0200 <texasmynsted> A fun way to learn haskell? https://github.com/wizzup/haskellings
2021-09-14 04:07:56 +0200 <Axman6> have you run the configurew command and provided the path to GHC? It might need to be a full path, not relative
2021-09-14 04:08:55 +0200 <sm> you could also open an issue asking for cabal support
2021-09-14 04:09:51 +0200favonia(~favonia@user/favonia)
2021-09-14 04:10:10 +0200 <sclv> haskellings has an assumption of stack pervasively built in :-/ https://github.com/wizzup/haskellings/blob/4093a6a051b13195543173fe62118707926e20d7/src/Haskelling…
2021-09-14 04:11:08 +0200 <sclv> findghcsearchdir looks _only_ for stack installed ghc
2021-09-14 04:11:56 +0200 <Axman6> https://github.com/wizzup/haskellings/blob/4093a6a051b13195543173fe62118707926e20d7/src/Haskelling… seems to imply that you can specify the GHC path
2021-09-14 04:13:46 +0200 <[itchyjunk]> So no side effect mean a state is not changing right? i'm looking at finite state machines.. and i am wondering if not changing the state means we're kinda stuck. seems like you have to change states of a finite state machines to get to the part where you do something else?
2021-09-14 04:15:37 +0200 <dibblego> > 1 + 4 -- changes the state of 4, by applying a function (+1)
2021-09-14 04:15:38 +0200 <lambdabot> 5
2021-09-14 04:15:54 +0200 <ldlework> [itchyjunk]: you just return a new data structure
2021-09-14 04:15:57 +0200 <ldlework> instead of modifying the existing one
2021-09-14 04:16:02 +0200 <sclv> "no side effect" means that a function of type `a -> b` will take an `a`, return the same `b` given that `a` no matter what, and do nothing else
2021-09-14 04:16:45 +0200 <[itchyjunk]> hmm
2021-09-14 04:16:57 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 04:17:12 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 04:17:28 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-09-14 04:18:01 +0200 <[itchyjunk]> but if i had a->b->c then the function (b->c) depends on (a->b) and it has to wait for that function to be done before it gets to do what it does
2021-09-14 04:18:15 +0200 <dibblego> the function (b->c) depends on a
2021-09-14 04:19:09 +0200 <dibblego> > 1 + 4 -- changes the state of 4, by taking a function (a -> b -> c) and applying it to 1, then that function to 4
2021-09-14 04:19:10 +0200 <lambdabot> 5
2021-09-14 04:20:30 +0200 <[itchyjunk]> but i thought the no side effect ways the result of states not being changed no?
2021-09-14 04:20:46 +0200 <dibblego> no, sclv gave the meaning above
2021-09-14 04:20:54 +0200 <dibblego> I changed the state of 4 to the state called 5
2021-09-14 04:21:06 +0200 <dibblego> there were no side effects in that state change
2021-09-14 04:22:47 +0200 <sclv> in the function `a->b->c` the function `b->c` you get back will always be the same function, given then same `a` as input
2021-09-14 04:23:09 +0200 <ldlework> oh dang, the way it works out such that you can use <*> functions with arity > 2 is pretty nifty
2021-09-14 04:23:16 +0200 <ldlework> with functions*
2021-09-14 04:23:41 +0200 <dibblego> there are no functions with arity > 2
2021-09-14 04:23:46 +0200td_(~td@94.134.91.92) (Ping timeout: 268 seconds)
2021-09-14 04:23:47 +0200 <ldlework> we went over this!
2021-09-14 04:23:49 +0200 <ldlework> lol
2021-09-14 04:23:52 +0200 <dibblego> jus' checkin'
2021-09-14 04:24:09 +0200 <[itchyjunk]> in a different language,the function b->c i get back might be different with same a ?
2021-09-14 04:24:11 +0200 <ldlework> haha
2021-09-14 04:24:42 +0200 <ldlework> in most languages, partial application is not part of the calling mechanics
2021-09-14 04:24:46 +0200 <sclv> [itchyjunk]: yes, if you actually have partial application in that language
2021-09-14 04:24:51 +0200 <ldlework> so in most languages you'll get an error about not passing enough arguments
2021-09-14 04:24:56 +0200 <sclv> but in an effectful and functional language like ocaml, yes
2021-09-14 04:25:04 +0200 <[itchyjunk]> hmmmmm
2021-09-14 04:25:05 +0200 <dibblego> I have seen this, I estimate 2000 times; you commit to the fact that all functions take one argument, so then you go back to loose thoughts, then I ask you to write the ((->) t) applicative, and now you're stuck, because you weren't _actually_ committed
2021-09-14 04:25:07 +0200 <ldlework> or F#!
2021-09-14 04:25:17 +0200td_(~td@muedsl-82-207-238-177.citykom.de)
2021-09-14 04:25:30 +0200 <sclv> the function might take an `a` then get the time, and then give back a function `b -> c` based on both the input, and the time
2021-09-14 04:25:42 +0200 <ldlework> dibblego: no doubt
2021-09-14 04:26:04 +0200 <[itchyjunk]> is getting an error about not passing enough arguments also considered a side effect?
2021-09-14 04:26:15 +0200 <dibblego> no
2021-09-14 04:26:19 +0200 <sclv> errors are not considered side effects, exceptions are
2021-09-14 04:26:44 +0200 <sclv> but also haskell will never give such errors, because things like arguments matching are checked by types at compile time
2021-09-14 04:26:45 +0200 <ldlework> well in most languages calling something with the wrong amount of arguments will either not compile, or throw a runtime exception
2021-09-14 04:27:00 +0200 <ldlework> can't think of a language where you'd get an error back for not calling with the right argument count
2021-09-14 04:27:18 +0200 <pony> python
2021-09-14 04:27:28 +0200 <ldlework> that's an exception
2021-09-14 04:27:28 +0200 <sclv> :t (:)
2021-09-14 04:27:29 +0200 <lambdabot> a -> [a] -> [a]
2021-09-14 04:27:49 +0200 <sclv> that's cons -- it takes something, and a list of those things, and gives back a list with the new thing at the front of the list
2021-09-14 04:28:07 +0200 <sclv> but its a pure function -- the old list is not "mutated" -- its still around exactly like before. just, also, you have a new list
2021-09-14 04:28:55 +0200 <[itchyjunk]> ah
2021-09-14 04:29:23 +0200 <[itchyjunk]> so every time something is done, you get a new something and all those old stuff are around
2021-09-14 04:29:41 +0200 <[itchyjunk]> and i guess some sort of garbage collector manages them so i don't fill up the memory?
2021-09-14 04:30:06 +0200 <sclv> yes
2021-09-14 04:30:22 +0200lavaman(~lavaman@98.38.249.169)
2021-09-14 04:31:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-09-14 04:32:36 +0200sm2n(~sm2n@user/sm2n)
2021-09-14 04:33:04 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-14 04:33:24 +0200nicbk(~nicbk@user/nicbk) (Quit: nicbk)
2021-09-14 04:35:07 +0200 <[itchyjunk]> thanks! back to understanding this finite machine stuff
2021-09-14 04:40:23 +0200pony(~ed@101.100.135.69) (Quit: WeeChat 2.8)
2021-09-14 04:41:06 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-14 04:41:17 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-14 04:43:01 +0200proofofkeags_(~proofofke@97-118-134-2.hlrn.qwest.net)
2021-09-14 04:53:35 +0200 <Axman6> Technically Haskell doesn't require any sort of garbage collection, but you would fill up memory very quickly without it
2021-09-14 04:54:20 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
2021-09-14 04:55:06 +0200 <Axman6> GHc is also quite good at avoiding allocations if they aren't needed too - things like sum . map f . enumFromTo 0 won't allocate any list constructors if optimisations are on
2021-09-14 04:56:16 +0200 <Axman6> [itchyjunk]: "is getting an error about not passing enough arguments also considered a side effect?" by definition, if the compiler is giving you an error about your code, what you have written is not Haskell
2021-09-14 04:56:30 +0200alx741(~alx741@181.196.69.212) (Quit: alx741)
2021-09-14 04:58:51 +0200asivitz(uid178348@id-178348.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-14 04:59:54 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
2021-09-14 05:01:30 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-09-14 05:06:19 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
2021-09-14 05:07:18 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 05:07:39 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 05:09:42 +0200 <lars__> Is there a way to notarize ghc-9.2.0-rc1 binaries for macos on the command line? `xattr -rc .` doesn't work any more on my system.
2021-09-14 05:16:09 +0200mentAI(~mentAI@2001:67c:2628:647:12::3c2) (Ping timeout: 256 seconds)
2021-09-14 05:17:41 +0200 <lars__> or more precisely: avoid to notarize the ghc binaries on macos x. Without that I don't see a way to install the ghc binary distribution on macosx.
2021-09-14 05:34:04 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-09-14 05:34:06 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.2)
2021-09-14 05:34:22 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
2021-09-14 05:37:35 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Client Quit)
2021-09-14 05:37:43 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
2021-09-14 05:37:55 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
2021-09-14 05:39:27 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Client Quit)
2021-09-14 05:39:46 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
2021-09-14 05:41:26 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds)
2021-09-14 05:46:58 +0200 <Axman6> I guess one hack would be to open the relevany binaries from the finder by right clicking and choosing open to get the "Open Anyway" dialogue
2021-09-14 05:50:21 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-14 06:01:26 +0200 <lars__> It's not just the binary, but all all libraries, which would is a lot of mouse clicking.
2021-09-14 06:02:50 +0200 <lars__> Anyways, I found a solution: running `xattr -rc` both on the source and the target directory resolved it after 2 iterations.
2021-09-14 06:10:24 +0200pony(~ed@101.100.135.67)
2021-09-14 06:12:13 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-09-14 06:20:49 +0200wrengrwrengr_away
2021-09-14 06:24:58 +0200goepsilongo(~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com)
2021-09-14 06:25:39 +0200 <lechner> Hi, is this Setup.hs method a good way to build Debian packages, please? https://cabal.readthedocs.io/en/3.4/setup-commands.html#creating-a-binary-package
2021-09-14 06:25:44 +0200kimjetwav(~user@2607:fea8:235f:9730:8357:c73b:f3ec:cc1b)
2021-09-14 06:25:55 +0200zebrag(~chris@user/zebrag) (Remote host closed the connection)
2021-09-14 06:26:40 +0200benin036932301(~benin@183.82.24.227)
2021-09-14 06:27:01 +0200benin03693230(~benin@183.82.24.227) (Ping timeout: 265 seconds)
2021-09-14 06:27:02 +0200benin036932301benin03693230
2021-09-14 06:27:02 +0200benin03693230(~benin@183.82.24.227) (Remote host closed the connection)
2021-09-14 06:27:45 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 06:28:00 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 06:29:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 06:31:49 +0200goepsilongo(~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Ping timeout: 268 seconds)
2021-09-14 06:31:50 +0200Erutuon(~Erutuon@user/erutuon)
2021-09-14 06:33:06 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 06:33:19 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 06:34:16 +0200slack1256(~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net)
2021-09-14 06:35:43 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-09-14 06:39:22 +0200Cale(~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2021-09-14 06:42:26 +0200 <texasmynsted> sclv and Axman6. Thank you.
2021-09-14 06:43:01 +0200 <Franciman> Hi is there some benchmark on IOArray vs IOVector?
2021-09-14 06:43:08 +0200 <Franciman> which one is to be preferred?
2021-09-14 06:43:16 +0200 <Franciman> based on speed
2021-09-14 06:43:26 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 06:43:39 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 06:46:04 +0200 <texasmynsted> setting the config location for ghc fixed that one. Now it is looking for the "stack package DB"\
2021-09-14 06:46:30 +0200 <texasmynsted> I think there is no accommodation for cabal
2021-09-14 06:57:17 +0200 <sm> texasmynsted: yes, there is not. It's pretty easy to install stack for this though
2021-09-14 06:57:57 +0200 <texasmynsted> Perhaps. I avoid stack if at all possible
2021-09-14 07:02:15 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2021-09-14 07:02:40 +0200Guest2782(~neo3@cpe-292712.ip.primehome.com)
2021-09-14 07:02:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-14 07:03:04 +0200neo1(~neo3@cpe-292712.ip.primehome.com)
2021-09-14 07:07:35 +0200Guest2782(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 268 seconds)
2021-09-14 07:09:56 +0200Gurkenglas(~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de)
2021-09-14 07:10:24 +0200jonatan(~nate@h85-8-60-194.cust.a3fiber.se)
2021-09-14 07:12:12 +0200 <Franciman> why so, texasmynsted if I can ask?
2021-09-14 07:16:43 +0200chomwitt(~chomwitt@2a02:587:dc14:5d00:12c3:7bff:fe6d:d374)
2021-09-14 07:21:38 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-09-14 07:22:12 +0200max22-(~maxime@2a01cb08833598009b3393ce9ac42685.ipv6.abo.wanadoo.fr)
2021-09-14 07:23:25 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-09-14 07:25:22 +0200michalz(~michalz@185.246.204.57)
2021-09-14 07:25:41 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-09-14 07:34:36 +0200 <dsal> Franciman: stack is a religion. Some people really dislike it. I've not successfully let go of it for any projects.
2021-09-14 07:35:00 +0200 <c_wraith> I just don't like that it assumes it's smarter than me
2021-09-14 07:35:22 +0200 <dsal> Arrays and Vectors are kind of different. "Based on speed" is usually not a primary thing. Depends a lot on what you're trying to do.
2021-09-14 07:35:56 +0200System123(~System123@203-134-35-213.sta.estpak.ee)
2021-09-14 07:36:05 +0200 <c_wraith> There's at least some potential overhead from Ix in Array, though that *could* get inlined/simplified away when used at known index types
2021-09-14 07:36:45 +0200 <c_wraith> Vector also tries to get a lot of fusion stuff in that Array doesn't bother with. That will sometimes be a big win. (And sometimes it might be a small extra cost, so... uh... depends on your use case)
2021-09-14 07:36:50 +0200 <Franciman> dsal: ironically I am defining a mutable stack lol
2021-09-14 07:37:07 +0200acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
2021-09-14 07:37:39 +0200 <dsal> You should see which API fits your needs most easily and implement it. If you can do both, you can sprinkle in your own benchmark.
2021-09-14 07:37:56 +0200 <Franciman> thanks
2021-09-14 07:37:59 +0200 <dsal> I've never used either under IO, but I've used both under ST.
2021-09-14 07:38:04 +0200 <dsal> They just don't seem very similar to me. heh
2021-09-14 07:38:46 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 07:39:00 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 07:40:22 +0200acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
2021-09-14 07:40:53 +0200System123(~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
2021-09-14 07:51:35 +0200neo1(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 268 seconds)
2021-09-14 07:53:55 +0200sm2n_(~sm2n@user/sm2n)
2021-09-14 07:54:06 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 07:54:13 +0200jushur(~human@user/jushur) (Quit: ¯\_(ツ)_/¯)
2021-09-14 07:54:19 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 07:56:18 +0200sm2n(~sm2n@user/sm2n) (Ping timeout: 268 seconds)
2021-09-14 07:56:31 +0200lars__(~lars@c-76-104-180-32.hsd1.wa.comcast.net) (Ping timeout: 268 seconds)
2021-09-14 07:56:41 +0200cjb(~cjbayliss@user/cjb) ()
2021-09-14 07:56:57 +0200jacks2(~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-09-14 07:59:07 +0200slack1256(~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net) (Remote host closed the connection)
2021-09-14 08:02:38 +0200kenran(~kenran@200116b82bdd2a00e75641d2b54b9789.dip.versatel-1u1.de)
2021-09-14 08:04:26 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 08:04:39 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 08:05:46 +0200proofofkeags_(~proofofke@97-118-134-2.hlrn.qwest.net) (Ping timeout: 268 seconds)
2021-09-14 08:07:19 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-14 08:08:13 +0200ubert(~Thunderbi@178.165.189.117.wireless.dyn.drei.com)
2021-09-14 08:12:17 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-09-14 08:14:23 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-14 08:20:03 +0200cfricke(~cfricke@user/cfricke)
2021-09-14 08:20:40 +0200Akronymus(~Akronymus@85.31.8.180)
2021-09-14 08:21:07 +0200 <mjrosenb> ok, I have made a test case for what I want to do.
2021-09-14 08:21:11 +0200 <mjrosenb> https://gist.github.com/mjrosenb/a3a22b3a7dd562b69d85f706d233242d
2021-09-14 08:21:45 +0200 <mjrosenb> Is there a type that I can assign to math3 that will make it equivalent to math1 or math2 depending on the argument passed into it?
2021-09-14 08:21:57 +0200chele(~chele@user/chele)
2021-09-14 08:22:19 +0200 <Akronymus> I hope I get to use haskell at night school
2021-09-14 08:22:33 +0200 <Akronymus> (Part of the adult education system over here)
2021-09-14 08:22:49 +0200 <Akronymus> Sadly, I doubt it as it seems to lean pretty hard into OOP. :(
2021-09-14 08:23:02 +0200chomwitt(~chomwitt@2a02:587:dc14:5d00:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds)
2021-09-14 08:26:39 +0200jushur(~human@user/jushur)
2021-09-14 08:27:23 +0200 <awpr> mjrosenb: a) probably something like `MonadState Foo m => (forall a. ALens' Foo a -> m a) -> m ()`, but b) it might be appropriate to use `Control.Lens.zoom` to make something like `math3 :: State Foo m ()`, and use it as `zoom _1 math3 :: State (Foo, Foo) ()`
2021-09-14 08:30:05 +0200vysn(~vysn@user/vysn)
2021-09-14 08:30:33 +0200 <awpr> oh, since they're both Ints in this case, `ALens' Foo Int -> m Int`, or maybe even just `Lens' Foo Int -> m Int`. the `ALens` versions will need some special treatment to turn them back into `Lens`es, which I don't remember at the moment
2021-09-14 08:31:00 +0200 <mjrosenb> awpr: a solution that doesn't rely on them being ints is best.
2021-09-14 08:32:00 +0200 <awpr> then the forall would be needed; or potentially use `zoom`
2021-09-14 08:32:16 +0200 <awpr> BTW all three versions unconditionally store the result into the first `Foo`, is that intentional?
2021-09-14 08:32:54 +0200_bin(~bin@user/bin/x-1583188) (Ping timeout: 268 seconds)
2021-09-14 08:34:22 +0200 <mjrosenb> yes.
2021-09-14 08:34:50 +0200 <mjrosenb> that 'foo' is the current state
2021-09-14 08:35:15 +0200 <mjrosenb> it is the only one that gets written into. it can either be built from the current state or the previous state.
2021-09-14 08:37:14 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-09-14 08:37:27 +0200 <mjrosenb> technically speaking, they aren't the same type, but they should be close enough for this to give an accurate representation
2021-09-14 08:43:29 +0200 <awpr> okay, sounds like probably some variation of `forall a. Lens' Foo a -> m a` would do it
2021-09-14 08:51:33 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-14 08:59:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 09:01:51 +0200System123(~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com)
2021-09-14 09:04:25 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-14 09:09:05 +0200acidjnk_new(~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de)
2021-09-14 09:14:40 +0200ubert(~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-14 09:16:26 +0200ubert(~Thunderbi@178.165.189.117.wireless.dyn.drei.com)
2021-09-14 09:19:44 +0200fendor(~fendor@178.165.201.14.wireless.dyn.drei.com)
2021-09-14 09:19:48 +0200aerona(~aerona@2600:6c54:4600:f300:d963:2c18:9947:74cf) (Quit: Leaving)
2021-09-14 09:26:14 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-14 09:26:36 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-09-14 09:28:21 +0200phma(~phma@host-67-44-208-7.hnremote.net) (Read error: Connection reset by peer)
2021-09-14 09:29:47 +0200phma(~phma@host-67-44-208-112.hnremote.net)
2021-09-14 09:32:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-14 09:36:35 +0200mc47(~mc47@xmonad/TheMC47)
2021-09-14 09:40:17 +0200azeem(~azeem@2a00:801:3c7:fe55:ef64:2dcc:d00c:3ee5) (Read error: Connection reset by peer)
2021-09-14 09:40:35 +0200azeem(~azeem@emp-91-123.eduroam.uu.se)
2021-09-14 09:40:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Remote host closed the connection)
2021-09-14 09:40:46 +0200abraham(~abraham@143.244.185.86) (Quit: The Lounge - https://thelounge.chat)
2021-09-14 09:41:54 +0200abraham(~abraham@143.244.185.86)
2021-09-14 09:42:19 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-09-14 09:44:13 +0200TranquilEcho(~grom@user/tranquilecho)
2021-09-14 09:46:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 09:47:12 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-09-14 09:50:36 +0200neurocyte(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-09-14 09:53:41 +0200neurocyte(~neurocyte@45.14.191.55)
2021-09-14 09:53:41 +0200neurocyte(~neurocyte@45.14.191.55) (Changing host)
2021-09-14 09:53:41 +0200neurocyte(~neurocyte@user/neurocyte)
2021-09-14 09:54:10 +0200System12_(~System123@m91-129-99-234.cust.tele2.ee)
2021-09-14 09:54:53 +0200 <dminuoso> Also, you can use `math :: _` to have the type inferred.
2021-09-14 09:55:06 +0200 <dminuoso> With `lens` that requires a bit of wizardy knowledge of course.
2021-09-14 09:55:47 +0200bearsinheaven(~bearsinhe@2409:4054:20b:ba44:9580:3786:277:15c1)
2021-09-14 09:56:27 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.2)
2021-09-14 09:56:35 +0200__monty__(~toonn@user/toonn)
2021-09-14 09:56:47 +0200vysn(~vysn@user/vysn)
2021-09-14 09:57:16 +0200System123(~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com) (Ping timeout: 265 seconds)
2021-09-14 09:58:37 +0200System12_(~System123@m91-129-99-234.cust.tele2.ee) (Ping timeout: 268 seconds)
2021-09-14 10:01:38 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-09-14 10:05:22 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-09-14 10:06:03 +0200hendursa1(~weechat@user/hendursaga)
2021-09-14 10:06:25 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
2021-09-14 10:08:45 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-09-14 10:11:38 +0200Everything(~Everythin@37.115.210.35)
2021-09-14 10:17:14 +0200 <Akronymus> arahael not quite everywhere.
2021-09-14 10:20:50 +0200fendor(~fendor@178.165.201.14.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-14 10:21:09 +0200goepsilongo(~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com)
2021-09-14 10:24:00 +0200dut(~dut@user/dut)
2021-09-14 10:24:15 +0200 <sshine> Akronymus, surely you can make an OO runtime in Haskell using the State monad.
2021-09-14 10:24:53 +0200 <Orbstheorem> Hello. I'm twiddling with type family constraints, but I can't wrap my head around the following way to provide type-level error messages as constraints:
2021-09-14 10:24:56 +0200Orbstheoremsent a haskell code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/7f3e0be567bcfd1bc06e85c5bfd543851b90…
2021-09-14 10:26:10 +0200 <sshine> Akronymus, the important part is to use the keyword "new", add redundant parentheses everywhere, add mutable state, make every data type an instance of Hashable and Show, and increase the redundancy in names. :-D
2021-09-14 10:26:44 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-09-14 10:27:30 +0200 <Orbstheorem> The encoding `F t = () ~ TypeError ('Text "...")` yields the expected `• Type Bar is not supported.` error message at compile time, but that unit equality seems fishy...
2021-09-14 10:27:40 +0200 <Akronymus> sshine AAAAAAAAAAAAAAAAAAAA
2021-09-14 10:28:00 +0200System123(~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com)
2021-09-14 10:28:19 +0200 <[exa]> you mean `new AAAAAAAAAAAAAA()`
2021-09-14 10:28:50 +0200 <[exa]> Orbstheorem: it's supposed to "return" a constraint, not a type, right?
2021-09-14 10:28:58 +0200 <Orbstheorem> sshine: Don't forget to add an utterly useless instance of Eq for all types :D
2021-09-14 10:29:26 +0200 <[exa]> Orbstheorem: oh noes, that's done by `instance Hashable a => Eq a`
2021-09-14 10:29:40 +0200goepsilongo(~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Quit: Konversation terminated!)
2021-09-14 10:30:11 +0200 <Orbstheorem> [exa]: Right. The thing is there's no error whatsoever, it just silently discards the type smuggled as a constraint.
2021-09-14 10:31:05 +0200Orbstheoremis ashamed to admit he wasted 30min debugging why type-errors were not firing ><"
2021-09-14 10:31:37 +0200bearsinheaven(~bearsinhe@2409:4054:20b:ba44:9580:3786:277:15c1) (Quit: Client closed)
2021-09-14 10:32:54 +0200chomwitt(~chomwitt@ppp-94-67-221-96.home.otenet.gr)
2021-09-14 10:34:09 +0200 <[exa]> 30 minutes is lucky. :D
2021-09-14 10:34:36 +0200 <[exa]> anyway, it still doesn't fire even if you actually create something and run the `cc` on it?
2021-09-14 10:34:46 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 10:34:59 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 10:34:59 +0200 <Orbstheorem> [exa]: Yep.
2021-09-14 10:35:20 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2021-09-14 10:35:58 +0200acidjnk_new3(~acidjnk@p200300d0c7203094a5634563aea03fe4.dip0.t-ipconnect.de)
2021-09-14 10:36:00 +0200 <[exa]> Random idea: can you check out whether the constraint gets erased in Core? (--ddump-core)
2021-09-14 10:37:17 +0200Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-09-14 10:39:06 +0200 <[exa]> hm actually
2021-09-14 10:39:22 +0200 <Orbstheorem> Hmm, this is interesting. In my reduced example, instanciating Bar does produce a type-error when calling cc.
2021-09-14 10:39:27 +0200 <Orbstheorem> But at call-site.
2021-09-14 10:39:35 +0200 <[exa]> `:k TypeError` gives me `TypeError :: ErrorMessage -> b`
2021-09-14 10:39:41 +0200 <[exa]> so technically it can produce the constraint
2021-09-14 10:39:42 +0200 <Orbstheorem> (Also, I didn't have this error in my use-case using Generics)
2021-09-14 10:39:56 +0200acidjnk_new(~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-09-14 10:40:21 +0200 <[exa]> except you start picking in the resulting constraint much later this way
2021-09-14 10:41:34 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-09-14 10:41:47 +0200ubert(~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
2021-09-14 10:41:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:21b7:6800:ed3c:e303)
2021-09-14 10:46:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:21b7:6800:ed3c:e303) (Ping timeout: 252 seconds)
2021-09-14 10:48:09 +0200 <Orbstheorem> Adding `--ddump-core` didn't work :(. I tried with `ghc-core foo.hs`, but I don't know how to read core :D a quick search reveals no strings partially matching my constraint names.
2021-09-14 10:48:44 +0200 <Orbstheorem> Is `$var` the core representation of a constraint?
2021-09-14 10:48:58 +0200 <Orbstheorem> Or a proof?
2021-09-14 10:49:40 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-09-14 10:50:48 +0200tremon(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
2021-09-14 10:51:32 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-14 10:54:26 +0200 <[exa]> yeah the typeclasses/constrains are usually represented like this, in case of typeclasses it's usually something like `$d` for the method dictionary. I was wondering if it didn't get erased as redundant
2021-09-14 10:56:06 +0200sagax(~sagax_nb@user/sagax) (Read error: Connection reset by peer)
2021-09-14 10:56:29 +0200 <[exa]> (likely not it seems)
2021-09-14 11:00:09 +0200wallymathieu[m](~wallymath@2001:470:69fc:105::16ae) (Quit: You have been kicked for being idle)
2021-09-14 11:06:39 +0200bearsinheaven(~bearsinhe@169.149.36.242)
2021-09-14 11:08:45 +0200bearsinheaven(~bearsinhe@169.149.36.242) ()
2021-09-14 11:12:31 +0200retro_(~retro@176.255.22.194)
2021-09-14 11:13:16 +0200retroid_(~retro@176.255.22.194) (Ping timeout: 252 seconds)
2021-09-14 11:21:51 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 265 seconds)
2021-09-14 11:27:26 +0200ArctVaulMarsHMPJ(~pjetcetal@2.95.102.85) (Quit: EXIT)
2021-09-14 11:28:25 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2021-09-14 11:28:44 +0200kmein(~weechat@user/kmein)
2021-09-14 11:32:52 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-09-14 11:38:12 +0200gehmehgeh(~user@user/gehmehgeh)
2021-09-14 11:42:21 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:51a:51c5:5fd:d737)
2021-09-14 11:46:05 +0200Pickchea(~private@user/pickchea)
2021-09-14 11:46:50 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:51a:51c5:5fd:d737) (Ping timeout: 260 seconds)
2021-09-14 11:48:13 +0200fendor(~fendor@178.165.201.14.wireless.dyn.drei.com)
2021-09-14 11:49:11 +0200Guest9791(~neo3@cpe-292712.ip.primehome.com)
2021-09-14 11:51:28 +0200Guest9791(~neo3@cpe-292712.ip.primehome.com) (Client Quit)
2021-09-14 11:51:47 +0200Guest2259(~neo3@cpe-292712.ip.primehome.com)
2021-09-14 11:53:22 +0200Guest2259(~neo3@cpe-292712.ip.primehome.com) (Client Quit)
2021-09-14 11:53:38 +0200Guest2259(~neo3@cpe-292712.ip.primehome.com)
2021-09-14 11:53:56 +0200Guest2259neo1
2021-09-14 11:55:34 +0200Pickchea(~private@user/pickchea) (Ping timeout: 252 seconds)
2021-09-14 12:01:45 +0200Akronymusakronymus_afk
2021-09-14 12:01:53 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-14 12:06:04 +0200acidjnk_new3(~acidjnk@p200300d0c7203094a5634563aea03fe4.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-14 12:06:25 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-14 12:06:44 +0200goepsilongo(~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com)
2021-09-14 12:07:46 +0200fendor(~fendor@178.165.201.14.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-14 12:11:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-14 12:11:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 12:14:35 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-09-14 12:14:40 +0200azeem(~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 240 seconds)
2021-09-14 12:15:07 +0200azeem(~azeem@2a00:801:2d1:56c2:28a1:5bd4:4afc:cc23)
2021-09-14 12:16:04 +0200zaquest(~notzaques@5.128.210.178)
2021-09-14 12:16:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-09-14 12:17:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 12:17:33 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-14 12:18:07 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-09-14 12:18:45 +0200azeem(~azeem@2a00:801:2d1:56c2:28a1:5bd4:4afc:cc23) (Read error: Connection reset by peer)
2021-09-14 12:19:06 +0200azeem(~azeem@emp-91-123.eduroam.uu.se)
2021-09-14 12:22:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-14 12:23:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 12:27:14 +0200xff0x(~xff0x@2001:1a81:53ed:e500:473d:a67f:1294:2993) (Ping timeout: 268 seconds)
2021-09-14 12:28:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-14 12:28:52 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-09-14 12:28:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 12:29:11 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-14 12:29:45 +0200akronymus_afkakronymus
2021-09-14 12:34:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-14 12:34:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 12:39:01 +0200xff0x(~xff0x@2001:1a81:53ed:e500:473d:a67f:1294:2993)
2021-09-14 12:43:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:94b2:778f:dfb1:21cc)
2021-09-14 12:45:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-14 12:46:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 12:47:30 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:94b2:778f:dfb1:21cc) (Ping timeout: 260 seconds)
2021-09-14 12:55:06 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 12:55:19 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 12:57:53 +0200goepsilongo(~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Quit: Konversation terminated!)
2021-09-14 13:00:58 +0200alx741(~alx741@181.196.69.212)
2021-09-14 13:03:08 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-14 13:06:31 +0200azeem(~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 252 seconds)
2021-09-14 13:07:44 +0200ubert(~Thunderbi@178.165.176.211.wireless.dyn.drei.com)
2021-09-14 13:10:22 +0200AlexNoo_(~AlexNoo@178.34.162.211)
2021-09-14 13:10:42 +0200azeem(~azeem@2a00:801:2d1:56c2:28a1:5bd4:4afc:cc23)
2021-09-14 13:11:12 +0200azeem(~azeem@2a00:801:2d1:56c2:28a1:5bd4:4afc:cc23) (Read error: Connection reset by peer)
2021-09-14 13:11:29 +0200azeem(~azeem@emp-91-123.eduroam.uu.se)
2021-09-14 13:12:01 +0200Alex_test(~al_test@178.34.151.112) (Ping timeout: 252 seconds)
2021-09-14 13:13:49 +0200AlexZenon(~alzenon@178.34.151.112) (Ping timeout: 252 seconds)
2021-09-14 13:13:59 +0200AlexNoo(~AlexNoo@178.34.151.112) (Ping timeout: 265 seconds)
2021-09-14 13:16:05 +0200Alex_test(~al_test@178.34.162.211)
2021-09-14 13:17:50 +0200AlexZenon(~alzenon@178.34.162.211)
2021-09-14 13:18:35 +0200akegalj(~akegalj@89-172-123-97.adsl.net.t-com.hr)
2021-09-14 13:21:30 +0200Cajun(~Cajun@user/cajun)
2021-09-14 13:26:26 +0200xff0x(~xff0x@2001:1a81:53ed:e500:473d:a67f:1294:2993) (Ping timeout: 268 seconds)
2021-09-14 13:27:13 +0200xff0x(~xff0x@2001:1a81:53ed:e500:585d:98f9:921f:7e40)
2021-09-14 13:50:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-14 13:51:02 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 13:56:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-09-14 13:56:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 13:58:35 +0200lars__(~lars@c-76-104-180-32.hsd1.wa.comcast.net)
2021-09-14 14:02:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-14 14:02:44 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 14:05:08 +0200pony(~ed@101.100.135.67) (Quit: WeeChat 2.8)
2021-09-14 14:06:37 +0200max22-(~maxime@2a01cb08833598009b3393ce9ac42685.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds)
2021-09-14 14:07:26 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2)
2021-09-14 14:08:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-14 14:08:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 14:10:13 +0200lars__(~lars@c-76-104-180-32.hsd1.wa.comcast.net) (Ping timeout: 268 seconds)
2021-09-14 14:14:22 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-14 14:19:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-14 14:20:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 14:21:24 +0200killy(~killy@ers4.neoplus.adsl.tpnet.pl)
2021-09-14 14:21:47 +0200killy(~killy@ers4.neoplus.adsl.tpnet.pl) (Client Quit)
2021-09-14 14:21:55 +0200killy(~killy@ers4.neoplus.adsl.tpnet.pl)
2021-09-14 14:22:05 +0200killy(~killy@ers4.neoplus.adsl.tpnet.pl) (Client Quit)
2021-09-14 14:22:40 +0200jstolarek(~jstolarek@ers4.neoplus.adsl.tpnet.pl)
2021-09-14 14:23:02 +0200cheater(~Username@user/cheater)
2021-09-14 14:23:15 +0200jstolarek(~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Client Quit)
2021-09-14 14:23:23 +0200jstolarek(~jstolarek@ers4.neoplus.adsl.tpnet.pl)
2021-09-14 14:25:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-14 14:26:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 14:27:29 +0200ubert(~Thunderbi@178.165.176.211.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
2021-09-14 14:31:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-14 14:31:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 14:35:04 +0200favonia(~favonia@user/favonia) (Ping timeout: 252 seconds)
2021-09-14 14:35:55 +0200System12_(~System123@m91-129-99-197.cust.tele2.ee)
2021-09-14 14:37:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-14 14:37:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 14:37:41 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-09-14 14:39:31 +0200System123(~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com) (Ping timeout: 252 seconds)
2021-09-14 14:40:30 +0200System12_(~System123@m91-129-99-197.cust.tele2.ee) (Ping timeout: 265 seconds)
2021-09-14 14:40:48 +0200jinsun__(~quassel@user/jinsun)
2021-09-14 14:43:31 +0200jinsun(~quassel@user/jinsun) (Read error: Connection reset by peer)
2021-09-14 14:45:27 +0200ubert(~Thunderbi@178.165.176.211.wireless.dyn.drei.com)
2021-09-14 14:45:41 +0200jinsun__jinsun
2021-09-14 14:46:50 +0200sneedsfeed(~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) (Quit: Client closed)
2021-09-14 14:51:28 +0200o1lo01ol1o(~o1lo01ol1@bl13-86-242.dsl.telepac.pt)
2021-09-14 14:56:39 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-09-14 15:01:14 +0200burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-14 15:08:29 +0200Pickchea(~private@user/pickchea)
2021-09-14 15:09:51 +0200o1lo01ol1o(~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Quit: Leaving...)
2021-09-14 15:13:23 +0200pbrisbin(~patrick@pool-173-49-147-250.phlapa.fios.verizon.net)
2021-09-14 15:15:26 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 15:15:39 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 15:17:11 +0200AlexNoo_AlexNoo
2021-09-14 15:20:16 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-14 15:22:50 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net)
2021-09-14 15:22:56 +0200max22-(~maxime@2a01cb08833598006be6953efce46753.ipv6.abo.wanadoo.fr)
2021-09-14 15:24:06 +0200favonia(~favonia@user/favonia)
2021-09-14 15:26:09 +0200 <infinisil> Hey, I've got a Heisenbug: An executable runs incredibly slow by default, takes over 3 minutes to complete. However when I turn on profiling, it finishes almost instantly!
2021-09-14 15:26:12 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2.1)
2021-09-14 15:26:28 +0200 <infinisil> What could be the cause of this or how could I find out?
2021-09-14 15:27:42 +0200 <merijn> Well, step one: Have you profiled?
2021-09-14 15:27:44 +0200 <[exa]> funny we actually hear about similar problems every now and often but I don't remember any actual solution. Can you profile it a bit?
2021-09-14 15:27:48 +0200 <merijn> Did you do a GC timing?
2021-09-14 15:28:20 +0200 <merijn> infinisil: Try running with "+RTS -sstderr" and pastebin the result
2021-09-14 15:29:57 +0200 <kaol> I ran into a bug with scanr rewrite rules once that caused an infinite loop when compiled with -O. Fun times.
2021-09-14 15:30:34 +0200 <infinisil> merijn: Doing that on the version without profiling enabled, hold on
2021-09-14 15:30:47 +0200akronymus(~Akronymus@85.31.8.180) (Quit: Client closed)
2021-09-14 15:30:59 +0200 <infinisil> Well, it's running, I'll report in ~4 minutes when it finishes
2021-09-14 15:31:41 +0200 <merijn> I have an intuition, but I wanna see the productivity numbers before making my wild ass guesses :p
2021-09-14 15:31:56 +0200 <infinisil> CPU is at 100% fwiw, used no special compile options (other than -rtsopts), so GC should only be single-threaded
2021-09-14 15:32:13 +0200 <infinisil> Hehe
2021-09-14 15:32:21 +0200 <merijn> oh
2021-09-14 15:32:30 +0200 <merijn> You're not using -threaded?
2021-09-14 15:32:36 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2021-09-14 15:32:54 +0200 <merijn> are you using subprocesses or something along those lines?
2021-09-14 15:33:27 +0200 <infinisil> Nope, not using threaded, and all a single thread and process
2021-09-14 15:33:29 +0200jumper149(~jumper149@80.240.31.34)
2021-09-14 15:33:58 +0200 <merijn> hmm
2021-09-14 15:34:14 +0200 <merijn> What's the code doing?
2021-09-14 15:34:27 +0200lbseale(~lbseale@user/ep1ctetus)
2021-09-14 15:34:30 +0200 <infinisil> Here's the -sstderr output: https://paste.infinisil.com/-nsoXipjYI.txt
2021-09-14 15:34:36 +0200 <jumper149> Hi, does anyone here have experience with the `graphql` library on Hackage? I'm currently looking into it and I'm not really sure if it is what I want.
2021-09-14 15:34:40 +0200lbseale(~lbseale@user/ep1ctetus) (Remote host closed the connection)
2021-09-14 15:35:04 +0200lbseale(~lbseale@user/ep1ctetus)
2021-09-14 15:35:21 +0200 <infinisil> merijn: Code uses https://hackage.haskell.org/package/jose to decode and verify a jwt blob of ~1MB size
2021-09-14 15:35:40 +0200Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-09-14 15:35:40 +0200 <jpds> jumper149: I saw https://brandonchinn178.github.io/blog/2021/08/04/graphql-server-haskell.html a month ago
2021-09-14 15:35:49 +0200Akronymus(~Akronymus@85.31.8.180)
2021-09-14 15:35:50 +0200 <merijn> "Productivity 33.6% of total user," <- well, that's fucking atrocious
2021-09-14 15:36:32 +0200 <jumper149> jpds: That looks like a good read, ty :)
2021-09-14 15:36:44 +0200 <merijn> infinisil: 33% productivity is god awful :)
2021-09-14 15:37:22 +0200 <merijn> infinisil: So it's spending 67% of those 4 minutes garbage collecting
2021-09-14 15:37:24 +0200 <infinisil> merijn: Here's exactly the same with a profiling-enabled version.. https://paste.infinisil.com/kTkaGcbcyE.txt
2021-09-14 15:37:46 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-09-14 15:37:59 +0200a6a45081-2b83(~aditya@pal-210-106-57.itap.purdue.edu)
2021-09-14 15:38:06 +0200 <merijn> Right, so there's something wonky (something being inlined?) maybe that's triggering re-evaluation non-stop and thus massive GC
2021-09-14 15:38:07 +0200 <infinisil> Allocates about 1000 times more when not profiling..
2021-09-14 15:38:29 +0200 <a6a45081-2b83> is there something gdb equivalent for haskell as for c++
2021-09-14 15:38:38 +0200 <merijn> a6a45081-2b83: Yes, but also, no
2021-09-14 15:38:50 +0200 <a6a45081-2b83> I wanted to debug some large codebase without making trace and debug statements everywhere
2021-09-14 15:39:15 +0200 <merijn> @quote cmccann debugger
2021-09-14 15:39:15 +0200 <lambdabot> cmccann says: you want a debugger? GHC has one. Except that stepping through lazy evaluation is like listening to a stream of consciousness narrative told by a 5-year-old with ADHD.
2021-09-14 15:39:30 +0200 <merijn> There's a debugger in ghci, GHC user guide has details
2021-09-14 15:39:33 +0200 <a6a45081-2b83> I just wanted to inspect some variables and see if they are being set to correct value through the execution flow
2021-09-14 15:39:33 +0200 <doyougnu> a6a45081-2b83: You can use gdb: https://gitlab.haskell.org/ghc/ghc/-/wikis/debugging/compiled-code
2021-09-14 15:39:42 +0200 <infinisil> Hmm yeah, but like why would enable profiling make it disappear..
2021-09-14 15:39:42 +0200 <merijn> doyougnu: Yes, but also, not really
2021-09-14 15:39:51 +0200 <merijn> infinisil: Profiling disables some optimisations
2021-09-14 15:40:02 +0200 <infinisil> I'd expect profiling to disable optimizations if anything
2021-09-14 15:40:04 +0200 <merijn> infinisil: Gonna need to see some code to make sense of it
2021-09-14 15:40:06 +0200 <doyougnu> ah I see what you mean
2021-09-14 15:40:34 +0200 <infinisil> merijn: Alright, hold on
2021-09-14 15:40:52 +0200 <merijn> doyougnu: Basically, it's providing DWARF debug symbols to map assembly to Haskell, but that's not gonna be as fine-grained and easy to use as with, say, C
2021-09-14 15:40:55 +0200 <infinisil> merijn: Nix-user?
2021-09-14 15:41:00 +0200 <merijn> infinisil: Nope
2021-09-14 15:41:15 +0200 <doyougnu> merijn: makes sense
2021-09-14 15:42:15 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-14 15:42:19 +0200 <merijn> infinisil: Basically, it almost sounds like some inlining is causing stuff to not be freed, resulting in ever increasing heap that needs to be copied
2021-09-14 15:42:57 +0200 <merijn> Max residency isn't even *that* bad in the slow one
2021-09-14 15:44:17 +0200burnside_(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2021-09-14 15:44:19 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Read error: Connection reset by peer)
2021-09-14 15:45:02 +0200Digit(~user@user/digit) (Ping timeout: 252 seconds)
2021-09-14 15:46:24 +0200lars__(~lars@c-76-104-180-32.hsd1.wa.comcast.net)
2021-09-14 15:49:05 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-09-14 15:50:31 +0200favonia(~favonia@user/favonia) (Ping timeout: 268 seconds)
2021-09-14 15:56:54 +0200lars__(~lars@c-76-104-180-32.hsd1.wa.comcast.net) (Ping timeout: 268 seconds)
2021-09-14 15:57:00 +0200kenran(~kenran@200116b82bdd2a00e75641d2b54b9789.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2021-09-14 16:01:10 +0200ubert1(~Thunderbi@178.115.39.25.wireless.dyn.drei.com)
2021-09-14 16:01:35 +0200_bin(~bin@user/bin/x-1583188)
2021-09-14 16:02:40 +0200ubert(~Thunderbi@178.165.176.211.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
2021-09-14 16:02:41 +0200ubert1ubert
2021-09-14 16:02:49 +0200acidjnk_new3(~acidjnk@p200300d0c7203004190619efcd54ece4.dip0.t-ipconnect.de)
2021-09-14 16:14:49 +0200ikex(~ash@user/ikex) (Quit: ZNC - https://znc.in)
2021-09-14 16:15:08 +0200ikex(~ash@user/ikex)
2021-09-14 16:18:19 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-14 16:18:19 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-14 16:18:19 +0200wroathe(~wroathe@user/wroathe)
2021-09-14 16:19:23 +0200a6a45081-2b83(~aditya@pal-210-106-57.itap.purdue.edu) (Remote host closed the connection)
2021-09-14 16:24:40 +0200favonia(~favonia@user/favonia)
2021-09-14 16:30:46 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 16:31:02 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 16:38:11 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com)
2021-09-14 16:38:58 +0200pooryorick(~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 260 seconds)
2021-09-14 16:40:37 +0200acidjnk_new(~acidjnk@p200300d0c720300489d1e02b13283af1.dip0.t-ipconnect.de)
2021-09-14 16:40:37 +0200pooryorick(~pooryoric@87-119-174-173.tll.elisa.ee)
2021-09-14 16:41:07 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 16:41:22 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 16:44:34 +0200acidjnk_new3(~acidjnk@p200300d0c7203004190619efcd54ece4.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-09-14 16:47:15 +0200spruit11_(~quassel@2a02:a467:ccd6:1:bdee:99d8:9af:602f) (Ping timeout: 268 seconds)
2021-09-14 16:47:35 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-09-14 16:47:53 +0200fendor(~fendor@e255-168.eduroam.tuwien.ac.at)
2021-09-14 16:54:34 +0200fendor_(~fendor@e239-072.eduroam.tuwien.ac.at)
2021-09-14 16:55:16 +0200azeem(~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 268 seconds)
2021-09-14 16:56:38 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-09-14 16:57:17 +0200fendor(~fendor@e255-168.eduroam.tuwien.ac.at) (Ping timeout: 265 seconds)
2021-09-14 16:58:37 +0200chisui(~chisui@200116b868904600f8a1e0879cf789d5.dip.versatel-1u1.de)
2021-09-14 16:58:54 +0200spruit11(~quassel@2a02:a467:ccd6:1:8499:aaa7:da86:787a)
2021-09-14 16:59:35 +0200fendor__(~fendor@e236-214.eduroam.tuwien.ac.at)
2021-09-14 17:00:33 +0200azeem(~azeem@2a00:801:3c1:c79f:2f67:8901:c99e:d77d)
2021-09-14 17:01:09 +0200 <chisui> Hey, has anyone an idea why this test freezes up? https://github.com/chisui/optparse-applicative/blob/master/tests/test.hs#L82. It should be a simple test for https://github.com/chisui/optparse-applicative/blob/master/src/Options/Applicative/Generic.hs#L34. but the tests take 100% CPU and never finish. I also can't see any endless recursion in the
2021-09-14 17:01:09 +0200 <chisui> instance definitions.
2021-09-14 17:01:11 +0200gensyst(gensyst@user/gensyst)
2021-09-14 17:01:28 +0200 <gensyst> Does someone have thoughts on the various plotting libraries?
2021-09-14 17:01:42 +0200 <gensyst> plot vs gnuplot for instance
2021-09-14 17:02:07 +0200fendor_(~fendor@e239-072.eduroam.tuwien.ac.at) (Ping timeout: 265 seconds)
2021-09-14 17:03:15 +0200dexterfoo(dexter@2a01:7e00::f03c:91ff:fe86:59ec) (Quit: WeeChat 1.9.1)
2021-09-14 17:03:35 +0200 <chisui> ARGH, I had an endless recursion at https://github.com/chisui/optparse-applicative/blob/master/src/Options/Applicative/Generic.hs#L83
2021-09-14 17:05:24 +0200 <merijn> gensyst: My thoughts are: I like none of them
2021-09-14 17:05:57 +0200 <merijn> gensyst: And gnuplot is Thielemann-ware, so...good luck with that >.>
2021-09-14 17:06:43 +0200 <gensyst> merijn, what's wrong with Th-ware?
2021-09-14 17:06:45 +0200asivitz(uid178348@id-178348.tinside.irccloud.com)
2021-09-14 17:07:09 +0200 <gensyst> (don't know anything about him (the lib author) btw)
2021-09-14 17:07:13 +0200 <merijn> He has...unique opinions on how things should be named
2021-09-14 17:07:14 +0200 <c_wraith> every type is named T
2021-09-14 17:07:19 +0200 <merijn> And qualified imports
2021-09-14 17:07:24 +0200 <c_wraith> every class is named C
2021-09-14 17:07:29 +0200 <merijn> So, eh, just have a look at the resulting haddocks...
2021-09-14 17:07:49 +0200fendor__(~fendor@e236-214.eduroam.tuwien.ac.at) (Ping timeout: 268 seconds)
2021-09-14 17:08:03 +0200 <gensyst> LOL
2021-09-14 17:08:21 +0200 <gensyst> so whichs plotting libs have you normally used in practice even if you don't like them?
2021-09-14 17:08:27 +0200 <gensyst> or which are the least bad
2021-09-14 17:09:04 +0200 <merijn> gensyst: matplotlib >.>
2021-09-14 17:09:16 +0200 <adamCS> gensyst: I like hvega. But that only fits a certain set of uses (charts to put into html docs, mostly). And isn't particularly compositional, just a basic set of functions to produce the correct json. But it's well documented and I like the grammar-of-graphics of the thing its wrapping (vega-lite).
2021-09-14 17:09:18 +0200ubert(~Thunderbi@178.115.39.25.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2021-09-14 17:09:43 +0200 <merijn> gensyst: Basically, right now I just have super simple gnuplot scripts and/or python matplotlib scripts that I feed data via stdin using process
2021-09-14 17:11:57 +0200 <gensyst> great to know, thanks!
2021-09-14 17:12:07 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-14 17:12:20 +0200Sgeo(~Sgeo@user/sgeo)
2021-09-14 17:13:58 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-09-14 17:14:29 +0200 <dminuoso> Every day I write in nix I begin to realize that a lazy functional language is only fun with a type system.
2021-09-14 17:15:29 +0200 <dminuoso> Say forgetting an argument in some `mapAttrs (a: ... a.config ...) as` produces debugging overhead, something a type system could have easily caught. And I think especially when higher order functions are the norm, this happens frequently.
2021-09-14 17:15:44 +0200 <gensyst> dminuoso, why have there been no efforts to do package management with ... haskell? i.e. just get rid of nix altogether
2021-09-14 17:15:54 +0200 <gensyst> network effects?
2021-09-14 17:16:38 +0200 <dminuoso> Honestly, what nix does cant easily be done in Haskell
2021-09-14 17:18:23 +0200 <dminuoso> gensyst: The primary technical problem I can see, is how much the nix ecosystem relies on fixed points
2021-09-14 17:18:44 +0200 <tomsmeding> :t fix
2021-09-14 17:18:45 +0200 <lambdabot> (a -> a) -> a
2021-09-14 17:18:52 +0200 <tomsmeding> /s
2021-09-14 17:18:55 +0200 <dminuoso> In a modular way such that even conceptual types would be fixed point types..
2021-09-14 17:19:00 +0200 <dminuoso> Say:
2021-09-14 17:19:34 +0200 <dminuoso> `{ config, ... }: { config = ... }`, the shape of `config` depends on the fixed point result.
2021-09-14 17:20:07 +0200 <dminuoso> If we had ML-style functors, maybe we could model something close to it.
2021-09-14 17:20:21 +0200 <dminuoso> (So perhaps with backpack some approximation could be built?)
2021-09-14 17:21:03 +0200Akronymus(~Akronymus@85.31.8.180) (Quit: Client closed)
2021-09-14 17:21:06 +0200 <gensyst> no idea tbh
2021-09-14 17:21:49 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-09-14 17:21:55 +0200 <dminuoso> Plus, most of nix is sort of monadic fixed points
2021-09-14 17:22:08 +0200 <dminuoso> with effects being buildings and realizations of derivations
2021-09-14 17:22:52 +0200 <dminuoso> So a naive 1:1 mapping would have to allow for an ML-style functor level mfix.
2021-09-14 17:25:10 +0200Pickchea(~private@user/pickchea) (Ping timeout: 260 seconds)
2021-09-14 17:25:35 +0200 <infinisil> merijn: Alright I've got a minified reproducer: https://github.com/tweag/haskell-fido2/tree/slow-repro
2021-09-14 17:26:24 +0200lars__(~lars@c-76-104-180-32.hsd1.wa.comcast.net)
2021-09-14 17:27:39 +0200 <merijn> infinisil: oh
2021-09-14 17:27:43 +0200slack1256(~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net)
2021-09-14 17:27:52 +0200 <merijn> Isn't the lazy BS the culprit?
2021-09-14 17:28:49 +0200 <infinisil> Ohh
2021-09-14 17:28:59 +0200 <infinisil> You know that thought crossed my mind, but I didn't test it, lemme do that
2021-09-14 17:29:23 +0200 <merijn> infinisil: I bet the laziness + some inlining is keeping the whole BS live the entire time and thus causing tons of copying in GC
2021-09-14 17:29:53 +0200 <infinisil> merijn: Nope, still super slow
2021-09-14 17:30:14 +0200 <merijn> time to stare at Core
2021-09-14 17:31:18 +0200 <infinisil> Wait, I'm an idiot, be back in a bit
2021-09-14 17:32:31 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-09-14 17:34:15 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-14 17:34:25 +0200 <infinisil> merijn: But no, there's no change
2021-09-14 17:34:40 +0200 <infinisil> I was an idiot because just changing `LBS` to `BS` won't make it strict
2021-09-14 17:35:01 +0200 <infinisil> But the decoding function wants a lazy one: https://hackage.haskell.org/package/jose-0.8.4.1/docs/Crypto-JOSE-Compact.html#v:decodeCompact
2021-09-14 17:36:12 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-09-14 17:36:38 +0200hendursaga(~weechat@user/hendursaga)
2021-09-14 17:41:49 +0200Cale(~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com)
2021-09-14 17:43:17 +0200kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-09-14 17:49:36 +0200Erutuon(~Erutuon@user/erutuon)
2021-09-14 17:50:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-14 17:56:28 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 17:56:41 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 17:57:37 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-09-14 17:57:48 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-09-14 17:58:04 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
2021-09-14 18:04:13 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:94b2:778f:dfb1:21cc)
2021-09-14 18:04:55 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:94b2:778f:dfb1:21cc) (Client Quit)
2021-09-14 18:05:26 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-14 18:05:26 +0200 <kaol> infinisil: I tried it on my laptop (Ryzen 4650U) and big.jwt took 400ms with no profiling. GHC 8.8.4.
2021-09-14 18:06:17 +0200 <infinisil> kaol: Oh good idea, I've been using 8.10.4
2021-09-14 18:06:20 +0200 <infinisil> I'll try with 8.8 later
2021-09-14 18:06:23 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
2021-09-14 18:07:48 +0200mousey(~sky@gateway/tor-sasl/mousey)
2021-09-14 18:13:17 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-09-14 18:13:21 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2021-09-14 18:15:23 +0200proofofkeags_(~proofofke@205.209.28.54)
2021-09-14 18:16:04 +0200favonia(~favonia@user/favonia) (Ping timeout: 265 seconds)
2021-09-14 18:16:42 +0200System123(~System123@203-134-35-213.sta.estpak.ee)
2021-09-14 18:16:48 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 18:17:02 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 18:21:36 +0200System123(~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
2021-09-14 18:21:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 18:24:44 +0200lars__(~lars@c-76-104-180-32.hsd1.wa.comcast.net) (Quit: leaving)
2021-09-14 18:26:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-14 18:30:41 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.2.1)
2021-09-14 18:30:53 +0200favonia(~favonia@user/favonia)
2021-09-14 18:35:06 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-14 18:38:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668) (Remote host closed the connection)
2021-09-14 18:42:17 +0200System123(~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com)
2021-09-14 18:45:25 +0200 <infinisil> kaol: Aha, interesting, for me it's a bit faster, but still really slow with 8.8.4
2021-09-14 18:46:30 +0200 <infinisil> kaol: Can you show the output of your `ghc-pkg list`?
2021-09-14 18:46:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
2021-09-14 18:51:20 +0200neurocyte(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-09-14 18:51:25 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
2021-09-14 18:53:34 +0200cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-09-14 18:53:46 +0200cheater(~Username@user/cheater)
2021-09-14 18:58:00 +0200neurocyte(~neurocyte@45.14.191.55)
2021-09-14 18:58:00 +0200neurocyte(~neurocyte@45.14.191.55) (Changing host)
2021-09-14 18:58:00 +0200neurocyte(~neurocyte@user/neurocyte)
2021-09-14 18:58:12 +0200jstolarek(~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Ping timeout: 268 seconds)
2021-09-14 18:59:04 +0200chele(~chele@user/chele) (Remote host closed the connection)
2021-09-14 19:02:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 19:02:43 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-14 19:06:00 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2021-09-14 19:06:21 +0200cheater(~Username@user/cheater)
2021-09-14 19:07:03 +0200ikex1(ash@user/ikex)
2021-09-14 19:07:27 +0200chisui(~chisui@200116b868904600f8a1e0879cf789d5.dip.versatel-1u1.de) (Ping timeout: 256 seconds)
2021-09-14 19:08:04 +0200ikex(~ash@user/ikex) (Ping timeout: 268 seconds)
2021-09-14 19:08:04 +0200ikex1ikex
2021-09-14 19:08:07 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-14 19:10:07 +0200acidjnk_new(~acidjnk@p200300d0c720300489d1e02b13283af1.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-14 19:26:22 +0200chisui(~chisui@200116b86890460080ddd003aee62e7e.dip.versatel-1u1.de)
2021-09-14 19:29:18 +0200jess(~jess@libera/staff/jess)
2021-09-14 19:31:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668) (Remote host closed the connection)
2021-09-14 19:36:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-14 19:39:12 +0200econo(uid147250@user/econo)
2021-09-14 19:40:30 +0200favonia(~favonia@user/favonia) (Ping timeout: 260 seconds)
2021-09-14 19:45:03 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-14 19:46:18 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2021-09-14 19:47:08 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 19:47:26 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 19:49:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
2021-09-14 19:52:29 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 19:52:42 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 19:55:28 +0200slack1256(~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net) (Remote host closed the connection)
2021-09-14 19:56:16 +0200Gurkenglas(~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-09-14 19:58:18 +0200mousey(~sky@gateway/tor-sasl/mousey) (Ping timeout: 276 seconds)
2021-09-14 20:01:46 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-14 20:02:15 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-14 20:02:20 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-14 20:02:21 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-14 20:02:21 +0200wroathe(~wroathe@user/wroathe)
2021-09-14 20:02:57 +0200dut(~dut@user/dut) (Ping timeout: 268 seconds)
2021-09-14 20:03:38 +0200proofofkeags_(~proofofke@205.209.28.54) (Remote host closed the connection)
2021-09-14 20:03:56 +0200proofofkeags_(~proofofke@205.209.28.54)
2021-09-14 20:04:37 +0200hexfive(~eric@50.35.83.177)
2021-09-14 20:04:52 +0200hexfive(~eric@50.35.83.177) (Client Quit)
2021-09-14 20:05:45 +0200fef(~thedawn@user/thedawn)
2021-09-14 20:07:14 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 265 seconds)
2021-09-14 20:09:10 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 240 seconds)
2021-09-14 20:09:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668) (Remote host closed the connection)
2021-09-14 20:09:44 +0200alx741(~alx741@181.196.69.212) (Ping timeout: 268 seconds)
2021-09-14 20:11:54 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2021-09-14 20:14:33 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-09-14 20:18:10 +0200Pickchea(~private@user/pickchea)
2021-09-14 20:19:25 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-14 20:19:25 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-14 20:19:25 +0200wroathe(~wroathe@user/wroathe)
2021-09-14 20:20:45 +0200favonia(~favonia@user/favonia)
2021-09-14 20:22:08 +0200alx741(~alx741@181.196.68.49)
2021-09-14 20:24:19 +0200 <drewolson> hey all, i'm getting a weird hlock error when trying to build my project in docker via `stack --docker build` https://gist.github.com/drewolson/e76fda28eff61e20f9773ae56ef32dc2
2021-09-14 20:24:27 +0200 <drewolson> is this something folks have seen before?
2021-09-14 20:24:42 +0200 <drewolson> not sure if it matters, but this is on an m1 mac. this setup was working for me before i was on an m1.
2021-09-14 20:27:40 +0200 <drewolson> i added the relevant section of my stack.yaml to the gist as well
2021-09-14 20:29:47 +0200mousey(~sky@gateway/tor-sasl/mousey)
2021-09-14 20:33:18 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2021-09-14 20:36:00 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.2)
2021-09-14 20:36:39 +0200mastarija(~mastarija@31.217.5.196)
2021-09-14 20:37:29 +0200pavonia(~user@user/siracusa)
2021-09-14 20:42:28 +0200akegalj(~akegalj@89-172-123-97.adsl.net.t-com.hr) (Ping timeout: 252 seconds)
2021-09-14 20:42:42 +0200derelict(derelict@user/derelict) (Quit: bye)
2021-09-14 20:42:56 +0200derelict(derelict@user/derelict)
2021-09-14 20:45:06 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-14 20:46:37 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-14 20:48:29 +0200bjobjo(~bjobjo@user/bjobjo)
2021-09-14 20:53:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 20:55:09 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-14 20:57:57 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-09-14 20:58:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-14 21:00:44 +0200nicbk(~nicbk@user/nicbk)
2021-09-14 21:02:46 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Ping timeout: 268 seconds)
2021-09-14 21:03:00 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
2021-09-14 21:04:02 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
2021-09-14 21:05:27 +0200wrengr_awaywrengr
2021-09-14 21:10:28 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-14 21:10:36 +0200 <maerwald> drewolson: so you're running in compat mode?
2021-09-14 21:10:53 +0200 <drewolson> maerwald: i _think_ so? i'm honestly not sure
2021-09-14 21:10:55 +0200mastarija(~mastarija@31.217.5.196) (Quit: Leaving)
2021-09-14 21:11:01 +0200 <maerwald> me neither
2021-09-14 21:11:02 +0200 <drewolson> everything seemed to "just work" for local stack development
2021-09-14 21:11:07 +0200 <drewolson> this is the first hiccup i'm hitting
2021-09-14 21:11:08 +0200 <maerwald> I have no idea what stack docker does
2021-09-14 21:11:15 +0200akegalj(~akegalj@89-172-123-97.adsl.net.t-com.hr)
2021-09-14 21:11:24 +0200 <drewolson> it seems to just run stack build inside of a docker container with mounted volumnes
2021-09-14 21:11:38 +0200 <drewolson> fwiw, if i hand roll a docker container from debian:buster i experience the same issue
2021-09-14 21:11:41 +0200 <drewolson> when running stack build
2021-09-14 21:11:44 +0200 <maerwald> but I think if you installed stack from official method, you'll have a x86_64 binary
2021-09-14 21:12:01 +0200 <drewolson> i did, via curl
2021-09-14 21:12:10 +0200 <maerwald> check the binary with `file`
2021-09-14 21:12:44 +0200 <drewolson> ```$ which stack | xargs file
2021-09-14 21:12:52 +0200 <drewolson> `/usr/local/bin/stack: Mach-O 64-bit executable x86_64`
2021-09-14 21:13:21 +0200 <maerwald> too bad I also don't have a native binary
2021-09-14 21:13:29 +0200 <drewolson> is there a native binary?
2021-09-14 21:13:34 +0200 <maerwald> no
2021-09-14 21:13:38 +0200 <drewolson> :whomp:
2021-09-14 21:13:49 +0200 <maerwald> but stack upgrade can install from source I think
2021-09-14 21:13:50 +0200 <drewolson> i'm dangerously close to just building this binary on gitlab's ci
2021-09-14 21:14:44 +0200 <maerwald> stack upgrade --source-only
2021-09-14 21:14:48 +0200 <drewolson> trying now
2021-09-14 21:15:07 +0200 <maerwald> but I'm not sure it'll pick the right arch either
2021-09-14 21:15:32 +0200 <drewolson> yeah, if stack itself is running in rosetta, it might "lie" during the request
2021-09-14 21:15:43 +0200 <drewolson> stack claims i am on the latest version
2021-09-14 21:16:34 +0200hammock(~Hammock@2600:1700:19a1:3330::588)
2021-09-14 21:16:35 +0200bjobjo(~bjobjo@user/bjobjo) (Quit: Lost terminal)
2021-09-14 21:17:17 +0200bjobjo(~bjobjo@user/bjobjo)
2021-09-14 21:17:36 +0200fef(~thedawn@user/thedawn) (Ping timeout: 276 seconds)
2021-09-14 21:18:54 +0200nicbk(~nicbk@user/nicbk) (Ping timeout: 276 seconds)
2021-09-14 21:19:55 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-14 21:20:45 +0200 <kaol> infinisil: Sorry, I went away for a bit. I emailed my ghc-pkg list, I hope that's ok.
2021-09-14 21:25:05 +0200 <drewolson> maerwald: i'll tell you if this gitlab gordian knot solution works :)
2021-09-14 21:25:22 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2021-09-14 21:25:26 +0200 <drewolson> (basically i need to build a binary to run on debian)
2021-09-14 21:26:32 +0200thyriaen(~thyriaen@dynamic-078-055-255-174.78.55.pool.telefonica.de)
2021-09-14 21:27:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 21:29:27 +0200 <chisui> Woa, docker on M1 seems just ... how .. what?
2021-09-14 21:30:18 +0200 <drewolson> chisui: i can't tell if this means you're agreeing with me or disagreeing with me :)
2021-09-14 21:30:40 +0200 <drewolson> i'm honestly confused as to why i have to provide a `--platform` flag to use the default debian container
2021-09-14 21:30:44 +0200 <chisui> I'm just confused. That's all
2021-09-14 21:32:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-14 21:34:40 +0200xff0x(~xff0x@2001:1a81:53ed:e500:585d:98f9:921f:7e40) (Ping timeout: 240 seconds)
2021-09-14 21:35:23 +0200 <drewolson> status report: 15 mins in and gitlab ci is still compiling
2021-09-14 21:35:39 +0200xff0x(~xff0x@2001:1a81:53ed:e500:8294:b35:6b84:2798)
2021-09-14 21:36:11 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
2021-09-14 21:38:49 +0200chisui(~chisui@200116b86890460080ddd003aee62e7e.dip.versatel-1u1.de) (Quit: Client closed)
2021-09-14 21:38:58 +0200akegalj(~akegalj@89-172-123-97.adsl.net.t-com.hr) (Quit: leaving)
2021-09-14 21:39:01 +0200chisui(~chisui@200116b86890460075c9988d490fe8d7.dip.versatel-1u1.de)
2021-09-14 21:39:09 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668) (Remote host closed the connection)
2021-09-14 21:39:49 +0200acidjnk_new(~acidjnk@p200300d0c720300489d1e02b13283af1.dip0.t-ipconnect.de)
2021-09-14 21:42:18 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-14 21:43:04 +0200gensyst(gensyst@user/gensyst) (Remote host closed the connection)
2021-09-14 21:43:29 +0200ubert(~Thunderbi@178.115.43.84.wireless.dyn.drei.com)
2021-09-14 21:47:45 +0200fendor(~fendor@178.165.181.243.wireless.dyn.drei.com)
2021-09-14 21:49:33 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-14 21:53:40 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-14 21:57:43 +0200fendor(~fendor@178.165.181.243.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-14 21:59:30 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
2021-09-14 22:00:11 +0200jrm(~jrm@156.34.187.65) (Quit: ciao)
2021-09-14 22:00:35 +0200jrm(~jrm@156.34.187.65)
2021-09-14 22:03:35 +0200 <sm> drewolson: I don't think you'll be able to build an arm stack binary, since GHC doesn't support that yet. Maybe I misunderstood
2021-09-14 22:03:51 +0200 <maerwald> sm: huh?
2021-09-14 22:05:05 +0200 <geekosaur> supported with 8.10.7 -fllvm I believe
2021-09-14 22:05:08 +0200 <drewolson> i'm actually attempting to build an x86 binary on an m1 system
2021-09-14 22:05:10 +0200juhp(~juhp@128.106.188.220) (Ping timeout: 265 seconds)
2021-09-14 22:05:15 +0200 <drewolson> i think this is docker weirdness
2021-09-14 22:05:19 +0200 <sm> drewolson: different situation, but the error message sounds quite similar: https://github.com/commercialhaskell/stack/issues/5589#issuecomment-907842512
2021-09-14 22:05:20 +0200 <drewolson> docker for mac on m1s is ... something
2021-09-14 22:05:30 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-14 22:05:30 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-14 22:05:30 +0200wroathe(~wroathe@user/wroathe)
2021-09-14 22:05:34 +0200 <maerwald> sm: arm is supported
2021-09-14 22:05:41 +0200 <sm> yes, I assume it's only with docker involved
2021-09-14 22:07:28 +0200juhp(~juhp@128.106.188.220)
2021-09-14 22:07:35 +0200 <sm> maerwald, geekosaur : correct, that's more accurate. 8.10.7 with -fllvm is rumoured to do it.
2021-09-14 22:08:14 +0200 <maerwald> GHC, ghcup and cabal support ARM for both linux and mac just fine... it's just stack that's lacking behind
2021-09-14 22:08:57 +0200 <maerwald> stack metadata has been updated recently though
2021-09-14 22:09:06 +0200sedeki(~textual@user/sedeki)
2021-09-14 22:10:15 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-14 22:10:30 +0200 <Franciman> I always suggest my fellow programmers on my project to avoid using things that would make building with ghc alone impossible
2021-09-14 22:10:33 +0200 <Franciman> we ship a cabal file
2021-09-14 22:10:47 +0200 <Franciman> just for correctness to others
2021-09-14 22:11:00 +0200 <Franciman> but we always strieve to get ghc --make buildable software
2021-09-14 22:11:16 +0200 <Franciman> once you introduce evil such as cabal and stack, things get naughty SO FAST
2021-09-14 22:11:42 +0200 <Franciman> when not possible, cabal is the backup
2021-09-14 22:11:50 +0200 <Franciman> because stack users can still make use of it
2021-09-14 22:11:53 +0200 <Franciman> that's how we work
2021-09-14 22:11:58 +0200 <Franciman> ghc -> cabal -> stack
2021-09-14 22:12:17 +0200 <maerwald> Franciman: there's an alternative to cabal-install, I forgot the name
2021-09-14 22:12:21 +0200 <maerwald> think it's discontinued
2021-09-14 22:12:31 +0200 <maerwald> it doesn't use Setup.hs even
2021-09-14 22:12:38 +0200 <maerwald> so calls ghc directly
2021-09-14 22:12:49 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 22:12:51 +0200 <Franciman> hi maerwald !
2021-09-14 22:12:53 +0200 <Franciman> so cool
2021-09-14 22:13:02 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 22:13:07 +0200sedeki(~textual@user/sedeki) (Client Quit)
2021-09-14 22:13:18 +0200 <Franciman> maerwald: I haven't get any time to get back at ghcup satisfy :<
2021-09-14 22:13:22 +0200 <Franciman> sorry
2021-09-14 22:13:27 +0200 <Franciman> got*
2021-09-14 22:13:39 +0200 <maerwald> Franciman: I opened an opencollective account. If we get some money I put a bounty on it
2021-09-14 22:14:46 +0200 <Franciman> maerwald: got the link?
2021-09-14 22:14:56 +0200 <maerwald> https://opencollective.com/ghcup
2021-09-14 22:15:28 +0200 <Franciman> yay
2021-09-14 22:15:36 +0200 <Franciman> do I need to register to give something?
2021-09-14 22:15:49 +0200 <maerwald> probably, allows oauth with github I think
2021-09-14 22:15:56 +0200 <Franciman> let's try
2021-09-14 22:16:07 +0200 <maerwald> that would mean you fund yourself lol
2021-09-14 22:16:31 +0200ubert(~Thunderbi@178.115.43.84.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-09-14 22:16:42 +0200 <Franciman> lol wut I wanted to help the community
2021-09-14 22:16:45 +0200 <Franciman> ghcup is awesome
2021-09-14 22:17:02 +0200 <Franciman> i can't live without
2021-09-14 22:17:09 +0200 <maerwald> I can't find the link to the cabal alternative
2021-09-14 22:17:10 +0200 <maerwald> dang
2021-09-14 22:18:31 +0200 <maerwald> Is there a way in github to see what projects you liked?
2021-09-14 22:18:56 +0200 <Franciman> yes
2021-09-14 22:18:58 +0200 <Franciman> no
2021-09-14 22:19:00 +0200 <Franciman> uhm
2021-09-14 22:19:10 +0200 <maerwald> https://gist.github.com/sebble/e5af3d03700bfd31c62054488bfe8d4f
2021-09-14 22:19:30 +0200 <Franciman> neat
2021-09-14 22:19:34 +0200 <infinisil> maerwald: bazel/obelisk/hadrian?
2021-09-14 22:19:37 +0200 <janus> does it make sense to filter and sort in the same higher-order primitive, when working with lists? or should i do it in two "passes". with lazy lists, i guess the data will be traversed only once anyway, even if i use filter and then sortOn?
2021-09-14 22:20:12 +0200 <infinisil> Or snack
2021-09-14 22:20:13 +0200 <maerwald> infinisil: I think different
2021-09-14 22:20:57 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-14 22:21:24 +0200 <maerwald> I have it
2021-09-14 22:21:25 +0200 <maerwald> https://github.com/ollef/rock
2021-09-14 22:21:42 +0200 <maerwald> or wait, I think that's not it either
2021-09-14 22:22:05 +0200 <maerwald> now I have
2021-09-14 22:22:07 +0200 <maerwald> https://github.com/judah/pier
2021-09-14 22:22:20 +0200 <maerwald> seems dead, but I like the idea
2021-09-14 22:22:27 +0200 <sm> thanks for that workaround for https://github.com/commercialhaskell/stack/issues/5589, maerwald
2021-09-14 22:22:27 +0200 <geekosaur> go to your main page (above your repos), find the star on the left sidebar, click on the star?
2021-09-14 22:23:06 +0200 <maerwald> geekosaur: the script from the gist works... github api allows it
2021-09-14 22:23:09 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 22:23:22 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 22:23:28 +0200 <Franciman> oh so you can see I put a star on all my projects :P
2021-09-14 22:23:31 +0200 <Franciman> no kidding
2021-09-14 22:23:36 +0200 <Franciman> i don't do it lol
2021-09-14 22:23:48 +0200 <maerwald> it's sad to see non-trivial haskell projects abandoned
2021-09-14 22:24:00 +0200 <maerwald> that must have been hard work (pier)
2021-09-14 22:24:41 +0200 <infinisil> It's the natural cycle of projects
2021-09-14 22:25:17 +0200 <sm> it lacked something that would have gained it traction
2021-09-14 22:26:42 +0200 <maerwald> sm: probably lack of custom Setup.hs
2021-09-14 22:26:47 +0200 <maerwald> that's a big one
2021-09-14 22:26:55 +0200 <maerwald> *support of custom Setup.hs*
2021-09-14 22:27:04 +0200zebrag(~chris@user/zebrag)
2021-09-14 22:27:06 +0200nicbk(~nicbk@user/nicbk)
2021-09-14 22:30:35 +0200 <ldlework> I finished HFFP's chapter on monads
2021-09-14 22:30:53 +0200 <ldlework> I'm prettttty much an expert on functional programming now
2021-09-14 22:31:09 +0200 <ldlework> I'll be fielding questions all day!
2021-09-14 22:31:19 +0200 <ldlework> hehe
2021-09-14 22:31:22 +0200 <janus> ldlework: how do i express bind in terms of join and fmap?
2021-09-14 22:31:51 +0200 <ldlework> let's think
2021-09-14 22:33:03 +0200 <ldlework> bind, essentially takes a value out of structure on the left, and functorially (?) applies it to a structure creating value in structure on the right, creating double structure
2021-09-14 22:33:13 +0200 <ldlework> join then monoidally collapses that structure
2021-09-14 22:33:31 +0200 <ldlework> structure creating function
2021-09-14 22:34:02 +0200 <ldlework> like a -> Maybe
2021-09-14 22:35:45 +0200 <ldlework> so something like..
2021-09-14 22:36:10 +0200 <ldlework> m >>= f = fmap f m & join
2021-09-14 22:36:21 +0200 <ldlework> I think?
2021-09-14 22:36:38 +0200 <janus> :t \f m -> fmap f m & join
2021-09-14 22:36:39 +0200 <lambdabot> Monad m => (a1 -> m a2) -> m a1 -> m a2
2021-09-14 22:36:41 +0200newbie(~newbie@80-196-109-198-dynamic.dk.customer.tdc.net)
2021-09-14 22:36:53 +0200 <awpr> :t flip (fmap (fmap join) fmap) -- maximally obfuscated
2021-09-14 22:36:54 +0200 <lambdabot> Monad m => m a1 -> (a1 -> m a2) -> m a2
2021-09-14 22:37:09 +0200 <ldlework> i can't tell, was i right?
2021-09-14 22:37:33 +0200 <janus> the types seem ok. so ship it! must be correct
2021-09-14 22:37:34 +0200 <newbie> newtype Test
2021-09-14 22:37:39 +0200 <ldlework> lol
2021-09-14 22:38:01 +0200 <ldlework> i am actually going back today and learning QuickTest/checker which I skipped over
2021-09-14 22:39:12 +0200 <newbie> test\n test
2021-09-14 22:39:28 +0200 <ldlework> the way that in `m a >>= b` bind takes the value out of structure and passes it to the next thing
2021-09-14 22:39:34 +0200 <ldlework> kind of feels a lot like async/await
2021-09-14 22:39:38 +0200 <ldlework> in a very vague way
2021-09-14 22:39:53 +0200 <awpr> yep, async-style concurrency with futures forms a monad
2021-09-14 22:40:09 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-14 22:41:01 +0200 <ldlework> Semigroup -> Monoid -> Functor -> Applicative -> Monad
2021-09-14 22:41:06 +0200 <ldlework> was a pretty great pedagogical strategy
2021-09-14 22:41:49 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-14 22:42:14 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-14 22:42:44 +0200 <janus> those arrows make me nervous because monoid is not a superclass of functor
2021-09-14 22:43:14 +0200 <sm> maerwald: nice job on all the ghcup binaries.. any thoughts on providing them from CI, like github's ? I feel slightly safer downloading binaries from there
2021-09-14 22:43:46 +0200 <maerwald> sm: what do you mean?
2021-09-14 22:43:52 +0200 <ldlework> janus: lol
2021-09-14 22:44:04 +0200 <maerwald> sm: which binaries?
2021-09-14 22:44:13 +0200 <sm> the ghcup binaries
2021-09-14 22:44:17 +0200 <maerwald> ah
2021-09-14 22:44:31 +0200 <maerwald> sm: there's a SHA256SUMS which is gpg signed
2021-09-14 22:45:46 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-14 22:46:01 +0200 <sm> I see, down in https://downloads.haskell.org/~ghcup/0.1.16.2/ eg
2021-09-14 22:46:38 +0200 <maerwald> yeah
2021-09-14 22:46:50 +0200 <maerwald> download the sha files, verify the sig and then the checksums
2021-09-14 22:46:55 +0200 <maerwald> sec
2021-09-14 22:47:01 +0200 <sm> so if I'm expert enough to use that, I can be slightly more sure I downloaded the same binary you made. But of course hackers can mess with that file too
2021-09-14 22:47:33 +0200 <maerwald> I can give you a shell script that does it
2021-09-14 22:47:46 +0200 <sm> urk, I have surrendered to the modern usage of "hacker"..
2021-09-14 22:48:20 +0200 <sm> no I can do it, thanks. I'm just interested in the best way
2021-09-14 22:49:35 +0200 <maerwald> just hang on
2021-09-14 22:49:37 +0200 <sm> when I download an artifact from github CI, I feel that's a bit harder for anyone to compromise undetectedly
2021-09-14 22:50:32 +0200 <maerwald> eh... you mean running on runners you don't know, managed by a company with a proprietary backend?
2021-09-14 22:50:48 +0200 <maerwald> sm: https://paste.tomsmeding.com/wUa6cQ0Z
2021-09-14 22:51:02 +0200 <maerwald> this does gpg and sha verification
2021-09-14 22:51:33 +0200 <newbie> Hi, I have a question. Given: 'newtype TEST a = TEST{runTEST :: Int -> Double -> Either String (a,Char, Double)}' I have to write a 'bind' for monad instance of which could be done 'instance Monad TEST where \n' 'm >>= f = TEST $ \int db -> case runTEST m int db of Left err -> Left err | Right a -> let (a, ch, db0) = a in case runTEST (f a) int db0 of Left err -> Left err | Right b -> let (a',ch',db1) = r in Right (a', wd ++ wd'
2021-09-14 22:51:55 +0200 <maerwald> sm: this makes only sense if you know the key is mine
2021-09-14 22:51:59 +0200 <newbie> Gosh the formatting is terrible, sorry. Can I fix that?
2021-09-14 22:52:12 +0200 <maerwald> sm: the key is mine
2021-09-14 22:52:14 +0200 <maerwald> :D
2021-09-14 22:52:36 +0200 <sm> thanks :)
2021-09-14 22:52:40 +0200 <maerwald> (run this script in /tmp)
2021-09-14 22:53:09 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2021-09-14 22:53:20 +0200 <maerwald> the binary is linux though
2021-09-14 22:53:24 +0200 <maerwald> you may need to adjust
2021-09-14 22:54:32 +0200 <sm> my point, I think providing the executables directly from CI would be better for ghcup adoption. YMMV
2021-09-14 22:54:47 +0200 <maerwald> sm: I don't use github CI
2021-09-14 22:54:53 +0200 <monochrom> newbie: You should use a paste bin. Below is our recommendation:
2021-09-14 22:54:56 +0200 <monochrom> @where paste
2021-09-14 22:54:56 +0200 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2021-09-14 22:55:00 +0200 <monochrom> That one.
2021-09-14 22:55:37 +0200 <maerwald> sm: https://gitlab.haskell.org/haskell/ghcup-hs/-/pipelines/39475
2021-09-14 22:55:41 +0200 <maerwald> you can download them there too
2021-09-14 22:56:43 +0200 <sm> that's the sort of thing - sounds good. (These are hard to read, gitlab..)
2021-09-14 22:59:12 +0200cheater(~Username@user/cheater)
2021-09-14 23:02:40 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-09-14 23:02:41 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2021-09-14 23:02:48 +0200 <newbie> Sorry, I have created a pastebin now https://pastebin.com/J2ycsM8k - Question: I have to create a 'bind' function for the instance Monad 'TEST' as seen in the pastebin. In my solution I pattern match every case of Either, however I realize I should be able to use '>>=' from Either to smartly avoid pattern matching. But how?
2021-09-14 23:03:56 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-09-14 23:04:53 +0200 <sshine> newbie, when you do 'case f x of { Left err -> Left err; Right y -> ... }' you could do 'do { y <- f x; ... }'
2021-09-14 23:06:07 +0200vysn(~vysn@user/vysn)
2021-09-14 23:06:11 +0200 <sm> maerwald: more user notes, FWIW: I successfully got the CI binary by clicking on gitlab's release job for my arch, clicking download, and unzipping. I was able to confirm it's identical to the binary downloaded from your site (except the one on your site isn't marked executable)
2021-09-14 23:07:09 +0200 <sm> on mac it gives the "can't open because Apple cannot check it for malicious software." error, as you probably know. And that can be overridden by opening finder, control click the file, option click Open
2021-09-14 23:07:14 +0200jushur(~human@user/jushur) (Quit: ¯\_(ツ)_/¯)
2021-09-14 23:07:37 +0200 <maerwald> I don't think many mac users have done what you just did
2021-09-14 23:07:39 +0200 <maerwald> so :o
2021-09-14 23:07:49 +0200 <maerwald> consider yourself the first
2021-09-14 23:07:57 +0200 <AWizzArd> I have a Dhall type T = { a : Integer, b : Integer, c : Integer }. And I have a json value v = {"a":10, "b":20, "c":30, "x":40}. Now I would like to create a Dhall record r of type T, so that it will represent v but ignoring the additional/unspecified "x" key/value. Is that possible?
2021-09-14 23:08:07 +0200 <sm> yup :)
2021-09-14 23:08:32 +0200 <sshine> newbie, https://gist.github.com/sshine/4883017fd5969d5962c1782a562f8818
2021-09-14 23:08:37 +0200michalz(~michalz@185.246.204.57) (Remote host closed the connection)
2021-09-14 23:08:50 +0200max22-(~maxime@2a01cb08833598006be6953efce46753.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-09-14 23:09:24 +0200 <sshine> newbie, I'm not sure where 'rd' comes from.
2021-09-14 23:09:43 +0200 <sm> I guess GHC devs know about apple's notarisation process, not sure if they have achieved it
2021-09-14 23:10:22 +0200 <newbie> @sshine IOh it makes sense, thanks a lot. I tried to obfuscate my code since it is an school assignment, and I forgot 'rd'
2021-09-14 23:10:22 +0200 <lambdabot> Unknown command, try @list
2021-09-14 23:11:07 +0200nurupo(~nurupo.ga@user/nurupo) (Quit: nurupo.ga)
2021-09-14 23:11:20 +0200nurupo(~nurupo.ga@user/nurupo)
2021-09-14 23:11:21 +0200 <sshine> newbie, it's called "minimise" as in "minimum reproducible problem" :)
2021-09-14 23:11:41 +0200 <maerwald> sm: you mean just running a command on files
2021-09-14 23:11:52 +0200 <sshine> newbie, you can also go to #haskell-beginners.
2021-09-14 23:12:00 +0200 <sm> another way to make mac users more inclined to run it is get it into homebrew. I'm sure someone will do that sooner or later.
2021-09-14 23:12:15 +0200 <newbie> @sshine Is there an easy way to reproduce your code without 'do' notation, juts for curiosity?
2021-09-14 23:12:15 +0200 <lambdabot> Unknown command, try @list
2021-09-14 23:12:30 +0200 <sshine> newbie, sure, you can rewrite do-notation into explicit use of >>=
2021-09-14 23:12:48 +0200 <newbie> @sshine I might fit better into that chat, thanks. First day of Haskell and this IIRC, have alot to learn : )
2021-09-14 23:12:48 +0200 <lambdabot> Unknown command, try @list
2021-09-14 23:13:43 +0200smisn't sure exactly how homebrew binaries get past this apple security prompt, but they do
2021-09-14 23:13:52 +0200 <yushyin> newbie: hi, this is irc, you don't need to prefix names with @
2021-09-14 23:14:42 +0200 <newbie> yushyin thanks ^^
2021-09-14 23:15:11 +0200 <sshine> newbie, you can convert a do-block into explicit use of >>= in a very mechanical way.
2021-09-14 23:16:57 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-09-14 23:18:17 +0200Cajun(~Cajun@user/cajun)
2021-09-14 23:18:28 +0200 <newbie> sshine, can you show me how on the example from above? I realize a do-block can be refactored into explicit use of >>=, the syntax has just not stuck with me
2021-09-14 23:22:40 +0200 <sshine> newbie, yeah, reload.
2021-09-14 23:25:28 +0200 <sshine> newbie, the definition of >>= for 'Either e' is literally that case-of that pipes Left into Left and Right into Right (f x): https://hackage.haskell.org/package/base-4.15.0.0/docs/src/Data-Either.html#line-155
2021-09-14 23:25:39 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-14 23:28:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-14 23:28:29 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 23:28:38 +0200Lycurgus(~juan@98.4.112.204)
2021-09-14 23:28:43 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 23:33:29 +0200motherfsck(~motherfsc@user/motherfsck) (Quit: quit)
2021-09-14 23:33:59 +0200 <newbie> sshine, thank you, this was very helpful. I realize I missed the lambdas at my own attempt to write '>>=' for TEST using ">>=" of Either, which is why I failed miserably
2021-09-14 23:36:02 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-14 23:43:49 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 23:44:03 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 23:44:29 +0200 <ProofTechnique> lambdabot has an @undo function which can do the mechanical work for you, if you like
2021-09-14 23:45:44 +0200 <ProofTechnique> (And a corresponding @do which will rewrite explicit >>= constructions to do-notation)
2021-09-14 23:46:51 +0200nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.2)
2021-09-14 23:47:56 +0200 <dsal> @undo do do do do it
2021-09-14 23:47:56 +0200 <lambdabot> it
2021-09-14 23:47:57 +0200 <ProofTechnique> @undo do { (a,ch,db1) <- runTEST m i db0; (a',ch',db2) <- runTEST (f a) rd db1; return (a',ch ++ ch',db2) }
2021-09-14 23:47:57 +0200 <lambdabot> runTEST m i db0 >>= \ (a, ch, db1) -> runTEST (f a) rd db1 >>= \ (a', ch', db2) -> return (a', ch ++ ch', db2)
2021-09-14 23:51:02 +0200favonia(~favonia@user/favonia) (Ping timeout: 265 seconds)
2021-09-14 23:54:10 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-14 23:54:23 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-14 23:55:33 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)