Home liberachat/#haskell: Logs Calendar

Logs on 2021-09-14 (liberachat/#haskell)

00:00:12 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
00:00:13 × proofofkeags_ quits (~proofofke@205.209.28.54) (Ping timeout: 265 seconds)
00:00:27 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
00:00:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
00:05:33 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
00:05:46 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
00:19:36 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 268 seconds)
00:39:30 kayvank joins (~user@52-119-115-185.PUBLIC.monkeybrains.net)
00:42:35 <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
00:45:02 <koz> awpr: Yep, was me. Thanks!
00:54:35 lars__ joins (~lars@c-76-104-180-32.hsd1.wa.comcast.net)
00:57:15 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 265 seconds)
00:57:54 × infinity0 quits (~infinity0@occupy.ecodis.net) (Remote host closed the connection)
00:58:14 dmwit joins (~dmwit@pool-173-73-185-183.washdc.fios.verizon.net)
01:00:15 infinity0 joins (~infinity0@occupy.ecodis.net)
01:03:50 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
01:05:09 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
01:08:19 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
01:08:51 abrantesasf joins (abrantesas@gateway/vpn/protonvpn/abrantesasf)
01:10:25 pony joins (~ed@101.100.135.69)
01:12:45 × nicbk quits (~nicbk@user/nicbk) (Ping timeout: 276 seconds)
01:13:46 × pony quits (~ed@101.100.135.69) (Client Quit)
01:14:24 pony joins (~ed@101.100.135.69)
01:18:11 × xff0x quits (~xff0x@2001:1a81:53ae:3300:d2cc:9d43:abd1:db1a) (Ping timeout: 268 seconds)
01:19:27 xff0x joins (~xff0x@2001:1a81:53ed:e500:473d:a67f:1294:2993)
01:19:35 × kayvank quits (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection)
01:25:53 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
01:26:06 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
01:26:07 retroid_ joins (~retro@176.255.22.194)
01:26:12 × abrantesasf quits (abrantesas@gateway/vpn/protonvpn/abrantesasf) (Quit: Leaving)
01:30:13 neurocyte0 joins (~neurocyte@45.14.191.55)
01:30:13 × neurocyte0 quits (~neurocyte@45.14.191.55) (Changing host)
01:30:13 neurocyte0 joins (~neurocyte@user/neurocyte)
01:32:20 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:32:35 × neurocyte quits (~neurocyte@user/neurocyte) (Ping timeout: 268 seconds)
01:32:35 neurocyte0 is now known as neurocyte
01:35:03 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds)
01:38:58 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
01:41:13 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
01:46:13 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
01:46:29 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
01:46:34 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Client Quit)
01:46:51 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
01:47:23 × amk quits (~amk@109.255.169.126) (Ping timeout: 268 seconds)
01:48:21 amk joins (~amk@109.255.169.126)
01:48:47 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
01:50:39 cheater joins (~Username@user/cheater)
01:50:40 texasmynsted joins (~texasmyns@99.96.221.112)
01:52:07 <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.
01:54:06 <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".
01:54:11 <texasmynsted> I can find it just fine.
01:54:32 <texasmynsted> It is in ~/.ghcup/bin/ghc-8.10.4
01:55:31 <texasmynsted> Should I ask in the haskellings github, or is it foolish to expect it work just because it compiles and installs?
01:56:43 nicbk joins (~nicbk@user/nicbk)
01:58:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:59:43 × pbrisbin quits (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) (Ping timeout: 268 seconds)
02:00:24 <Axman6> maybe it's looking specifically for stack's GHC 8.10.4. What is haskellings?
02:03:37 <texasmynsted> A fun way to learn haskell? https://github.com/wizzup/haskellings
02:07:56 <Axman6> have you run the configurew command and provided the path to GHC? It might need to be a full path, not relative
02:08:55 <sm> you could also open an issue asking for cabal support
02:09:51 favonia joins (~favonia@user/favonia)
02:10:10 <sclv> haskellings has an assumption of stack pervasively built in :-/ https://github.com/wizzup/haskellings/blob/4093a6a051b13195543173fe62118707926e20d7/src/Haskellings/LoadConfig.hs
02:11:08 <sclv> findghcsearchdir looks _only_ for stack installed ghc
02:11:56 <Axman6> https://github.com/wizzup/haskellings/blob/4093a6a051b13195543173fe62118707926e20d7/src/Haskellings/RunCommands.hs#L110 seems to imply that you can specify the GHC path
02:13:46 <[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?
02:15:37 <dibblego> > 1 + 4 -- changes the state of 4, by applying a function (+1)
02:15:38 <lambdabot> 5
02:15:54 <ldlework> [itchyjunk]: you just return a new data structure
02:15:57 <ldlework> instead of modifying the existing one
02:16:02 <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
02:16:45 <[itchyjunk]> hmm
02:16:57 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
02:17:12 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
02:17:28 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
02:18:01 <[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
02:18:15 <dibblego> the function (b->c) depends on a
02:19:09 <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
02:19:10 <lambdabot> 5
02:20:30 <[itchyjunk]> but i thought the no side effect ways the result of states not being changed no?
02:20:46 <dibblego> no, sclv gave the meaning above
02:20:54 <dibblego> I changed the state of 4 to the state called 5
02:21:06 <dibblego> there were no side effects in that state change
02:22:47 <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
02:23:09 <ldlework> oh dang, the way it works out such that you can use <*> functions with arity > 2 is pretty nifty
02:23:16 <ldlework> with functions*
02:23:41 <dibblego> there are no functions with arity > 2
02:23:46 × td_ quits (~td@94.134.91.92) (Ping timeout: 268 seconds)
02:23:47 <ldlework> we went over this!
02:23:49 <ldlework> lol
02:23:52 <dibblego> jus' checkin'
02:24:09 <[itchyjunk]> in a different language,the function b->c i get back might be different with same a ?
02:24:11 <ldlework> haha
02:24:42 <ldlework> in most languages, partial application is not part of the calling mechanics
02:24:46 <sclv> [itchyjunk]: yes, if you actually have partial application in that language
02:24:51 <ldlework> so in most languages you'll get an error about not passing enough arguments
02:24:56 <sclv> but in an effectful and functional language like ocaml, yes
02:25:04 <[itchyjunk]> hmmmmm
02:25:05 <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
02:25:07 <ldlework> or F#!
02:25:17 td_ joins (~td@muedsl-82-207-238-177.citykom.de)
02:25:30 <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
02:25:42 <ldlework> dibblego: no doubt
02:26:04 <[itchyjunk]> is getting an error about not passing enough arguments also considered a side effect?
02:26:15 <dibblego> no
02:26:19 <sclv> errors are not considered side effects, exceptions are
02:26:44 <sclv> but also haskell will never give such errors, because things like arguments matching are checked by types at compile time
02:26:45 <ldlework> well in most languages calling something with the wrong amount of arguments will either not compile, or throw a runtime exception
02:27:00 <ldlework> can't think of a language where you'd get an error back for not calling with the right argument count
02:27:18 <pony> python
02:27:28 <ldlework> that's an exception
02:27:28 <sclv> :t (:)
02:27:29 <lambdabot> a -> [a] -> [a]
02:27:49 <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
02:28:07 <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
02:28:55 <[itchyjunk]> ah
02:29:23 <[itchyjunk]> so every time something is done, you get a new something and all those old stuff are around
02:29:41 <[itchyjunk]> and i guess some sort of garbage collector manages them so i don't fill up the memory?
02:30:06 <sclv> yes
02:30:22 lavaman joins (~lavaman@98.38.249.169)
02:31:26 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
02:32:36 sm2n joins (~sm2n@user/sm2n)
02:33:04 justsomeguy joins (~justsomeg@user/justsomeguy)
02:33:24 × nicbk quits (~nicbk@user/nicbk) (Quit: nicbk)
02:35:07 <[itchyjunk]> thanks! back to understanding this finite machine stuff
02:40:23 × pony quits (~ed@101.100.135.69) (Quit: WeeChat 2.8)
02:41:06 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:41:17 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
02:43:01 proofofkeags_ joins (~proofofke@97-118-134-2.hlrn.qwest.net)
02:53:35 <Axman6> Technically Haskell doesn't require any sort of garbage collection, but you would fill up memory very quickly without it
02:54:20 nattiestnate joins (~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
02:55:06 <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
02:56:16 <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
02:56:30 × alx741 quits (~alx741@181.196.69.212) (Quit: alx741)
02:58:51 × asivitz quits (uid178348@id-178348.tinside.irccloud.com) (Quit: Connection closed for inactivity)
02:59:54 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
03:01:30 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:06:19 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
03:07:18 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
03:07:39 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
03:09:42 <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.
03:16:09 × mentAI quits (~mentAI@2001:67c:2628:647:12::3c2) (Ping timeout: 256 seconds)
03:17:41 <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.
03:34:04 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds)
03:34:06 × nattiestnate quits (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.2)
03:34:22 nattiestnate joins (~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
03:37:35 × nattiestnate quits (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Client Quit)
03:37:43 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
03:37:55 nattiestnate joins (~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
03:39:27 × nattiestnate quits (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Client Quit)
03:39:46 nattiestnate joins (~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
03:41:26 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds)
03:46:58 <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
03:50:21 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
04:01:26 <lars__> It's not just the binary, but all all libraries, which would is a lot of mouse clicking.
04:02:50 <lars__> Anyways, I found a solution: running `xattr -rc` both on the source and the target directory resolved it after 2 iterations.
04:10:24 pony joins (~ed@101.100.135.67)
04:12:13 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
04:20:49 wrengr is now known as wrengr_away
04:24:58 goepsilongo joins (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com)
04:25:39 <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
04:25:44 kimjetwav joins (~user@2607:fea8:235f:9730:8357:c73b:f3ec:cc1b)
04:25:55 × zebrag quits (~chris@user/zebrag) (Remote host closed the connection)
04:26:40 benin036932301 joins (~benin@183.82.24.227)
04:27:01 × benin03693230 quits (~benin@183.82.24.227) (Ping timeout: 265 seconds)
04:27:02 benin036932301 is now known as benin03693230
04:27:02 × benin03693230 quits (~benin@183.82.24.227) (Remote host closed the connection)
04:27:45 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
04:28:00 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
04:29:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:31:49 × goepsilongo quits (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Ping timeout: 268 seconds)
04:31:50 Erutuon joins (~Erutuon@user/erutuon)
04:33:06 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
04:33:19 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
04:34:16 slack1256 joins (~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net)
04:35:43 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
04:39:22 × Cale quits (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
04:42:26 <texasmynsted> sclv and Axman6. Thank you.
04:43:01 <Franciman> Hi is there some benchmark on IOArray vs IOVector?
04:43:08 <Franciman> which one is to be preferred?
04:43:16 <Franciman> based on speed
04:43:26 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
04:43:39 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
04:46:04 <texasmynsted> setting the config location for ghc fixed that one. Now it is looking for the "stack package DB"\
04:46:30 <texasmynsted> I think there is no accommodation for cabal
04:57:17 <sm> texasmynsted: yes, there is not. It's pretty easy to install stack for this though
04:57:57 <texasmynsted> Perhaps. I avoid stack if at all possible
05:02:15 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
05:02:40 Guest2782 joins (~neo3@cpe-292712.ip.primehome.com)
05:02:47 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
05:03:04 neo1 joins (~neo3@cpe-292712.ip.primehome.com)
05:07:35 × Guest2782 quits (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 268 seconds)
05:09:56 Gurkenglas joins (~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de)
05:10:24 jonatan joins (~nate@h85-8-60-194.cust.a3fiber.se)
05:12:12 <Franciman> why so, texasmynsted if I can ask?
05:16:43 chomwitt joins (~chomwitt@2a02:587:dc14:5d00:12c3:7bff:fe6d:d374)
05:21:38 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 265 seconds)
05:22:12 max22- joins (~maxime@2a01cb08833598009b3393ce9ac42685.ipv6.abo.wanadoo.fr)
05:23:25 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:25:22 michalz joins (~michalz@185.246.204.57)
05:25:41 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds)
05:34:36 <dsal> Franciman: stack is a religion. Some people really dislike it. I've not successfully let go of it for any projects.
05:35:00 <c_wraith> I just don't like that it assumes it's smarter than me
05:35:22 <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.
05:35:56 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
05:36:05 <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
05:36:45 <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)
05:36:50 <Franciman> dsal: ironically I am defining a mutable stack lol
05:37:07 × acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
05:37:39 <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.
05:37:56 <Franciman> thanks
05:37:59 <dsal> I've never used either under IO, but I've used both under ST.
05:38:04 <dsal> They just don't seem very similar to me. heh
05:38:46 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
05:39:00 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
05:40:22 acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
05:40:53 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
05:51:35 × neo1 quits (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 268 seconds)
05:53:55 sm2n_ joins (~sm2n@user/sm2n)
05:54:06 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
05:54:13 × jushur quits (~human@user/jushur) (Quit: ¯\_(ツ)_/¯)
05:54:19 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
05:56:18 × sm2n quits (~sm2n@user/sm2n) (Ping timeout: 268 seconds)
05:56:31 × lars__ quits (~lars@c-76-104-180-32.hsd1.wa.comcast.net) (Ping timeout: 268 seconds)
05:56:41 × cjb quits (~cjbayliss@user/cjb) ()
05:56:57 × jacks2 quits (~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
05:59:07 × slack1256 quits (~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net) (Remote host closed the connection)
06:02:38 kenran joins (~kenran@200116b82bdd2a00e75641d2b54b9789.dip.versatel-1u1.de)
06:04:26 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
06:04:39 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
06:05:46 × proofofkeags_ quits (~proofofke@97-118-134-2.hlrn.qwest.net) (Ping timeout: 268 seconds)
06:07:19 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
06:08:13 ubert joins (~Thunderbi@178.165.189.117.wireless.dyn.drei.com)
06:12:17 jakalx parts (~jakalx@base.jakalx.net) ()
06:14:23 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
06:20:03 cfricke joins (~cfricke@user/cfricke)
06:20:40 Akronymus joins (~Akronymus@85.31.8.180)
06:21:07 <mjrosenb> ok, I have made a test case for what I want to do.
06:21:11 <mjrosenb> https://gist.github.com/mjrosenb/a3a22b3a7dd562b69d85f706d233242d
06:21:45 <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?
06:21:57 chele joins (~chele@user/chele)
06:22:19 <Akronymus> I hope I get to use haskell at night school
06:22:33 <Akronymus> (Part of the adult education system over here)
06:22:49 <Akronymus> Sadly, I doubt it as it seems to lean pretty hard into OOP. :(
06:23:02 × chomwitt quits (~chomwitt@2a02:587:dc14:5d00:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds)
06:26:39 jushur joins (~human@user/jushur)
06:27:23 <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) ()`
06:30:05 vysn joins (~vysn@user/vysn)
06:30:33 <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
06:31:00 <mjrosenb> awpr: a solution that doesn't rely on them being ints is best.
06:32:00 <awpr> then the forall would be needed; or potentially use `zoom`
06:32:16 <awpr> BTW all three versions unconditionally store the result into the first `Foo`, is that intentional?
06:32:54 × _bin quits (~bin@user/bin/x-1583188) (Ping timeout: 268 seconds)
06:34:22 <mjrosenb> yes.
06:34:50 <mjrosenb> that 'foo' is the current state
06:35:15 <mjrosenb> it is the only one that gets written into. it can either be built from the current state or the previous state.
06:37:14 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
06:37:27 <mjrosenb> technically speaking, they aren't the same type, but they should be close enough for this to give an accurate representation
06:43:29 <awpr> okay, sounds like probably some variation of `forall a. Lens' Foo a -> m a` would do it
06:51:33 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:59:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:01:51 System123 joins (~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com)
07:04:25 jakalx joins (~jakalx@base.jakalx.net)
07:09:05 acidjnk_new joins (~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de)
07:14:40 × ubert quits (~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Remote host closed the connection)
07:16:26 ubert joins (~Thunderbi@178.165.189.117.wireless.dyn.drei.com)
07:19:44 fendor joins (~fendor@178.165.201.14.wireless.dyn.drei.com)
07:19:48 × aerona quits (~aerona@2600:6c54:4600:f300:d963:2c18:9947:74cf) (Quit: Leaving)
07:26:14 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
07:26:36 burnsidesLlama joins (~burnsides@dhcp168-019.wadham.ox.ac.uk)
07:28:21 × phma quits (~phma@host-67-44-208-7.hnremote.net) (Read error: Connection reset by peer)
07:29:47 phma joins (~phma@host-67-44-208-112.hnremote.net)
07:32:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
07:36:35 mc47 joins (~mc47@xmonad/TheMC47)
07:40:17 × azeem quits (~azeem@2a00:801:3c7:fe55:ef64:2dcc:d00c:3ee5) (Read error: Connection reset by peer)
07:40:35 azeem joins (~azeem@emp-91-123.eduroam.uu.se)
07:40:43 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a93a:cbb6:2e75:4a2) (Remote host closed the connection)
07:40:46 × abraham quits (~abraham@143.244.185.86) (Quit: The Lounge - https://thelounge.chat)
07:41:54 abraham joins (~abraham@143.244.185.86)
07:42:19 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:44:13 TranquilEcho joins (~grom@user/tranquilecho)
07:46:41 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:47:12 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
07:50:36 × neurocyte quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
07:53:41 neurocyte joins (~neurocyte@45.14.191.55)
07:53:41 × neurocyte quits (~neurocyte@45.14.191.55) (Changing host)
07:53:41 neurocyte joins (~neurocyte@user/neurocyte)
07:54:10 System12_ joins (~System123@m91-129-99-234.cust.tele2.ee)
07:54:53 <dminuoso> Also, you can use `math :: _` to have the type inferred.
07:55:06 <dminuoso> With `lens` that requires a bit of wizardy knowledge of course.
07:55:47 bearsinheaven joins (~bearsinhe@2409:4054:20b:ba44:9580:3786:277:15c1)
07:56:27 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2)
07:56:35 __monty__ joins (~toonn@user/toonn)
07:56:47 vysn joins (~vysn@user/vysn)
07:57:16 × System123 quits (~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com) (Ping timeout: 265 seconds)
07:58:37 × System12_ quits (~System123@m91-129-99-234.cust.tele2.ee) (Ping timeout: 268 seconds)
08:01:38 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:05:22 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
08:06:03 hendursa1 joins (~weechat@user/hendursaga)
08:06:25 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
08:08:45 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:11:38 Everything joins (~Everythin@37.115.210.35)
08:17:14 <Akronymus> arahael not quite everywhere.
08:20:50 × fendor quits (~fendor@178.165.201.14.wireless.dyn.drei.com) (Remote host closed the connection)
08:21:09 goepsilongo joins (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com)
08:24:00 dut joins (~dut@user/dut)
08:24:15 <sshine> Akronymus, surely you can make an OO runtime in Haskell using the State monad.
08:24:53 <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:
08:24:56 Orbstheorem sent a haskell code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/7f3e0be567bcfd1bc06e85c5bfd543851b90d82e
08:26:10 <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
08:26:44 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:27:30 <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...
08:27:40 <Akronymus> sshine AAAAAAAAAAAAAAAAAAAA
08:28:00 System123 joins (~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com)
08:28:19 <[exa]> you mean `new AAAAAAAAAAAAAA()`
08:28:50 <[exa]> Orbstheorem: it's supposed to "return" a constraint, not a type, right?
08:28:58 <Orbstheorem> sshine: Don't forget to add an utterly useless instance of Eq for all types :D
08:29:26 <[exa]> Orbstheorem: oh noes, that's done by `instance Hashable a => Eq a`
08:29:40 × goepsilongo quits (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Quit: Konversation terminated!)
08:30:11 <Orbstheorem> [exa]: Right. The thing is there's no error whatsoever, it just silently discards the type smuggled as a constraint.
08:31:05 Orbstheorem is ashamed to admit he wasted 30min debugging why type-errors were not firing ><"
08:31:37 × bearsinheaven quits (~bearsinhe@2409:4054:20b:ba44:9580:3786:277:15c1) (Quit: Client closed)
08:32:54 chomwitt joins (~chomwitt@ppp-94-67-221-96.home.otenet.gr)
08:34:09 <[exa]> 30 minutes is lucky. :D
08:34:36 <[exa]> anyway, it still doesn't fire even if you actually create something and run the `cc` on it?
08:34:46 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
08:34:59 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
08:34:59 <Orbstheorem> [exa]: Yep.
08:35:20 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
08:35:58 acidjnk_new3 joins (~acidjnk@p200300d0c7203094a5634563aea03fe4.dip0.t-ipconnect.de)
08:36:00 <[exa]> Random idea: can you check out whether the constraint gets erased in Core? (--ddump-core)
08:37:17 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
08:39:06 <[exa]> hm actually
08:39:22 <Orbstheorem> Hmm, this is interesting. In my reduced example, instanciating Bar does produce a type-error when calling cc.
08:39:27 <Orbstheorem> But at call-site.
08:39:35 <[exa]> `:k TypeError` gives me `TypeError :: ErrorMessage -> b`
08:39:41 <[exa]> so technically it can produce the constraint
08:39:42 <Orbstheorem> (Also, I didn't have this error in my use-case using Generics)
08:39:56 × acidjnk_new quits (~acidjnk@p200300d0c7203094152b258e26158264.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
08:40:21 <[exa]> except you start picking in the resulting constraint much later this way
08:41:34 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
08:41:47 × ubert quits (~Thunderbi@178.165.189.117.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
08:41:47 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:21b7:6800:ed3c:e303)
08:46:19 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:21b7:6800:ed3c:e303) (Ping timeout: 252 seconds)
08:48:09 <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.
08:48:44 <Orbstheorem> Is `$var` the core representation of a constraint?
08:48:58 <Orbstheorem> Or a proof?
08:49:40 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
08:50:48 tremon joins (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
08:51:32 × hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
08:54:26 <[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
08:56:06 × sagax quits (~sagax_nb@user/sagax) (Read error: Connection reset by peer)
08:56:29 <[exa]> (likely not it seems)
09:00:09 × wallymathieu[m] quits (~wallymath@2001:470:69fc:105::16ae) (Quit: You have been kicked for being idle)
09:06:39 bearsinheaven joins (~bearsinhe@169.149.36.242)
09:08:45 bearsinheaven parts (~bearsinhe@169.149.36.242) ()
09:12:31 retro_ joins (~retro@176.255.22.194)
09:13:16 × retroid_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds)
09:21:51 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 265 seconds)
09:27:26 × ArctVaulMarsHMPJ quits (~pjetcetal@2.95.102.85) (Quit: EXIT)
09:28:25 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
09:28:44 kmein joins (~weechat@user/kmein)
09:32:52 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
09:38:12 gehmehgeh joins (~user@user/gehmehgeh)
09:42:21 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:51a:51c5:5fd:d737)
09:46:05 Pickchea joins (~private@user/pickchea)
09:46:50 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:51a:51c5:5fd:d737) (Ping timeout: 260 seconds)
09:48:13 fendor joins (~fendor@178.165.201.14.wireless.dyn.drei.com)
09:49:11 Guest9791 joins (~neo3@cpe-292712.ip.primehome.com)
09:51:28 × Guest9791 quits (~neo3@cpe-292712.ip.primehome.com) (Client Quit)
09:51:47 Guest2259 joins (~neo3@cpe-292712.ip.primehome.com)
09:53:22 × Guest2259 quits (~neo3@cpe-292712.ip.primehome.com) (Client Quit)
09:53:38 Guest2259 joins (~neo3@cpe-292712.ip.primehome.com)
09:53:56 Guest2259 is now known as neo1
09:55:34 × Pickchea quits (~private@user/pickchea) (Ping timeout: 252 seconds)
10:01:45 Akronymus is now known as akronymus_afk
10:01:53 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
10:06:04 × acidjnk_new3 quits (~acidjnk@p200300d0c7203094a5634563aea03fe4.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
10:06:25 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
10:06:44 goepsilongo joins (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com)
10:07:46 × fendor quits (~fendor@178.165.201.14.wireless.dyn.drei.com) (Remote host closed the connection)
10:11:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
10:11:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:14:35 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
10:14:40 × azeem quits (~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 240 seconds)
10:15:07 azeem joins (~azeem@2a00:801:2d1:56c2:28a1:5bd4:4afc:cc23)
10:16:04 zaquest joins (~notzaques@5.128.210.178)
10:16:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:17:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:17:33 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:18:07 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
10:18:45 × azeem quits (~azeem@2a00:801:2d1:56c2:28a1:5bd4:4afc:cc23) (Read error: Connection reset by peer)
10:19:06 azeem joins (~azeem@emp-91-123.eduroam.uu.se)
10:22:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:23:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:27:14 × xff0x quits (~xff0x@2001:1a81:53ed:e500:473d:a67f:1294:2993) (Ping timeout: 268 seconds)
10:28:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:28:52 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 268 seconds)
10:28:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:29:11 hyiltiz joins (~quassel@31.220.5.250)
10:29:45 akronymus_afk is now known as akronymus
10:34:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:34:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:39:01 xff0x joins (~xff0x@2001:1a81:53ed:e500:473d:a67f:1294:2993)
10:43:02 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:94b2:778f:dfb1:21cc)
10:45:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:46:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:47:30 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:94b2:778f:dfb1:21cc) (Ping timeout: 260 seconds)
10:55:06 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
10:55:19 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
10:57:53 × goepsilongo quits (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Quit: Konversation terminated!)
11:00:58 alx741 joins (~alx741@181.196.69.212)
11:03:08 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:06:31 × azeem quits (~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 252 seconds)
11:07:44 ubert joins (~Thunderbi@178.165.176.211.wireless.dyn.drei.com)
11:10:22 AlexNoo_ joins (~AlexNoo@178.34.162.211)
11:10:42 azeem joins (~azeem@2a00:801:2d1:56c2:28a1:5bd4:4afc:cc23)
11:11:12 × azeem quits (~azeem@2a00:801:2d1:56c2:28a1:5bd4:4afc:cc23) (Read error: Connection reset by peer)
11:11:29 azeem joins (~azeem@emp-91-123.eduroam.uu.se)
11:12:01 × Alex_test quits (~al_test@178.34.151.112) (Ping timeout: 252 seconds)
11:13:49 × AlexZenon quits (~alzenon@178.34.151.112) (Ping timeout: 252 seconds)
11:13:59 × AlexNoo quits (~AlexNoo@178.34.151.112) (Ping timeout: 265 seconds)
11:16:05 Alex_test joins (~al_test@178.34.162.211)
11:17:50 AlexZenon joins (~alzenon@178.34.162.211)
11:18:35 akegalj joins (~akegalj@89-172-123-97.adsl.net.t-com.hr)
11:21:30 Cajun joins (~Cajun@user/cajun)
11:26:26 × xff0x quits (~xff0x@2001:1a81:53ed:e500:473d:a67f:1294:2993) (Ping timeout: 268 seconds)
11:27:13 xff0x joins (~xff0x@2001:1a81:53ed:e500:585d:98f9:921f:7e40)
11:50:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
11:51:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:56:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:56:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:58:35 lars__ joins (~lars@c-76-104-180-32.hsd1.wa.comcast.net)
12:02:12 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
12:02:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:05:08 × pony quits (~ed@101.100.135.67) (Quit: WeeChat 2.8)
12:06:37 × max22- quits (~maxime@2a01cb08833598009b3393ce9ac42685.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds)
12:07:26 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2)
12:08:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
12:08:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:10:13 × lars__ quits (~lars@c-76-104-180-32.hsd1.wa.comcast.net) (Ping timeout: 268 seconds)
12:14:22 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:19:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
12:20:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:21:24 killy joins (~killy@ers4.neoplus.adsl.tpnet.pl)
12:21:47 × killy quits (~killy@ers4.neoplus.adsl.tpnet.pl) (Client Quit)
12:21:55 killy joins (~killy@ers4.neoplus.adsl.tpnet.pl)
12:22:05 × killy quits (~killy@ers4.neoplus.adsl.tpnet.pl) (Client Quit)
12:22:40 jstolarek joins (~jstolarek@ers4.neoplus.adsl.tpnet.pl)
12:23:02 cheater joins (~Username@user/cheater)
12:23:15 × jstolarek quits (~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Client Quit)
12:23:23 jstolarek joins (~jstolarek@ers4.neoplus.adsl.tpnet.pl)
12:25:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
12:26:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:27:29 × ubert quits (~Thunderbi@178.165.176.211.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
12:31:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
12:31:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:35:04 × favonia quits (~favonia@user/favonia) (Ping timeout: 252 seconds)
12:35:55 System12_ joins (~System123@m91-129-99-197.cust.tele2.ee)
12:37:21 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
12:37:30 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:37:41 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:39:31 × System123 quits (~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com) (Ping timeout: 252 seconds)
12:40:30 × System12_ quits (~System123@m91-129-99-197.cust.tele2.ee) (Ping timeout: 265 seconds)
12:40:48 jinsun__ joins (~quassel@user/jinsun)
12:43:31 × jinsun quits (~quassel@user/jinsun) (Read error: Connection reset by peer)
12:45:27 ubert joins (~Thunderbi@178.165.176.211.wireless.dyn.drei.com)
12:45:41 jinsun__ is now known as jinsun
12:46:50 × sneedsfeed quits (~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) (Quit: Client closed)
12:51:28 o1lo01ol1o joins (~o1lo01ol1@bl13-86-242.dsl.telepac.pt)
12:56:39 slowButPresent joins (~slowButPr@user/slowbutpresent)
13:01:14 × burnsidesLlama quits (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
13:08:29 Pickchea joins (~private@user/pickchea)
13:09:51 × o1lo01ol1o quits (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Quit: Leaving...)
13:13:23 pbrisbin joins (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net)
13:15:26 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
13:15:39 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
13:17:11 AlexNoo_ is now known as AlexNoo
13:20:16 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:22:50 doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net)
13:22:56 max22- joins (~maxime@2a01cb08833598006be6953efce46753.ipv6.abo.wanadoo.fr)
13:24:06 favonia joins (~favonia@user/favonia)
13:26:09 <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!
13:26:12 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2.1)
13:26:28 <infinisil> What could be the cause of this or how could I find out?
13:27:42 <merijn> Well, step one: Have you profiled?
13:27:44 <[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?
13:27:48 <merijn> Did you do a GC timing?
13:28:20 <merijn> infinisil: Try running with "+RTS -sstderr" and pastebin the result
13:29:57 <kaol> I ran into a bug with scanr rewrite rules once that caused an infinite loop when compiled with -O. Fun times.
13:30:34 <infinisil> merijn: Doing that on the version without profiling enabled, hold on
13:30:47 × akronymus quits (~Akronymus@85.31.8.180) (Quit: Client closed)
13:30:59 <infinisil> Well, it's running, I'll report in ~4 minutes when it finishes
13:31:41 <merijn> I have an intuition, but I wanna see the productivity numbers before making my wild ass guesses :p
13:31:56 <infinisil> CPU is at 100% fwiw, used no special compile options (other than -rtsopts), so GC should only be single-threaded
13:32:13 <infinisil> Hehe
13:32:21 <merijn> oh
13:32:30 <merijn> You're not using -threaded?
13:32:36 burnsidesLlama joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
13:32:54 <merijn> are you using subprocesses or something along those lines?
13:33:27 <infinisil> Nope, not using threaded, and all a single thread and process
13:33:29 jumper149 joins (~jumper149@80.240.31.34)
13:33:58 <merijn> hmm
13:34:14 <merijn> What's the code doing?
13:34:27 lbseale joins (~lbseale@user/ep1ctetus)
13:34:30 <infinisil> Here's the -sstderr output: https://paste.infinisil.com/-nsoXipjYI.txt
13:34:36 <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.
13:34:40 × lbseale quits (~lbseale@user/ep1ctetus) (Remote host closed the connection)
13:35:04 lbseale joins (~lbseale@user/ep1ctetus)
13:35:21 <infinisil> merijn: Code uses https://hackage.haskell.org/package/jose to decode and verify a jwt blob of ~1MB size
13:35:40 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
13:35:40 <jpds> jumper149: I saw https://brandonchinn178.github.io/blog/2021/08/04/graphql-server-haskell.html a month ago
13:35:49 Akronymus joins (~Akronymus@85.31.8.180)
13:35:50 <merijn> "Productivity 33.6% of total user," <- well, that's fucking atrocious
13:36:32 <jumper149> jpds: That looks like a good read, ty :)
13:36:44 <merijn> infinisil: 33% productivity is god awful :)
13:37:22 <merijn> infinisil: So it's spending 67% of those 4 minutes garbage collecting
13:37:24 <infinisil> merijn: Here's exactly the same with a profiling-enabled version.. https://paste.infinisil.com/kTkaGcbcyE.txt
13:37:46 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:37:59 a6a45081-2b83 joins (~aditya@pal-210-106-57.itap.purdue.edu)
13:38:06 <merijn> Right, so there's something wonky (something being inlined?) maybe that's triggering re-evaluation non-stop and thus massive GC
13:38:07 <infinisil> Allocates about 1000 times more when not profiling..
13:38:29 <a6a45081-2b83> is there something gdb equivalent for haskell as for c++
13:38:38 <merijn> a6a45081-2b83: Yes, but also, no
13:38:50 <a6a45081-2b83> I wanted to debug some large codebase without making trace and debug statements everywhere
13:39:15 <merijn> @quote cmccann debugger
13:39:15 <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.
13:39:30 <merijn> There's a debugger in ghci, GHC user guide has details
13:39:33 <a6a45081-2b83> I just wanted to inspect some variables and see if they are being set to correct value through the execution flow
13:39:33 <doyougnu> a6a45081-2b83: You can use gdb: https://gitlab.haskell.org/ghc/ghc/-/wikis/debugging/compiled-code
13:39:42 <infinisil> Hmm yeah, but like why would enable profiling make it disappear..
13:39:42 <merijn> doyougnu: Yes, but also, not really
13:39:51 <merijn> infinisil: Profiling disables some optimisations
13:40:02 <infinisil> I'd expect profiling to disable optimizations if anything
13:40:04 <merijn> infinisil: Gonna need to see some code to make sense of it
13:40:06 <doyougnu> ah I see what you mean
13:40:34 <infinisil> merijn: Alright, hold on
13:40:52 <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
13:40:55 <infinisil> merijn: Nix-user?
13:41:00 <merijn> infinisil: Nope
13:41:15 <doyougnu> merijn: makes sense
13:42:15 geekosaur joins (~geekosaur@xmonad/geekosaur)
13:42:19 <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
13:42:57 <merijn> Max residency isn't even *that* bad in the slow one
13:44:17 burnside_ joins (~burnsides@client-8-86.eduroam.oxuni.org.uk)
13:44:19 × burnsidesLlama quits (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Read error: Connection reset by peer)
13:45:02 × Digit quits (~user@user/digit) (Ping timeout: 252 seconds)
13:46:24 lars__ joins (~lars@c-76-104-180-32.hsd1.wa.comcast.net)
13:49:05 shriekingnoise joins (~shrieking@186.137.144.80)
13:50:31 × favonia quits (~favonia@user/favonia) (Ping timeout: 268 seconds)
13:56:54 × lars__ quits (~lars@c-76-104-180-32.hsd1.wa.comcast.net) (Ping timeout: 268 seconds)
13:57:00 × kenran quits (~kenran@200116b82bdd2a00e75641d2b54b9789.dip.versatel-1u1.de) (Quit: WeeChat info:version)
14:01:10 ubert1 joins (~Thunderbi@178.115.39.25.wireless.dyn.drei.com)
14:01:35 _bin joins (~bin@user/bin/x-1583188)
14:02:40 × ubert quits (~Thunderbi@178.165.176.211.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
14:02:41 ubert1 is now known as ubert
14:02:49 acidjnk_new3 joins (~acidjnk@p200300d0c7203004190619efcd54ece4.dip0.t-ipconnect.de)
14:14:49 × ikex quits (~ash@user/ikex) (Quit: ZNC - https://znc.in)
14:15:08 ikex joins (~ash@user/ikex)
14:18:19 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:18:19 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:18:19 wroathe joins (~wroathe@user/wroathe)
14:19:23 × a6a45081-2b83 quits (~aditya@pal-210-106-57.itap.purdue.edu) (Remote host closed the connection)
14:24:40 favonia joins (~favonia@user/favonia)
14:30:46 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
14:31:02 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
14:38:11 hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com)
14:38:58 × pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 260 seconds)
14:40:37 acidjnk_new joins (~acidjnk@p200300d0c720300489d1e02b13283af1.dip0.t-ipconnect.de)
14:40:37 pooryorick joins (~pooryoric@87-119-174-173.tll.elisa.ee)
14:41:07 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
14:41:22 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
14:44:34 × acidjnk_new3 quits (~acidjnk@p200300d0c7203004190619efcd54ece4.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
14:47:15 × spruit11_ quits (~quassel@2a02:a467:ccd6:1:bdee:99d8:9af:602f) (Ping timeout: 268 seconds)
14:47:35 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
14:47:53 fendor joins (~fendor@e255-168.eduroam.tuwien.ac.at)
14:54:34 fendor_ joins (~fendor@e239-072.eduroam.tuwien.ac.at)
14:55:16 × azeem quits (~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 268 seconds)
14:56:38 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
14:57:17 × fendor quits (~fendor@e255-168.eduroam.tuwien.ac.at) (Ping timeout: 265 seconds)
14:58:37 chisui joins (~chisui@200116b868904600f8a1e0879cf789d5.dip.versatel-1u1.de)
14:58:54 spruit11 joins (~quassel@2a02:a467:ccd6:1:8499:aaa7:da86:787a)
14:59:35 fendor__ joins (~fendor@e236-214.eduroam.tuwien.ac.at)
15:00:33 azeem joins (~azeem@2a00:801:3c1:c79f:2f67:8901:c99e:d77d)
15:01:09 <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
15:01:09 <chisui> instance definitions.
15:01:11 gensyst joins (gensyst@user/gensyst)
15:01:28 <gensyst> Does someone have thoughts on the various plotting libraries?
15:01:42 <gensyst> plot vs gnuplot for instance
15:02:07 × fendor_ quits (~fendor@e239-072.eduroam.tuwien.ac.at) (Ping timeout: 265 seconds)
15:03:15 × dexterfoo quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (Quit: WeeChat 1.9.1)
15:03:35 <chisui> ARGH, I had an endless recursion at https://github.com/chisui/optparse-applicative/blob/master/src/Options/Applicative/Generic.hs#L83
15:05:24 <merijn> gensyst: My thoughts are: I like none of them
15:05:57 <merijn> gensyst: And gnuplot is Thielemann-ware, so...good luck with that >.>
15:06:43 <gensyst> merijn, what's wrong with Th-ware?
15:06:45 asivitz joins (uid178348@id-178348.tinside.irccloud.com)
15:07:09 <gensyst> (don't know anything about him (the lib author) btw)
15:07:13 <merijn> He has...unique opinions on how things should be named
15:07:14 <c_wraith> every type is named T
15:07:19 <merijn> And qualified imports
15:07:24 <c_wraith> every class is named C
15:07:29 <merijn> So, eh, just have a look at the resulting haddocks...
15:07:49 × fendor__ quits (~fendor@e236-214.eduroam.tuwien.ac.at) (Ping timeout: 268 seconds)
15:08:03 <gensyst> LOL
15:08:21 <gensyst> so whichs plotting libs have you normally used in practice even if you don't like them?
15:08:27 <gensyst> or which are the least bad
15:09:04 <merijn> gensyst: matplotlib >.>
15:09:16 <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).
15:09:18 × ubert quits (~Thunderbi@178.115.39.25.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
15:09:43 <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
15:11:57 <gensyst> great to know, thanks!
15:12:07 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
15:12:20 Sgeo joins (~Sgeo@user/sgeo)
15:13:58 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
15:14:29 <dminuoso> Every day I write in nix I begin to realize that a lazy functional language is only fun with a type system.
15:15:29 <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.
15:15:44 <gensyst> dminuoso, why have there been no efforts to do package management with ... haskell? i.e. just get rid of nix altogether
15:15:54 <gensyst> network effects?
15:16:38 <dminuoso> Honestly, what nix does cant easily be done in Haskell
15:18:23 <dminuoso> gensyst: The primary technical problem I can see, is how much the nix ecosystem relies on fixed points
15:18:44 <tomsmeding> :t fix
15:18:45 <lambdabot> (a -> a) -> a
15:18:52 <tomsmeding> /s
15:18:55 <dminuoso> In a modular way such that even conceptual types would be fixed point types..
15:19:00 <dminuoso> Say:
15:19:34 <dminuoso> `{ config, ... }: { config = ... }`, the shape of `config` depends on the fixed point result.
15:20:07 <dminuoso> If we had ML-style functors, maybe we could model something close to it.
15:20:21 <dminuoso> (So perhaps with backpack some approximation could be built?)
15:21:03 × Akronymus quits (~Akronymus@85.31.8.180) (Quit: Client closed)
15:21:06 <gensyst> no idea tbh
15:21:49 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:21:55 <dminuoso> Plus, most of nix is sort of monadic fixed points
15:22:08 <dminuoso> with effects being buildings and realizations of derivations
15:22:52 <dminuoso> So a naive 1:1 mapping would have to allow for an ML-style functor level mfix.
15:25:10 × Pickchea quits (~private@user/pickchea) (Ping timeout: 260 seconds)
15:25:35 <infinisil> merijn: Alright I've got a minified reproducer: https://github.com/tweag/haskell-fido2/tree/slow-repro
15:26:24 lars__ joins (~lars@c-76-104-180-32.hsd1.wa.comcast.net)
15:27:39 <merijn> infinisil: oh
15:27:43 slack1256 joins (~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net)
15:27:52 <merijn> Isn't the lazy BS the culprit?
15:28:49 <infinisil> Ohh
15:28:59 <infinisil> You know that thought crossed my mind, but I didn't test it, lemme do that
15:29:23 <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
15:29:53 <infinisil> merijn: Nope, still super slow
15:30:14 <merijn> time to stare at Core
15:31:18 <infinisil> Wait, I'm an idiot, be back in a bit
15:32:31 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
15:34:15 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
15:34:25 <infinisil> merijn: But no, there's no change
15:34:40 <infinisil> I was an idiot because just changing `LBS` to `BS` won't make it strict
15:35:01 <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
15:36:12 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
15:36:38 hendursaga joins (~weechat@user/hendursaga)
15:41:49 Cale joins (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com)
15:43:17 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
15:49:36 Erutuon joins (~Erutuon@user/erutuon)
15:50:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
15:56:28 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
15:56:41 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
15:57:37 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
15:57:48 slowButPresent joins (~slowButPr@user/slowbutpresent)
15:58:04 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
16:04:13 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:94b2:778f:dfb1:21cc)
16:04:55 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:94b2:778f:dfb1:21cc) (Client Quit)
16:05:26 justsomeguy joins (~justsomeg@user/justsomeguy)
16:05:26 <kaol> infinisil: I tried it on my laptop (Ryzen 4650U) and big.jwt took 400ms with no profiling. GHC 8.8.4.
16:06:17 <infinisil> kaol: Oh good idea, I've been using 8.10.4
16:06:20 <infinisil> I'll try with 8.8 later
16:06:23 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
16:07:48 mousey joins (~sky@gateway/tor-sasl/mousey)
16:13:17 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:13:21 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
16:15:23 proofofkeags_ joins (~proofofke@205.209.28.54)
16:16:04 × favonia quits (~favonia@user/favonia) (Ping timeout: 265 seconds)
16:16:42 System123 joins (~System123@203-134-35-213.sta.estpak.ee)
16:16:48 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
16:17:02 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
16:21:36 × System123 quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 268 seconds)
16:21:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:24:44 × lars__ quits (~lars@c-76-104-180-32.hsd1.wa.comcast.net) (Quit: leaving)
16:26:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
16:30:41 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2.1)
16:30:53 favonia joins (~favonia@user/favonia)
16:35:06 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
16:38:38 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668) (Remote host closed the connection)
16:42:17 System123 joins (~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com)
16:45:25 <infinisil> kaol: Aha, interesting, for me it's a bit faster, but still really slow with 8.8.4
16:46:30 <infinisil> kaol: Can you show the output of your `ghc-pkg list`?
16:46:52 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
16:51:20 × neurocyte quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
16:51:25 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
16:53:34 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
16:53:46 cheater joins (~Username@user/cheater)
16:58:00 neurocyte joins (~neurocyte@45.14.191.55)
16:58:00 × neurocyte quits (~neurocyte@45.14.191.55) (Changing host)
16:58:00 neurocyte joins (~neurocyte@user/neurocyte)
16:58:12 × jstolarek quits (~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Ping timeout: 268 seconds)
16:59:04 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:02:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:02:43 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:06:00 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
17:06:21 cheater joins (~Username@user/cheater)
17:07:03 ikex1 joins (ash@user/ikex)
17:07:27 × chisui quits (~chisui@200116b868904600f8a1e0879cf789d5.dip.versatel-1u1.de) (Ping timeout: 256 seconds)
17:08:04 × ikex quits (~ash@user/ikex) (Ping timeout: 268 seconds)
17:08:04 ikex1 is now known as ikex
17:08:07 justsomeguy joins (~justsomeg@user/justsomeguy)
17:10:07 × acidjnk_new quits (~acidjnk@p200300d0c720300489d1e02b13283af1.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
17:26:22 chisui joins (~chisui@200116b86890460080ddd003aee62e7e.dip.versatel-1u1.de)
17:29:18 jess joins (~jess@libera/staff/jess)
17:31:22 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668) (Remote host closed the connection)
17:36:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
17:39:12 econo joins (uid147250@user/econo)
17:40:30 × favonia quits (~favonia@user/favonia) (Ping timeout: 260 seconds)
17:45:03 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:46:18 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
17:47:08 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
17:47:26 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
17:49:22 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
17:52:29 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
17:52:42 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
17:55:28 × slack1256 quits (~slack1256@static-132-147-34-179.fl.cpe.atlanticbb.net) (Remote host closed the connection)
17:56:16 × Gurkenglas quits (~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
17:58:18 × mousey quits (~sky@gateway/tor-sasl/mousey) (Ping timeout: 276 seconds)
18:01:46 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:02:15 ec_ joins (~ec@gateway/tor-sasl/ec)
18:02:20 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:02:21 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
18:02:21 wroathe joins (~wroathe@user/wroathe)
18:02:57 × dut quits (~dut@user/dut) (Ping timeout: 268 seconds)
18:03:38 × proofofkeags_ quits (~proofofke@205.209.28.54) (Remote host closed the connection)
18:03:56 proofofkeags_ joins (~proofofke@205.209.28.54)
18:04:37 hexfive joins (~eric@50.35.83.177)
18:04:52 × hexfive quits (~eric@50.35.83.177) (Client Quit)
18:05:45 fef joins (~thedawn@user/thedawn)
18:07:14 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
18:09:10 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 240 seconds)
18:09:18 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668) (Remote host closed the connection)
18:09:44 × alx741 quits (~alx741@181.196.69.212) (Ping timeout: 268 seconds)
18:11:54 azimut joins (~azimut@gateway/tor-sasl/azimut)
18:14:33 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
18:18:10 Pickchea joins (~private@user/pickchea)
18:19:25 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:19:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
18:19:25 wroathe joins (~wroathe@user/wroathe)
18:20:45 favonia joins (~favonia@user/favonia)
18:22:08 alx741 joins (~alx741@181.196.68.49)
18:24:19 <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
18:24:27 <drewolson> is this something folks have seen before?
18:24:42 <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.
18:27:40 <drewolson> i added the relevant section of my stack.yaml to the gist as well
18:29:47 mousey joins (~sky@gateway/tor-sasl/mousey)
18:33:18 × Everything quits (~Everythin@37.115.210.35) (Quit: leaving)
18:36:00 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2)
18:36:39 mastarija joins (~mastarija@31.217.5.196)
18:37:29 pavonia joins (~user@user/siracusa)
18:42:28 × akegalj quits (~akegalj@89-172-123-97.adsl.net.t-com.hr) (Ping timeout: 252 seconds)
18:42:42 × derelict quits (derelict@user/derelict) (Quit: bye)
18:42:56 derelict joins (derelict@user/derelict)
18:45:06 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
18:46:37 ec_ joins (~ec@gateway/tor-sasl/ec)
18:48:29 bjobjo joins (~bjobjo@user/bjobjo)
18:53:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:55:09 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:57:57 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
18:58:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
19:00:44 nicbk joins (~nicbk@user/nicbk)
19:02:46 × nattiestnate quits (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Ping timeout: 268 seconds)
19:03:00 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
19:04:02 nattiestnate joins (~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
19:05:27 wrengr_away is now known as wrengr
19:10:28 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:10:36 <maerwald> drewolson: so you're running in compat mode?
19:10:53 <drewolson> maerwald: i _think_ so? i'm honestly not sure
19:10:55 × mastarija quits (~mastarija@31.217.5.196) (Quit: Leaving)
19:11:01 <maerwald> me neither
19:11:02 <drewolson> everything seemed to "just work" for local stack development
19:11:07 <drewolson> this is the first hiccup i'm hitting
19:11:08 <maerwald> I have no idea what stack docker does
19:11:15 akegalj joins (~akegalj@89-172-123-97.adsl.net.t-com.hr)
19:11:24 <drewolson> it seems to just run stack build inside of a docker container with mounted volumnes
19:11:38 <drewolson> fwiw, if i hand roll a docker container from debian:buster i experience the same issue
19:11:41 <drewolson> when running stack build
19:11:44 <maerwald> but I think if you installed stack from official method, you'll have a x86_64 binary
19:12:01 <drewolson> i did, via curl
19:12:10 <maerwald> check the binary with `file`
19:12:44 <drewolson> ```$ which stack | xargs file
19:12:52 <drewolson> `/usr/local/bin/stack: Mach-O 64-bit executable x86_64`
19:13:21 <maerwald> too bad I also don't have a native binary
19:13:29 <drewolson> is there a native binary?
19:13:34 <maerwald> no
19:13:38 <drewolson> :whomp:
19:13:49 <maerwald> but stack upgrade can install from source I think
19:13:50 <drewolson> i'm dangerously close to just building this binary on gitlab's ci
19:14:44 <maerwald> stack upgrade --source-only
19:14:48 <drewolson> trying now
19:15:07 <maerwald> but I'm not sure it'll pick the right arch either
19:15:32 <drewolson> yeah, if stack itself is running in rosetta, it might "lie" during the request
19:15:43 <drewolson> stack claims i am on the latest version
19:16:34 hammock joins (~Hammock@2600:1700:19a1:3330::588)
19:16:35 × bjobjo quits (~bjobjo@user/bjobjo) (Quit: Lost terminal)
19:17:17 bjobjo joins (~bjobjo@user/bjobjo)
19:17:36 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
19:18:54 × nicbk quits (~nicbk@user/nicbk) (Ping timeout: 276 seconds)
19:19:55 justsomeguy joins (~justsomeg@user/justsomeguy)
19:20:45 <kaol> infinisil: Sorry, I went away for a bit. I emailed my ghc-pkg list, I hope that's ok.
19:25:05 <drewolson> maerwald: i'll tell you if this gitlab gordian knot solution works :)
19:25:22 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
19:25:26 <drewolson> (basically i need to build a binary to run on debian)
19:26:32 thyriaen joins (~thyriaen@dynamic-078-055-255-174.78.55.pool.telefonica.de)
19:27:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:29:27 <chisui> Woa, docker on M1 seems just ... how .. what?
19:30:18 <drewolson> chisui: i can't tell if this means you're agreeing with me or disagreeing with me :)
19:30:40 <drewolson> i'm honestly confused as to why i have to provide a `--platform` flag to use the default debian container
19:30:44 <chisui> I'm just confused. That's all
19:32:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
19:34:40 × xff0x quits (~xff0x@2001:1a81:53ed:e500:585d:98f9:921f:7e40) (Ping timeout: 240 seconds)
19:35:23 <drewolson> status report: 15 mins in and gitlab ci is still compiling
19:35:39 xff0x joins (~xff0x@2001:1a81:53ed:e500:8294:b35:6b84:2798)
19:36:11 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
19:38:49 × chisui quits (~chisui@200116b86890460080ddd003aee62e7e.dip.versatel-1u1.de) (Quit: Client closed)
19:38:58 × akegalj quits (~akegalj@89-172-123-97.adsl.net.t-com.hr) (Quit: leaving)
19:39:01 chisui joins (~chisui@200116b86890460075c9988d490fe8d7.dip.versatel-1u1.de)
19:39:09 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668) (Remote host closed the connection)
19:39:49 acidjnk_new joins (~acidjnk@p200300d0c720300489d1e02b13283af1.dip0.t-ipconnect.de)
19:42:18 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
19:43:04 × gensyst quits (gensyst@user/gensyst) (Remote host closed the connection)
19:43:29 ubert joins (~Thunderbi@178.115.43.84.wireless.dyn.drei.com)
19:47:45 fendor joins (~fendor@178.165.181.243.wireless.dyn.drei.com)
19:49:33 ec_ joins (~ec@gateway/tor-sasl/ec)
19:53:40 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:57:43 × fendor quits (~fendor@178.165.181.243.wireless.dyn.drei.com) (Remote host closed the connection)
19:59:30 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d58c:2ecc:67d4:668)
20:00:11 × jrm quits (~jrm@156.34.187.65) (Quit: ciao)
20:00:35 jrm joins (~jrm@156.34.187.65)
20:03:35 <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
20:03:51 <maerwald> sm: huh?
20:05:05 <geekosaur> supported with 8.10.7 -fllvm I believe
20:05:08 <drewolson> i'm actually attempting to build an x86 binary on an m1 system
20:05:10 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 265 seconds)
20:05:15 <drewolson> i think this is docker weirdness
20:05:19 <sm> drewolson: different situation, but the error message sounds quite similar: https://github.com/commercialhaskell/stack/issues/5589#issuecomment-907842512
20:05:20 <drewolson> docker for mac on m1s is ... something
20:05:30 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:05:30 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
20:05:30 wroathe joins (~wroathe@user/wroathe)
20:05:34 <maerwald> sm: arm is supported
20:05:41 <sm> yes, I assume it's only with docker involved
20:07:28 juhp joins (~juhp@128.106.188.220)
20:07:35 <sm> maerwald, geekosaur : correct, that's more accurate. 8.10.7 with -fllvm is rumoured to do it.
20:08:14 <maerwald> GHC, ghcup and cabal support ARM for both linux and mac just fine... it's just stack that's lacking behind
20:08:57 <maerwald> stack metadata has been updated recently though
20:09:06 sedeki joins (~textual@user/sedeki)
20:10:15 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
20:10:30 <Franciman> I always suggest my fellow programmers on my project to avoid using things that would make building with ghc alone impossible
20:10:33 <Franciman> we ship a cabal file
20:10:47 <Franciman> just for correctness to others
20:11:00 <Franciman> but we always strieve to get ghc --make buildable software
20:11:16 <Franciman> once you introduce evil such as cabal and stack, things get naughty SO FAST
20:11:42 <Franciman> when not possible, cabal is the backup
20:11:50 <Franciman> because stack users can still make use of it
20:11:53 <Franciman> that's how we work
20:11:58 <Franciman> ghc -> cabal -> stack
20:12:17 <maerwald> Franciman: there's an alternative to cabal-install, I forgot the name
20:12:21 <maerwald> think it's discontinued
20:12:31 <maerwald> it doesn't use Setup.hs even
20:12:38 <maerwald> so calls ghc directly
20:12:49 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
20:12:51 <Franciman> hi maerwald !
20:12:53 <Franciman> so cool
20:13:02 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
20:13:07 × sedeki quits (~textual@user/sedeki) (Client Quit)
20:13:18 <Franciman> maerwald: I haven't get any time to get back at ghcup satisfy :<
20:13:22 <Franciman> sorry
20:13:27 <Franciman> got*
20:13:39 <maerwald> Franciman: I opened an opencollective account. If we get some money I put a bounty on it
20:14:46 <Franciman> maerwald: got the link?
20:14:56 <maerwald> https://opencollective.com/ghcup
20:15:28 <Franciman> yay
20:15:36 <Franciman> do I need to register to give something?
20:15:49 <maerwald> probably, allows oauth with github I think
20:15:56 <Franciman> let's try
20:16:07 <maerwald> that would mean you fund yourself lol
20:16:31 × ubert quits (~Thunderbi@178.115.43.84.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
20:16:42 <Franciman> lol wut I wanted to help the community
20:16:45 <Franciman> ghcup is awesome
20:17:02 <Franciman> i can't live without
20:17:09 <maerwald> I can't find the link to the cabal alternative
20:17:10 <maerwald> dang
20:18:31 <maerwald> Is there a way in github to see what projects you liked?
20:18:56 <Franciman> yes
20:18:58 <Franciman> no
20:19:00 <Franciman> uhm
20:19:10 <maerwald> https://gist.github.com/sebble/e5af3d03700bfd31c62054488bfe8d4f
20:19:30 <Franciman> neat
20:19:34 <infinisil> maerwald: bazel/obelisk/hadrian?
20:19:37 <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?
20:20:12 <infinisil> Or snack
20:20:13 <maerwald> infinisil: I think different
20:20:57 ec_ joins (~ec@gateway/tor-sasl/ec)
20:21:24 <maerwald> I have it
20:21:25 <maerwald> https://github.com/ollef/rock
20:21:42 <maerwald> or wait, I think that's not it either
20:22:05 <maerwald> now I have
20:22:07 <maerwald> https://github.com/judah/pier
20:22:20 <maerwald> seems dead, but I like the idea
20:22:27 <sm> thanks for that workaround for https://github.com/commercialhaskell/stack/issues/5589, maerwald
20:22:27 <geekosaur> go to your main page (above your repos), find the star on the left sidebar, click on the star?
20:23:06 <maerwald> geekosaur: the script from the gist works... github api allows it
20:23:09 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
20:23:22 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
20:23:28 <Franciman> oh so you can see I put a star on all my projects :P
20:23:31 <Franciman> no kidding
20:23:36 <Franciman> i don't do it lol
20:23:48 <maerwald> it's sad to see non-trivial haskell projects abandoned
20:24:00 <maerwald> that must have been hard work (pier)
20:24:41 <infinisil> It's the natural cycle of projects
20:25:17 <sm> it lacked something that would have gained it traction
20:26:42 <maerwald> sm: probably lack of custom Setup.hs
20:26:47 <maerwald> that's a big one
20:26:55 <maerwald> *support of custom Setup.hs*
20:27:04 zebrag joins (~chris@user/zebrag)
20:27:06 nicbk joins (~nicbk@user/nicbk)
20:30:35 <ldlework> I finished HFFP's chapter on monads
20:30:53 <ldlework> I'm prettttty much an expert on functional programming now
20:31:09 <ldlework> I'll be fielding questions all day!
20:31:19 <ldlework> hehe
20:31:22 <janus> ldlework: how do i express bind in terms of join and fmap?
20:31:51 <ldlework> let's think
20:33:03 <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
20:33:13 <ldlework> join then monoidally collapses that structure
20:33:31 <ldlework> structure creating function
20:34:02 <ldlework> like a -> Maybe
20:35:45 <ldlework> so something like..
20:36:10 <ldlework> m >>= f = fmap f m & join
20:36:21 <ldlework> I think?
20:36:38 <janus> :t \f m -> fmap f m & join
20:36:39 <lambdabot> Monad m => (a1 -> m a2) -> m a1 -> m a2
20:36:41 newbie joins (~newbie@80-196-109-198-dynamic.dk.customer.tdc.net)
20:36:53 <awpr> :t flip (fmap (fmap join) fmap) -- maximally obfuscated
20:36:54 <lambdabot> Monad m => m a1 -> (a1 -> m a2) -> m a2
20:37:09 <ldlework> i can't tell, was i right?
20:37:33 <janus> the types seem ok. so ship it! must be correct
20:37:34 <newbie> newtype Test
20:37:39 <ldlework> lol
20:38:01 <ldlework> i am actually going back today and learning QuickTest/checker which I skipped over
20:39:12 <newbie> test\n test
20:39:28 <ldlework> the way that in `m a >>= b` bind takes the value out of structure and passes it to the next thing
20:39:34 <ldlework> kind of feels a lot like async/await
20:39:38 <ldlework> in a very vague way
20:39:53 <awpr> yep, async-style concurrency with futures forms a monad
20:40:09 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
20:41:01 <ldlework> Semigroup -> Monoid -> Functor -> Applicative -> Monad
20:41:06 <ldlework> was a pretty great pedagogical strategy
20:41:49 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
20:42:14 geekosaur joins (~geekosaur@xmonad/geekosaur)
20:42:44 <janus> those arrows make me nervous because monoid is not a superclass of functor
20:43:14 <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
20:43:46 <maerwald> sm: what do you mean?
20:43:52 <ldlework> janus: lol
20:44:04 <maerwald> sm: which binaries?
20:44:13 <sm> the ghcup binaries
20:44:17 <maerwald> ah
20:44:31 <maerwald> sm: there's a SHA256SUMS which is gpg signed
20:45:46 ec_ joins (~ec@gateway/tor-sasl/ec)
20:46:01 <sm> I see, down in https://downloads.haskell.org/~ghcup/0.1.16.2/ eg
20:46:38 <maerwald> yeah
20:46:50 <maerwald> download the sha files, verify the sig and then the checksums
20:46:55 <maerwald> sec
20:47:01 <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
20:47:33 <maerwald> I can give you a shell script that does it
20:47:46 <sm> urk, I have surrendered to the modern usage of "hacker"..
20:48:20 <sm> no I can do it, thanks. I'm just interested in the best way
20:49:35 <maerwald> just hang on
20:49:37 <sm> when I download an artifact from github CI, I feel that's a bit harder for anyone to compromise undetectedly
20:50:32 <maerwald> eh... you mean running on runners you don't know, managed by a company with a proprietary backend?
20:50:48 <maerwald> sm: https://paste.tomsmeding.com/wUa6cQ0Z
20:51:02 <maerwald> this does gpg and sha verification
20:51:33 <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'
20:51:55 <maerwald> sm: this makes only sense if you know the key is mine
20:51:59 <newbie> Gosh the formatting is terrible, sorry. Can I fix that?
20:52:12 <maerwald> sm: the key is mine
20:52:14 <maerwald> :D
20:52:36 <sm> thanks :)
20:52:40 <maerwald> (run this script in /tmp)
20:53:09 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
20:53:20 <maerwald> the binary is linux though
20:53:24 <maerwald> you may need to adjust
20:54:32 <sm> my point, I think providing the executables directly from CI would be better for ghcup adoption. YMMV
20:54:47 <maerwald> sm: I don't use github CI
20:54:53 <monochrom> newbie: You should use a paste bin. Below is our recommendation:
20:54:56 <monochrom> @where paste
20:54:56 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
20:55:00 <monochrom> That one.
20:55:37 <maerwald> sm: https://gitlab.haskell.org/haskell/ghcup-hs/-/pipelines/39475
20:55:41 <maerwald> you can download them there too
20:56:43 <sm> that's the sort of thing - sounds good. (These are hard to read, gitlab..)
20:59:12 cheater joins (~Username@user/cheater)
21:02:40 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:02:41 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
21:02:48 <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?
21:03:56 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
21:04:53 <sshine> newbie, when you do 'case f x of { Left err -> Left err; Right y -> ... }' you could do 'do { y <- f x; ... }'
21:06:07 vysn joins (~vysn@user/vysn)
21:06:11 <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)
21:07:09 <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
21:07:14 × jushur quits (~human@user/jushur) (Quit: ¯\_(ツ)_/¯)
21:07:37 <maerwald> I don't think many mac users have done what you just did
21:07:39 <maerwald> so :o
21:07:49 <maerwald> consider yourself the first
21:07:57 <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?
21:08:07 <sm> yup :)
21:08:32 <sshine> newbie, https://gist.github.com/sshine/4883017fd5969d5962c1782a562f8818
21:08:37 × michalz quits (~michalz@185.246.204.57) (Remote host closed the connection)
21:08:50 × max22- quits (~maxime@2a01cb08833598006be6953efce46753.ipv6.abo.wanadoo.fr) (Quit: Leaving)
21:09:24 <sshine> newbie, I'm not sure where 'rd' comes from.
21:09:43 <sm> I guess GHC devs know about apple's notarisation process, not sure if they have achieved it
21:10:22 <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'
21:10:22 <lambdabot> Unknown command, try @list
21:11:07 × nurupo quits (~nurupo.ga@user/nurupo) (Quit: nurupo.ga)
21:11:20 nurupo joins (~nurupo.ga@user/nurupo)
21:11:21 <sshine> newbie, it's called "minimise" as in "minimum reproducible problem" :)
21:11:41 <maerwald> sm: you mean just running a command on files
21:11:52 <sshine> newbie, you can also go to #haskell-beginners.
21:12:00 <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.
21:12:15 <newbie> @sshine Is there an easy way to reproduce your code without 'do' notation, juts for curiosity?
21:12:15 <lambdabot> Unknown command, try @list
21:12:30 <sshine> newbie, sure, you can rewrite do-notation into explicit use of >>=
21:12:48 <newbie> @sshine I might fit better into that chat, thanks. First day of Haskell and this IIRC, have alot to learn : )
21:12:48 <lambdabot> Unknown command, try @list
21:13:43 sm isn't sure exactly how homebrew binaries get past this apple security prompt, but they do
21:13:52 <yushyin> newbie: hi, this is irc, you don't need to prefix names with @
21:14:42 <newbie> yushyin thanks ^^
21:15:11 <sshine> newbie, you can convert a do-block into explicit use of >>= in a very mechanical way.
21:16:57 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:18:17 Cajun joins (~Cajun@user/cajun)
21:18:28 <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
21:22:40 <sshine> newbie, yeah, reload.
21:25:28 <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
21:25:39 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
21:28:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:28:29 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
21:28:38 Lycurgus joins (~juan@98.4.112.204)
21:28:43 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
21:33:29 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
21:33:59 <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
21:36:02 ec_ joins (~ec@gateway/tor-sasl/ec)
21:43:49 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
21:44:03 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
21:44:29 <ProofTechnique> lambdabot has an @undo function which can do the mechanical work for you, if you like
21:45:44 <ProofTechnique> (And a corresponding @do which will rewrite explicit >>= constructions to do-notation)
21:46:51 × nattiestnate quits (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.2)
21:47:56 <dsal> @undo do do do do it
21:47:56 <lambdabot> it
21:47:57 <ProofTechnique> @undo do { (a,ch,db1) <- runTEST m i db0; (a',ch',db2) <- runTEST (f a) rd db1; return (a',ch ++ ch',db2) }
21:47:57 <lambdabot> runTEST m i db0 >>= \ (a, ch, db1) -> runTEST (f a) rd db1 >>= \ (a', ch', db2) -> return (a', ch ++ ch', db2)
21:51:02 × favonia quits (~favonia@user/favonia) (Ping timeout: 265 seconds)
21:54:10 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
21:54:23 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
21:55:33 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
22:02:13 × System123 quits (~System123@ec2-52-61-197-79.us-gov-west-1.compute.amazonaws.com) (Ping timeout: 268 seconds)
22:02:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
22:02:40 ec_ joins (~ec@gateway/tor-sasl/ec)
22:08:00 keion joins (~dk1xd@2001:12b4:290:901:3d40:bef3:a81e:c18a)
22:08:50 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:09:20 favonia joins (~favonia@user/favonia)
22:12:42 × newbie quits (~newbie@80-196-109-198-dynamic.dk.customer.tdc.net) (Remote host closed the connection)
22:22:55 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
22:25:27 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
22:25:29 × chomwitt quits (~chomwitt@ppp-94-67-221-96.home.otenet.gr) (Remote host closed the connection)
22:27:00 System123 joins (~System123@84.16.238.77)
22:29:26 keion parts (~dk1xd@2001:12b4:290:901:3d40:bef3:a81e:c18a) ()
22:32:28 ec_ joins (~ec@gateway/tor-sasl/ec)
22:32:49 System12_ joins (~System123@203-134-35-213.sta.estpak.ee)
22:33:08 × System12_ quits (~System123@203-134-35-213.sta.estpak.ee) (Remote host closed the connection)
22:33:45 System12_ joins (~System123@203-134-35-213.sta.estpak.ee)
22:36:01 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:36:27 × System123 quits (~System123@84.16.238.77) (Ping timeout: 265 seconds)
22:38:36 wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
22:38:36 × wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Changing host)
22:38:36 wroathe joins (~wroathe@user/wroathe)
22:38:42 × System12_ quits (~System123@203-134-35-213.sta.estpak.ee) (Ping timeout: 260 seconds)
22:41:52 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:42:10 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
22:42:56 × TranquilEcho quits (~grom@user/tranquilecho) (Quit: WeeChat 2.8)
22:43:14 <maerwald[m]> sm: hooray
22:46:09 <maerwald[m]> What I find confusing about opencollective is: where do you tell contdibutors how the money is used?
22:47:51 × acidjnk_new quits (~acidjnk@p200300d0c720300489d1e02b13283af1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
22:49:54 <alanz> maerwald[m], what about https://opencollective.com/haskell-language-server/expenses>
22:49:56 <alanz> ?
22:50:31 <maerwald[m]> I mean like a heads up?
22:50:42 <alanz> Perhaps populate https://opencollective.com/haskell-language-server/updates
22:50:54 <NemesisD> is there such a thing as a type level text literal?
22:50:55 <alanz> Pretty sure it would trigger an email
22:51:31 <geekosaur> NemesisD, if you mean analogous to term level Text, no
22:53:13 <geekosaur> (as distinct from String / Symbol)
22:54:30 × amitnjha quits (~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
22:54:43 amitnjha joins (~amit@024-216-124-116.res.spectrum.com)
22:55:07 × neo1 quits (~neo3@cpe-292712.ip.primehome.com) (Read error: Connection reset by peer)
22:55:21 <geekosaur> NemesisD, what problem are you trying to solve?
22:55:39 <NemesisD> geekosaur: i've got a GADT `data G (a :: A) where G :: G 'A_A` and `data A = A_A` from another library, but now that library has switched to `newtype A = A Text`, `pattern A_A = A "A"`. so now i can't write that GADT because `'A_A` is now a pattern synonym
22:57:18 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
22:57:28 <geekosaur> hm
23:00:52 aegon joins (~mike@174.127.249.180)
23:01:01 ph88 joins (~ph88@2a02:8109:9e00:7e5c:cd33:d2f5:4ed3:fbd1)
23:02:54 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:04:06 ec_ joins (~ec@gateway/tor-sasl/ec)
23:04:30 × ph88^ quits (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
23:04:52 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 252 seconds)
23:04:54 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 268 seconds)
23:06:39 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:07:41 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
23:08:21 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
23:10:40 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
23:12:46 wroathe joins (~wroathe@user/wroathe)
23:14:09 × xsperry quits (~as@user/xsperry) (Ping timeout: 268 seconds)
23:15:32 × hendursaga quits (~weechat@user/hendursaga) (Remote host closed the connection)
23:15:58 hendursaga joins (~weechat@user/hendursaga)
23:18:04 × favonia quits (~favonia@user/favonia) (Ping timeout: 268 seconds)
23:19:18 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
23:23:13 ph88^ joins (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de)
23:23:44 cheater joins (~Username@user/cheater)
23:26:24 gioyik joins (~gioyik@gateway/tor-sasl/gioyik)
23:26:33 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
23:27:19 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:cd33:d2f5:4ed3:fbd1) (Ping timeout: 268 seconds)
23:28:01 <NemesisD> if there's no way around this i might just define my own sum type `A` and use that.
23:28:33 × xff0x quits (~xff0x@2001:1a81:53ed:e500:8294:b35:6b84:2798) (Ping timeout: 268 seconds)
23:28:50 xff0x joins (~xff0x@2001:1a81:53ed:e500:fed8:1f05:1144:969c)
23:33:33 ec_ joins (~ec@gateway/tor-sasl/ec)
23:36:03 pony joins (~ed@101.100.135.26)
23:36:07 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
23:39:39 × nicbk quits (~nicbk@user/nicbk) (Quit: nicbk)
23:41:53 xsperry joins (~as@user/xsperry)
23:44:06 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
23:58:45 × xff0x quits (~xff0x@2001:1a81:53ed:e500:fed8:1f05:1144:969c) (Remote host closed the connection)
23:59:02 xff0x joins (~xff0x@2001:1a81:53ed:e500:564f:86e7:d174:9c84)
23:59:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)

All times are in UTC on 2021-09-14.