2020/11/17

2020-11-17 00:00:14 +0100zoran119(~zoran119@124-169-22-52.dyn.iinet.net.au) (Read error: Connection reset by peer)
2020-11-17 00:00:29 +0100LKoen(~LKoen@9.253.88.92.rev.sfr.net) (Remote host closed the connection)
2020-11-17 00:00:52 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-17 00:00:52 +0100 <sshine> before the package gave its combinators funny new names, it only had 'cata', 'ana' and 'hylo'.
2020-11-17 00:01:16 +0100TxBiGuy(~coffee2th@172-125-238-23.lightspeed.rcsntx.sbcglobal.net)
2020-11-17 00:01:56 +0100 <sshine> I'm wondering if I should just ditch 'data-fix' and go back to a regular, recursive ADT, or try 'recursion-schemes'.
2020-11-17 00:02:48 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-17 00:02:49 +0100TxBiGuy(~coffee2th@172-125-238-23.lightspeed.rcsntx.sbcglobal.net) (Client Quit)
2020-11-17 00:02:52 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 00:03:16 +0100TxBiGuy(~coffee2th@172-125-238-23.lightspeed.rcsntx.sbcglobal.net)
2020-11-17 00:03:28 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-17 00:03:30 +0100 <sshine> another peculiar thing is that if I only want to match one level deep, and not recursively, it seems that I need to do 'Fix.foldFix $ \case { Foo{} -> ...; Bar{} -> ... }' and I suppose that since I'm not referring to the recursive parameters of Foo and Bar, they are lazily discarded?
2020-11-17 00:04:10 +0100TxBiGuy(~coffee2th@172-125-238-23.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection)
2020-11-17 00:04:47 +0100conal(~conal@66.115.176.210)
2020-11-17 00:05:03 +0100ebf0(~ebf0@184.75.221.35) (Ping timeout: 272 seconds)
2020-11-17 00:05:56 +0100fendor(~fendor@178.115.131.226.wireless.dyn.drei.com) (Remote host closed the connection)
2020-11-17 00:09:37 +0100pavonia_(~user@unaffiliated/siracusa)
2020-11-17 00:09:49 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-17 00:10:38 +0100kritzefitz_(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-11-17 00:11:10 +0100lagothrix(~lagothrix@unaffiliated/lagothrix) (Ping timeout: 246 seconds)
2020-11-17 00:11:37 +0100pavonia(~user@unaffiliated/siracusa) (Ping timeout: 264 seconds)
2020-11-17 00:11:38 +0100pavonia_pavonia
2020-11-17 00:15:50 +0100pavonia_(~user@unaffiliated/siracusa)
2020-11-17 00:17:07 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2020-11-17 00:18:02 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-11-17 00:18:23 +0100christo(~chris@81.96.113.213)
2020-11-17 00:18:34 +0100pavonia(~user@unaffiliated/siracusa) (Ping timeout: 260 seconds)
2020-11-17 00:18:45 +0100pavonia_pavonia
2020-11-17 00:19:37 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds)
2020-11-17 00:22:56 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad)
2020-11-17 00:23:31 +0100hackagenix-tree 0.1.2.0 - Interactively browse a Nix store paths dependencies https://hackage.haskell.org/package/nix-tree-0.1.2.0 (utdemir)
2020-11-17 00:24:23 +0100 <dolio> Was there some recent blog post somewhere hyping up recursion schemes or something?
2020-11-17 00:24:39 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-11-17 00:26:05 +0100 <dolio> Recursion schemes are the things people working on dependent type theory try very hard to avoid having to use. :þ
2020-11-17 00:28:37 +0100conal(~conal@66.115.176.210) (Quit: Computer has gone to sleep.)
2020-11-17 00:29:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-17 00:30:42 +0100ph88(~ph88@2a02:8109:9e00:7e5c:bc50:2174:75e6:7e22)
2020-11-17 00:30:47 +0100 <aoei> monochrom: lmao (sorry late reply, but you deserve the lols)
2020-11-17 00:30:48 +0100conal(~conal@66.115.176.210)
2020-11-17 00:31:01 +0100 <dsal> The paper was from nearly 30 years ago. It should be the new hotness any day now.
2020-11-17 00:31:13 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-17 00:31:41 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 00:32:19 +0100 <dolio> I think it's part of a general fallacy among some Haskellers that things that closely match the categorical presentation are automatically nicer. But that is false.
2020-11-17 00:33:05 +0100 <dolio> In fact, one of the reasons category theorists look for certain structures in categories is so that they can use languages that look more like type/set theory to reason about them.
2020-11-17 00:33:50 +0100`slikts(~nelabs@wikipedia/reinis) (Ping timeout: 246 seconds)
2020-11-17 00:33:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-11-17 00:34:06 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-paizsduyeybkbeqa)
2020-11-17 00:34:20 +0100 <dsal> I didn't get very far in my recent recursion excursion. Part of the problem is Foldable and Traversable do a lot of the magic. The other is that my use case and uses are just slightly weird. I can't even remember how, but when I sit down to do something interesting, it's always, "Oh yeah, this is why that won't work."
2020-11-17 00:34:46 +0100 <dsal> It doesn't help that my implementation is complete and already quite tidy.
2020-11-17 00:34:47 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-11-17 00:34:57 +0100shrug(~shrug@178.239.168.171)
2020-11-17 00:35:26 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-11-17 00:36:43 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
2020-11-17 00:37:28 +0100hiroaki(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2020-11-17 00:37:34 +0100 <dolio> Recursion schemes can give elegant presentations of some things, don't get me wrong. But there's a reason people came up with recursion and pattern matching, and try to justify them in terms of things like folds.
2020-11-17 00:38:38 +0100`slikts(~nelabs@wikipedia/reinis)
2020-11-17 00:39:43 +0100 <hololeap> learning how to think of something from different angles is beneficial, even if the benefits aren't obvious. it gives you more flexibility in your thinking
2020-11-17 00:41:17 +0100 <hololeap> i think a lot of people learn about recursion-schemes because it is a different angle to dealing with recursion than what they are used to, and after learning it realize that it's not that useful in and of itself. but learning about it isn't a waste of time imo.
2020-11-17 00:41:25 +0100 <dolio> Yeah, they're cool to study. At least the original paper or two.
2020-11-17 00:41:49 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 00:42:03 +0100 <dolio> I think the fact that there are many papers introducing new schemes for recursive definitions that the previous ones didn't handle well is also telling.
2020-11-17 00:43:33 +0100boxscape(86ab2c1f@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.44.31) (Ping timeout: 256 seconds)
2020-11-17 00:43:40 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 00:44:31 +0100superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
2020-11-17 00:44:51 +0100 <dolio> Anyhow, I ask because it seems that lately there are a lot of 'which recursion-schemes pacakge should I use' type questions here, which I would expect because someone famous said to use one. :)
2020-11-17 00:44:54 +0100conal(~conal@66.115.176.210) (Quit: Computer has gone to sleep.)
2020-11-17 00:45:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-17 00:47:20 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-11-17 00:48:44 +0100ronbrz(~ronbrz@207.229.174.134)
2020-11-17 00:50:38 +0100 <sshine> dolio, I don't know if recursion schemes were recently hyped up :)
2020-11-17 00:51:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-17 00:51:40 +0100 <sshine> dolio, I guess I had to try for myself that this was a bit of a bother the moment I ran into a recursion scheme that the library (data-fix) didn't support.
2020-11-17 00:52:06 +0100 <dsal> I was looking at recursion-schemes recently just because it was on my mind and I had a road trip, so I was trying to find explanations I could listen to. The concepts make plenty of sense. I've just not actually applied them to anything.
2020-11-17 00:52:08 +0100 <sshine> dolio, I did ask which of the two to use a few weeks ago.
2020-11-17 00:52:12 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 00:54:28 +0100 <sshine> dolio, "there's a reason people came up with recursion and pattern matching": well, you'd still be using pattern matching with data-fix. just not arbitrarily deep. and I guess you wouldn't be using arbitrary recursion much like a foldr wouldn't let you... so as long as you're fine with recursion constrained to certain schemes, it shouldn't make a big difference. except, yeah, suddenly I need to match two
2020-11-17 00:54:34 +0100 <sshine> levels deep in my tree and I can't. >_<
2020-11-17 00:55:14 +0100 <sshine> I think I'm just going to slowly back out and say that I had my experience with it. :)
2020-11-17 00:55:44 +0100 <sshine> I'd switch from 'data-fix' to 'recursion-schemes' if it weren't because I think that this didn't just prove that I'm spending more energy rather than less.
2020-11-17 00:56:06 +0100 <dolio> sshine: Yeah, I'm sure there's a something-morphism named for matching two levels deep. :)
2020-11-17 00:56:08 +0100 <sshine> (also, this being totally researchy, I don't really mind that, it could have been a golden discovery since I happened to actually understand it.)
2020-11-17 00:56:21 +0100 <sshine> dolio, para. it's in recursion-schemes, but not in data-fix.
2020-11-17 00:56:36 +0100 <dolio> Well, para gives you the whole underlying value.
2020-11-17 00:56:39 +0100 <sshine> sure
2020-11-17 00:57:00 +0100 <dolio> You can publish another paper for one that only gives you the immediate level. :P
2020-11-17 00:57:02 +0100 <sshine> I mean... I think they're somehow equivalent, so I could *make* a two-level-deep scheme from 'cata'.
2020-11-17 00:57:02 +0100conal(~conal@66.115.176.210)
2020-11-17 00:57:29 +0100 <sshine> and I could make it contain a whole bunch of '.'s and 'Fix . fmap f . fmap fmap fmap fmap'
2020-11-17 00:57:42 +0100 <superstar64> if it's complicated, why not use vanilla recursion?
2020-11-17 00:57:46 +0100 <dolio> Anyhow, recursion-schemes is probably fine for para, but I wouldn't hesitate to define some pattern synonyms for the one-step match.
2020-11-17 00:57:51 +0100 <sshine> superstar64, that.
2020-11-17 00:58:14 +0100 <dolio> Or just ditch the `Fix` version of the type if it's not paying off.
2020-11-17 00:58:42 +0100 <sshine> dolio, yeah, I ended up defining a bunch of synonyms for my tree, which wasn't less work but made me recall one professor saying you actually want an abstract tree, and I realized, once I did all that boilerplate work, I could actually replace 'data-fix' with anything and not touch the synonyms.
2020-11-17 00:58:50 +0100 <sshine> dolio, I'm gonna.
2020-11-17 00:59:13 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-11-17 00:59:29 +0100 <sshine> superstar64, I was trying to find out if it was complicated. it sort of is. :-D
2020-11-17 00:59:45 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 01:00:02 +0100shrug(~shrug@178.239.168.171) ()
2020-11-17 01:00:56 +0100 <dolio> :)
2020-11-17 01:01:18 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad)
2020-11-17 01:02:28 +0100conal(~conal@66.115.176.210) (Quit: Computer has gone to sleep.)
2020-11-17 01:03:31 +0100 <monochrom> Some of the recursion schemes enjoy very handy theorems. If you know your function fits a recursion scheme, then your function enjoys its theorems. This is a proof re-use.
2020-11-17 01:04:12 +0100conal(~conal@66.115.176.210)
2020-11-17 01:04:26 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it) (Ping timeout: 265 seconds)
2020-11-17 01:04:47 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 01:05:13 +0100 <monochrom> For example for lists: foldr op z . map f = foldr (\x r -> op (f x) r) z.
2020-11-17 01:05:54 +0100 <monochrom> If you wrote your own recursion instead of that foldr, you may or may not spot that property as easily, and you may or may not have an easy time proving it.
2020-11-17 01:07:39 +0100 <dolio> Well, as always, my advice is not, "don't use folds ever." It is, "don't try to force yourself to structure all your code around folds regardless of context."
2020-11-17 01:08:07 +0100 <monochrom> But my overall opinion is: cata and ana and Ralf Hinze's "adjoint folds and unfolds" are all you need to know for 99% of the cases.
2020-11-17 01:08:16 +0100quarters(~quarters@unaffiliated/quarters) (Ping timeout: 256 seconds)
2020-11-17 01:09:05 +0100 <monochrom> Outside that, the rest look like very niche and hair-splitting.
2020-11-17 01:09:51 +0100 <monochrom> Even the adjoint folds and unfolds, if you have to conjure a very contrived obscure adjoint functor, you're stretching it, the benefit becomes slim.
2020-11-17 01:10:37 +0100ericsagn1(~ericsagne@2405:6580:0:5100:465:234f:7cb8:28a5) (Ping timeout: 260 seconds)
2020-11-17 01:11:46 +0100jedws(~jedws@101.184.175.183)
2020-11-17 01:11:53 +0100srk(sorki@unaffiliated/srk) (Ping timeout: 256 seconds)
2020-11-17 01:11:55 +0100LKoen(~LKoen@9.253.88.92.rev.sfr.net)
2020-11-17 01:12:23 +0100lucard(c8dd9d33@200.221.157.51)
2020-11-17 01:12:24 +0100jiribenes_(~jiribenes@rosa.jiribenes.com)
2020-11-17 01:12:33 +0100 <lucard> Hello all, im working on the book Haskell programming form first principles, and i was wondering if you guys know any repo with test cases for exercises in the book. Any idea?
2020-11-17 01:12:47 +0100jiribenes(~jiribenes@rosa.jiribenes.com) (Read error: Connection reset by peer)
2020-11-17 01:12:49 +0100Adluc(Adluc@base48.cz) (Ping timeout: 272 seconds)
2020-11-17 01:13:16 +0100jiribenes_jiribenes
2020-11-17 01:14:06 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 265 seconds)
2020-11-17 01:15:23 +0100Adluc(Adluc@base48.cz)
2020-11-17 01:19:25 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2020-11-17 01:19:46 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2020-11-17 01:21:10 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds)
2020-11-17 01:22:04 +0100Amras(~Amras@unaffiliated/amras0000)
2020-11-17 01:22:41 +0100ericsagn1(~ericsagne@2405:6580:0:5100:3325:bf75:6ec4:84a6)
2020-11-17 01:25:33 +0100Rudd0(~Rudd0@185.189.115.103)
2020-11-17 01:25:54 +0100srk(sorki@unaffiliated/srk)
2020-11-17 01:27:12 +0100conal(~conal@66.115.176.210) (Quit: Computer has gone to sleep.)
2020-11-17 01:28:00 +0100hackageiproute 1.7.10 - IP Routing Table https://hackage.haskell.org/package/iproute-1.7.10 (KazuYamamoto)
2020-11-17 01:29:24 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 272 seconds)
2020-11-17 01:31:57 +0100 <dsal> lucard: I think you're supposed to write those yourself.
2020-11-17 01:32:31 +0100 <dsal> Fun Haskell fact: once your code compiles, it does exactly whatever you thought it should do.
2020-11-17 01:33:02 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-17 01:33:14 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-17 01:33:44 +0100lucard(c8dd9d33@200.221.157.51) (Remote host closed the connection)
2020-11-17 01:33:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 01:34:23 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-17 01:36:02 +0100solonarv(~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2020-11-17 01:37:58 +0100avn(~avn@78-56-108-78.static.zebra.lt) (Ping timeout: 246 seconds)
2020-11-17 01:38:31 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2020-11-17 01:40:03 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2020-11-17 01:42:33 +0100nineonine(~textual@50.216.62.2)
2020-11-17 01:43:50 +0100shatriff_(~vitaliish@176.52.219.10)
2020-11-17 01:43:50 +0100shatriff(~vitaliish@176.52.219.10) (Read error: Connection reset by peer)
2020-11-17 01:43:59 +0100avn(~avn@78-56-108-78.static.zebra.lt)
2020-11-17 01:44:35 +0100conal(~conal@66.115.176.210)
2020-11-17 01:46:59 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-17 01:48:49 +0100Chi1thangoo(~Chi1thang@87.112.60.168) (Ping timeout: 264 seconds)
2020-11-17 01:50:38 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 01:57:00 +0100hackageflashblast 0.0.7.0 - Generate language learning flashcards from video. https://hackage.haskell.org/package/flashblast-0.0.7.0 (locallycompact)
2020-11-17 01:59:00 +0100hackageflashblast 0.0.8.0 - Generate language learning flashcards from video. https://hackage.haskell.org/package/flashblast-0.0.8.0 (locallycompact)
2020-11-17 01:59:07 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad)
2020-11-17 02:04:14 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Remote host closed the connection)
2020-11-17 02:06:02 +0100borne(~fritjof@200116b864b5430099e934deb93b1409.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-17 02:06:13 +0100xsperry(~as@unaffiliated/xsperry) (Ping timeout: 264 seconds)
2020-11-17 02:06:18 +0100fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 265 seconds)
2020-11-17 02:06:38 +0100Martinsos(~user@cpe-188-129-116-164.dynamic.amis.hr) (Ping timeout: 260 seconds)
2020-11-17 02:07:20 +0100shadow__(~shadow@192.12.149.141)
2020-11-17 02:07:30 +0100shadow__(~shadow@192.12.149.141) (Client Quit)
2020-11-17 02:08:10 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th)
2020-11-17 02:08:18 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 02:08:33 +0100renzhi(~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 272 seconds)
2020-11-17 02:09:13 +0100wildtrees(wildtrees@gateway/vpn/protonvpn/wildtrees) (Quit: Leaving)
2020-11-17 02:11:20 +0100LKoen(~LKoen@9.253.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-11-17 02:11:20 +0100wroathe_(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-17 02:12:26 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-11-17 02:12:49 +0100conal(~conal@66.115.176.210) (Quit: Computer has gone to sleep.)
2020-11-17 02:13:58 +0100conal(~conal@66.115.176.210)
2020-11-17 02:13:58 +0100conal(~conal@66.115.176.210) (Client Quit)
2020-11-17 02:14:32 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 02:14:53 +0100wroathe_wroathe
2020-11-17 02:16:38 +0100conal(~conal@66.115.176.210)
2020-11-17 02:18:22 +0100conal(~conal@66.115.176.210) (Client Quit)
2020-11-17 02:22:05 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
2020-11-17 02:23:45 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 02:26:31 +0100fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
2020-11-17 02:27:36 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-11-17 02:28:20 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-17 02:28:42 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 02:29:31 +0100ironmarx(~ironmarx@139.28.218.148)
2020-11-17 02:31:49 +0100Lord_of_Life_(~Lord@46.217.219.70)
2020-11-17 02:32:18 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds)
2020-11-17 02:36:57 +0100justsomeguy(~justsomeg@216.186.218.241)
2020-11-17 02:36:57 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2020-11-17 02:36:57 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-11-17 02:42:13 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2020-11-17 02:42:15 +0100 <justsomeguy> So I just found out that you can use let bindings in list comprehensions, like “[x^2 | let n = 3, x <- [1..n]]”. Is there anything special about them? Why the dedicated syntax?
2020-11-17 02:43:33 +0100Jeanne-Kamikaze(~Jeanne-Ka@66.115.189.204)
2020-11-17 02:43:51 +0100 <davean> justsomeguy: what dedicated syntax?
2020-11-17 02:44:32 +0100 <dolio> Same reason as let inside do.
2020-11-17 02:44:33 +0100 <sshine> justsomeguy, let-expressions in list comprehensions are much like let-expressions in do-notation
2020-11-17 02:45:14 +0100 <sshine> justsomeguy, considering list comprehensions are monadic, it's not very special. but I guess you could ask why remove the "in" inside do notation?
2020-11-17 02:45:59 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-17 02:46:07 +0100 <justsomeguy> Yes, the absence of “in” kind of threw me off.
2020-11-17 02:46:33 +0100 <davean> justsomeguy: its not removed specificly there
2020-11-17 02:46:39 +0100 <davean> justsomeguy: theres no 'in' in do notation.
2020-11-17 02:46:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-17 02:48:12 +0100 <sshine> justsomeguy, you can think of list comprehensions as being syntax sugar for list monads. and you can extend list comprehension syntax to other monads than list using -XMonadComprehensions: https://gitlab.haskell.org/ghc/ghc/-/wikis/monad-comprehensions
2020-11-17 02:48:51 +0100justsomeguydoes a web search for do notation
2020-11-17 02:49:13 +0100 <dsal> @undo do { results <- web }
2020-11-17 02:49:13 +0100 <lambdabot> <unknown>.hs:1:22:Parse error: Last statement in a do-block must be an expression
2020-11-17 02:49:39 +0100 <dsal> damn. Have to do something with those results.
2020-11-17 02:49:43 +0100tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 272 seconds)
2020-11-17 02:50:19 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-11-17 02:50:21 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 02:51:03 +0100tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com)
2020-11-17 02:51:04 +0100 <sshine> ah
2020-11-17 02:51:11 +0100 <sshine> I learned something.
2020-11-17 02:51:14 +0100 <sshine> > do { x <- [1..10]; let {y = 3}; return (x * y) }
2020-11-17 02:51:16 +0100 <lambdabot> [3,6,9,12,15,18,21,24,27,30]
2020-11-17 02:51:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-17 02:51:47 +0100 <sshine> so those inner curly braces aren't necessary if I use do-notation without the curly braces (those are only necessary because I want to one-line it on IRC.)
2020-11-17 02:52:36 +0100 <sshine> but because let-expressions allow for separate ;-separated bindings (let foo = 2; bar = 3 in ...), I have to disambiguate the ; as a do-separating ; and not a let-binding-separating ;.
2020-11-17 02:52:39 +0100 <sshine> sheesh. :)
2020-11-17 02:52:57 +0100 <sshine> do x <- [1..10]
2020-11-17 02:53:00 +0100 <sshine> let y = 3
2020-11-17 02:53:04 +0100 <sshine> return (x * y)
2020-11-17 02:53:49 +0100 <sshine> > [ x * y | x <- [1..10], let y = 3 ] -- vs. this
2020-11-17 02:53:51 +0100 <lambdabot> [3,6,9,12,15,18,21,24,27,30]
2020-11-17 02:54:12 +0100 <dsal> @undo [ x * y | x <- [1..10], let y = 3 ]
2020-11-17 02:54:12 +0100 <lambdabot> concatMap (\ x -> let { y = 3} in [x * y]) [1 .. 10]
2020-11-17 02:54:21 +0100 <dolio> Well, also, the scoping is more suited to the situation. You don't need to nest another do block inside the let.
2020-11-17 02:54:31 +0100 <dolio> And for comprehensions it'd be even more annoying.
2020-11-17 02:55:03 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2020-11-17 02:58:50 +0100 <sshine> justsomeguy, I think the missing "in" comes from do-notation fitting one action per line with implicit monad bind operator in-between each line. so since do-notation has special syntax wrt. interpreting linebreaks, removing the "in" that would otherwise make a let-expression float onto the next line removes an ambiguity that would otherwise occur when the next line is indented the same: is it another
2020-11-17 02:58:56 +0100 <sshine> stand-alone action, or is it the continuation of the let-in-binding on the line before?
2020-11-17 03:02:25 +0100 <sshine> justsomeguy, https://gist.github.com/sshine/0dac23b35e19b1ea0aed7a9e6d215c30
2020-11-17 03:03:31 +0100 <sshine> justsomeguy, removing the "in" in do-blocks is not so nice because now you have two syntaxes and that's confusing, but not removing the "in" in do-blocks is kinda less nice.
2020-11-17 03:04:43 +0100 <justsomeguy> Very interesting. Thanks for the explanation, sshine :)
2020-11-17 03:04:54 +0100 <sshine> yw.
2020-11-17 03:05:44 +0100 <sshine> (and yeah, the fact that "in" is omissible in list-comprehension syntax is a side-effect of this, I think, since you don't have the actual indentation problem there.)
2020-11-17 03:07:39 +0100 <sshine> maybe dolio thinks it's more of a problem somehow.
2020-11-17 03:08:01 +0100 <sshine> I don't really ever use list-comprehensions, so maybe that's the case. :)
2020-11-17 03:08:05 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2020-11-17 03:08:39 +0100lucasb(uid333435@gateway/web/irccloud.com/x-ezcrumvhrckwfdja) (Quit: Connection closed for inactivity)
2020-11-17 03:09:20 +0100 <dolio> Well, presumably you can do `[ (y, z) | x <- ... , let y = ..., ...]` But turning that into nested comprehensions is annoying.
2020-11-17 03:10:06 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 03:10:25 +0100 <dolio> It would be something like `[ p | x <- ..., p <- let y = ... in [ (y, z) | ... ]]`
2020-11-17 03:12:05 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2020-11-17 03:12:51 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 03:15:57 +0100christo(~chris@81.96.113.213)
2020-11-17 03:16:12 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-11-17 03:17:18 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-11-17 03:20:43 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-11-17 03:20:55 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 03:21:08 +0100_xor(~xor@74.215.46.133) (Read error: Connection reset by peer)
2020-11-17 03:21:59 +0100_xor(~xor@74.215.46.133)
2020-11-17 03:22:40 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 265 seconds)
2020-11-17 03:24:42 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 03:25:11 +0100jedws(~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 03:29:35 +0100moet(~moet@mobile-166-137-178-187.mycingular.net) (Ping timeout: 256 seconds)
2020-11-17 03:30:21 +0100conal(~conal@66.115.176.210)
2020-11-17 03:31:21 +0100conal(~conal@66.115.176.210) (Client Quit)
2020-11-17 03:31:24 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-17 03:32:52 +0100conal(~conal@66.115.176.210)
2020-11-17 03:36:32 +0100 <koz_> Someone in here (maybe monochrom?) mentioned recently that the {mega,atto}parsec 'satisfy' can be implemented in the context of Selective (i.e. not full Monad). They claimed this is backed by research - could I please get a link?
2020-11-17 03:36:48 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-11-17 03:37:25 +0100conal(~conal@66.115.176.210) (Client Quit)
2020-11-17 03:37:26 +0100toorevitimirp(~tooreviti@117.182.180.118)
2020-11-17 03:41:16 +0100 <MarcelineVQ> idk if it covers satisfy deeply but https://mpickering.github.io/papers/parsley-icfp.pdf is about parsers which use Selective to inform compile-time decisions
2020-11-17 03:42:13 +0100 <koz_> MarcelineVQ: Thanks - it's a start.
2020-11-17 03:42:55 +0100xff0x(~fox@2001:1a81:529e:a500:7f56:5167:60df:e24a) (Ping timeout: 272 seconds)
2020-11-17 03:44:31 +0100xff0x(~fox@2001:1a81:52d5:6a00:5952:5bb0:2bc9:4930)
2020-11-17 03:53:25 +0100haritz(~hrtz@unaffiliated/haritz) (Ping timeout: 240 seconds)
2020-11-17 03:55:54 +0100haritz(~hrtz@62.3.70.206)
2020-11-17 03:55:54 +0100haritz(~hrtz@62.3.70.206) (Changing host)
2020-11-17 03:55:54 +0100haritz(~hrtz@unaffiliated/haritz)
2020-11-17 03:59:54 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-paizsduyeybkbeqa) (Quit: Connection closed for inactivity)
2020-11-17 04:00:01 +0100ironmarx(~ironmarx@139.28.218.148) ()
2020-11-17 04:00:46 +0100toorevitimirp(~tooreviti@117.182.180.118) (Remote host closed the connection)
2020-11-17 04:01:15 +0100toorevitimirp(~tooreviti@117.182.180.118)
2020-11-17 04:01:55 +0100Guest48480(~luka@217.146.82.202)
2020-11-17 04:04:44 +0100drbean(~drbean@TC210-63-209-59.static.apol.com.tw)
2020-11-17 04:06:50 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-17 04:09:32 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-11-17 04:14:39 +0100shatriff_(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-17 04:14:55 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-17 04:15:10 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-11-17 04:15:27 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-17 04:15:46 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-17 04:16:16 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-17 04:16:18 +0100 <monochrom> That was me alright. I learned of Selective from https://dl.acm.org/doi/10.1145/3341694
2020-11-17 04:16:31 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-17 04:17:04 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-17 04:17:24 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-17 04:17:53 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-17 04:18:41 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-11-17 04:18:45 +0100 <monochrom> "satisfy pred = anyChar >>= \c -> if pred c then pure c else empty" is pretty much in line with the ping-pong example.
2020-11-17 04:19:53 +0100conal(~conal@66.115.176.210)
2020-11-17 04:20:05 +0100rzmt(~rzmt@87-92-180-112.rev.dnainternet.fi) (Ping timeout: 240 seconds)
2020-11-17 04:22:26 +0100rzmt(~rzmt@87-92-180-112.rev.dnainternet.fi)
2020-11-17 04:23:48 +0100jedws(~jedws@101.184.175.183)
2020-11-17 04:24:02 +0100acidjnk_new(~acidjnk@p200300d0c718f648045012e87868ed0b.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-17 04:24:39 +0100cgfuh(~cgfuh@181.167.191.58) (Quit: WeeChat 2.9)
2020-11-17 04:26:30 +0100argent0(~argent0@168.227.98.83) (Remote host closed the connection)
2020-11-17 04:27:03 +0100Shadowraith(~user@192.12.149.141)
2020-11-17 04:29:11 +0100Shadowraith(~user@192.12.149.141) (Read error: Connection reset by peer)
2020-11-17 04:30:10 +0100Shadowraith(~user@192.12.149.141)
2020-11-17 04:30:28 +0100acidjnk_new(~acidjnk@p200300d0c718f647bc583fb9dc736f42.dip0.t-ipconnect.de)
2020-11-17 04:30:53 +0100 <Shadowraith> hi! im trying to convert output of a monad to a string (which it already should be) so im confused
2020-11-17 04:31:14 +0100 <Axman6> that sounds like quite a confused question, cah you share some code?
2020-11-17 04:31:17 +0100 <Axman6> can*
2020-11-17 04:31:26 +0100 <Shadowraith> here is what the code is, i want to have it out put to a file
2020-11-17 04:31:28 +0100 <Shadowraith> yeh ofc
2020-11-17 04:31:34 +0100 <Shadowraith> http://0x0.st/i51b.txt
2020-11-17 04:31:35 +0100 <Axman6> @where paste
2020-11-17 04:31:35 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
2020-11-17 04:31:41 +0100 <Axman6> thanks, too quick for me :)
2020-11-17 04:31:51 +0100 <Shadowraith> ;)
2020-11-17 04:32:18 +0100 <Axman6> I can;t see anything monadic there
2020-11-17 04:32:21 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 04:32:21 +0100 <monochrom> There is no monad in that code.
2020-11-17 04:32:23 +0100 <Shadowraith> oh what
2020-11-17 04:32:29 +0100 <Shadowraith> the \x isnt a monad??
2020-11-17 04:32:32 +0100 <Axman6> it's just a function
2020-11-17 04:32:34 +0100 <Axman6> no
2020-11-17 04:32:37 +0100 <Shadowraith> i thought that was a lambda... XD
2020-11-17 04:32:37 +0100 <monochrom> It's just a lambda.
2020-11-17 04:32:37 +0100 <Axman6> that's a lambda
2020-11-17 04:32:39 +0100 <Shadowraith> frk me
2020-11-17 04:32:40 +0100 <Shadowraith> im sorry
2020-11-17 04:32:49 +0100 <Shadowraith> i still dont know how to get it to work tho.. Xd
2020-11-17 04:33:01 +0100 <Axman6> your code is the same as writing: ppLayout x = case x of ...
2020-11-17 04:33:11 +0100 <Axman6> what isn't working?
2020-11-17 04:33:25 +0100 <Shadowraith> io $ appendFile "/tmp/.xmonad-layout-log" (ppLayout)
2020-11-17 04:33:29 +0100 <Shadowraith> trying to do this
2020-11-17 04:33:37 +0100 <Shadowraith> but its saying something bout a string
2020-11-17 04:33:40 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
2020-11-17 04:33:50 +0100 <monochrom> What is "io"?
2020-11-17 04:33:54 +0100 <Axman6> what is the tyoe of appendFile?
2020-11-17 04:34:14 +0100 <Shadowraith> being honest i have no idea at all, i thought that might have been a normal function
2020-11-17 04:34:28 +0100 <Axman6> and what type does ppLayout have? (I know the ansxwer, I need to know if you do :)
2020-11-17 04:34:38 +0100 <Shadowraith> should be string right?
2020-11-17 04:34:46 +0100 <Axman6> nope, it's definitely a function
2020-11-17 04:34:52 +0100 <Shadowraith> function is a type?
2020-11-17 04:34:55 +0100 <Axman6> yes
2020-11-17 04:35:03 +0100 <Shadowraith> gosh C stop interfering in my head haha
2020-11-17 04:35:03 +0100 <Axman6> :t toUpper
2020-11-17 04:35:05 +0100 <lambdabot> Char -> Char
2020-11-17 04:35:10 +0100 <Axman6> :t show
2020-11-17 04:35:11 +0100 <lambdabot> Show a => a -> String
2020-11-17 04:35:28 +0100 <Axman6> I can tell you that ppLayout :: String -> String
2020-11-17 04:35:37 +0100 <Shadowraith> OH
2020-11-17 04:35:42 +0100 <Axman6> it needs to be passed a string, which you aren't doing
2020-11-17 04:35:43 +0100 <Shadowraith> ok i understand that
2020-11-17 04:35:52 +0100 <Shadowraith> i understand the type now
2020-11-17 04:35:59 +0100 <Shadowraith> oh so i have to pass it
2020-11-17 04:36:03 +0100 <Axman6> where are you expecting the string "Hidden Tall" to come from?
2020-11-17 04:36:15 +0100 <Shadowraith> layouts somewhere...
2020-11-17 04:37:32 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:5d4c:3718:c0a8:9f94)
2020-11-17 04:37:33 +0100 <Shadowraith> im not exactly sure how to grab that
2020-11-17 04:38:31 +0100superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Remote host closed the connection)
2020-11-17 04:38:52 +0100 <monochrom> Who would be providing the input string?
2020-11-17 04:40:24 +0100 <Shadowraith> xmonad layout, see what i did is because im not using dynamicPP anymore, i stole these lines from my dynamicLogHook function and was trying to do it without dynamicPP
2020-11-17 04:42:07 +0100 <Axman6> what is dynamicPP?
2020-11-17 04:42:17 +0100 <Axman6> you're going to have to share more code for us to be able to help you
2020-11-17 04:42:25 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl) (Remote host closed the connection)
2020-11-17 04:42:36 +0100 <Shadowraith> https://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Hooks-DynamicLog.html
2020-11-17 04:42:38 +0100todda7(~torstein@ppp-2-84-17-169.home.otenet.gr) (Ping timeout: 264 seconds)
2020-11-17 04:42:52 +0100conal(~conal@66.115.176.210) (Quit: Computer has gone to sleep.)
2020-11-17 04:43:09 +0100 <Shadowraith> im sorry ik, im trying but im not all there yet at all with haskell
2020-11-17 04:43:36 +0100obfusk(~quassel@a82-161-150-56.adsl.xs4all.nl)
2020-11-17 04:43:38 +0100 <Axman6> that's fine, we're happy to help, but ywe also can't work in the dark. most of us don't use Xmonad
2020-11-17 04:43:39 +0100plutoniix(~q@175.176.222.7)
2020-11-17 04:44:13 +0100 <Shadowraith> ik i appreciate it a ton, if i understood haskell a lil better it would be easier to explain
2020-11-17 04:44:44 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2020-11-17 04:44:49 +0100 <Shadowraith> so what dynamicLog does is compile a bunch of different things from the program together into one file (im pretty sure)
2020-11-17 04:44:57 +0100 <Shadowraith> layouts, workspaces, etc
2020-11-17 04:45:26 +0100 <Shadowraith> i already have workspaces everywhere, and just want layouts to a file but not 100% sure how to do that
2020-11-17 04:45:28 +0100 <Axman6> do you want to use dynamicLogWithPP which lets you customise things?
2020-11-17 04:45:42 +0100 <Shadowraith> if that is the best option then yes
2020-11-17 04:45:46 +0100 <Axman6> I don't really understand how files come into it
2020-11-17 04:46:02 +0100 <Shadowraith> i think it exports to a file so that a separate program can use it
2020-11-17 04:46:14 +0100 <Shadowraith> for my instance: my bar: polybar
2020-11-17 04:46:15 +0100star_cloud(~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-17 04:46:44 +0100lagothrix(~lagothrix@unaffiliated/lagothrix) (Killed (card.freenode.net (Nickname regained by services)))
2020-11-17 04:46:49 +0100 <Axman6> I would guess that you can do something like: dynamicLogWithPP def{ ppLayout = \x -> case x of ... }
2020-11-17 04:46:52 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-11-17 04:47:08 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-17 04:47:35 +0100 <Shadowraith> ooh yes i have that now, works with this `dynamicLogWithPP = def { ... }`
2020-11-17 04:47:41 +0100 <Axman6> that is taking the defaults (which is what defaultPP contains but is deprecated in favout of def from Data.Default), and then overriding ppLayout
2020-11-17 04:47:53 +0100 <Axman6> no, you shouldn't have an = in there
2020-11-17 04:48:09 +0100 <Shadowraith> oh i think it gave an error before, lemme try again
2020-11-17 04:48:10 +0100 <Axman6> def {... } is an argument to dynamicLogWithPP
2020-11-17 04:48:41 +0100 <Shadowraith> xmonad.hs:465:1: error:
2020-11-17 04:48:41 +0100 <Shadowraith> Parse error: module header, import declaration
2020-11-17 04:48:41 +0100 <Shadowraith> or top-level declaration expected.
2020-11-17 04:48:41 +0100 <Shadowraith> |
2020-11-17 04:50:04 +0100Sgeo_(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-11-17 04:50:32 +0100Sgeo_(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-11-17 04:50:47 +0100conal(~conal@66.115.176.210)
2020-11-17 04:51:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-17 04:51:44 +0100star_cloud(~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com)
2020-11-17 04:52:17 +0100spatchkaa(~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
2020-11-17 04:52:51 +0100 <Shadowraith> 465 | dynamicLogWithPP def
2020-11-17 04:54:28 +0100 <Shadowraith> | ^^^^^^^^^^^^^^^^^^^^...
2020-11-17 04:54:28 +0100Shadowraith(~user@192.12.149.141) (Remote host closed the connection)
2020-11-17 04:54:37 +0100Shadowraith(~user@192.12.149.141)
2020-11-17 04:54:38 +0100theDon(~td@94.134.91.49) (Ping timeout: 260 seconds)
2020-11-17 04:54:48 +0100 <Shadowraith> just noticed there is a dynamicLogString function?
2020-11-17 04:54:59 +0100 <Axman6> without seeing more of your file I have no idea what you're going
2020-11-17 04:55:37 +0100 <Shadowraith> do you want the whole thing?
2020-11-17 04:55:42 +0100 <Axman6> sure
2020-11-17 04:55:51 +0100 <Shadowraith> http://0x0.st/i51L.txt
2020-11-17 04:56:03 +0100 <Shadowraith> its in the log hook
2020-11-17 04:56:20 +0100theDon(~td@muedsl-82-207-238-136.citykom.de)
2020-11-17 04:56:45 +0100 <Axman6> Can you use the paste website from above? syntax highlighting helps a lot
2020-11-17 04:56:57 +0100 <Shadowraith> oh im sorry that was a keybind i had
2020-11-17 04:57:05 +0100 <Shadowraith> @where paste
2020-11-17 04:57:05 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
2020-11-17 04:58:19 +0100resolve(~resolve@139.28.218.148)
2020-11-17 04:58:51 +0100Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-11-17 04:59:07 +0100Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-11-17 04:59:09 +0100 <Shadowraith> https://paste.tomsmeding.com/b8Y135W6
2020-11-17 04:59:30 +0100 <Shadowraith> sorry,was too large to even copy from vim lol so had to use a gui editor :ree:
2020-11-17 05:01:01 +0100 <Axman6> ok, look more closely at what's happening in the screen1LogHook example, you've forgotten to copy some quite important stuff
2020-11-17 05:01:10 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 05:01:18 +0100 <Axman6> what code have you added?
2020-11-17 05:02:22 +0100 <Axman6> I don't really understand what you're trying to do with dynamicLogString
2020-11-17 05:02:47 +0100 <Shadowraith> that was just testing, the dynamicLogString (originally dynamicLogWithPP)
2020-11-17 05:02:50 +0100 <Axman6> but it looks very suspicious since that's the name of something that XMonad defines, so you're shadowing its definition
2020-11-17 05:03:02 +0100 <Shadowraith> the dbus stuff i want rid of, as to why i commented that out
2020-11-17 05:03:30 +0100 <Axman6> I think what you want to so is: myLogHook = dynamicLogString def{ ppLayout = \x -> case x of ... }
2020-11-17 05:04:50 +0100 <Shadowraith> can i append it to the end cuz i need the ewmh line
2020-11-17 05:04:57 +0100 <Shadowraith> like with a $
2020-11-17 05:06:29 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-17 05:07:02 +0100 <Axman6> try https://paste.tomsmeding.com/CohO6Z58
2020-11-17 05:07:09 +0100ajmcmiddlin(sid284402@gateway/web/irccloud.com/x-czsnahqqucihfqdx) (Ping timeout: 272 seconds)
2020-11-17 05:07:27 +0100 <Axman6> I don't really understand what you're trying to do with the appendFile call, but it feels like that is probably being taken care of for you
2020-11-17 05:07:45 +0100 <Shadowraith> shoot i copied the ld instead of \x, that was a testto
2020-11-17 05:08:10 +0100DTZUZU(~DTZUZU@207.81.171.116) (Read error: Connection reset by peer)
2020-11-17 05:08:10 +0100 <Shadowraith> myLogHook = ewmhDesktopsLogHookCustom (map unmarshallWindowSpace . namedScratchpadFilterOutWorkspace)
2020-11-17 05:08:13 +0100 <Shadowraith> what about this line?
2020-11-17 05:08:39 +0100 <Axman6> comment it out? I have no idea what it's doing
2020-11-17 05:08:46 +0100ajmcmiddlin(sid284402@gateway/web/irccloud.com/x-esnyudzmonhtpktj)
2020-11-17 05:08:57 +0100 <Shadowraith> i need that line, its handling my workspace output
2020-11-17 05:09:03 +0100davetapley(sid666@gateway/web/irccloud.com/x-vyeiyfxfsraauowv) (Ping timeout: 272 seconds)
2020-11-17 05:09:12 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-11-17 05:09:35 +0100 <Axman6> then you may be out of luck, at least as far as I can see. taking a look though
2020-11-17 05:10:42 +0100vk3wtf(~doc@203.221.224.44) (Quit: WeeChat 2.7.1)
2020-11-17 05:10:57 +0100 <Axman6> what is this case statement you've written supposed to be doing?
2020-11-17 05:10:59 +0100davetapley(sid666@gateway/web/irccloud.com/x-xjppgfjbvjpedrys)
2020-11-17 05:11:09 +0100conal(~conal@66.115.176.210) (Quit: Computer has gone to sleep.)
2020-11-17 05:11:13 +0100vk3wtf(~doc@203.221.224.44)
2020-11-17 05:11:22 +0100 <Shadowraith> where is a case statement?
2020-11-17 05:11:26 +0100 <Shadowraith> apologies..
2020-11-17 05:11:42 +0100 <Axman6> case x of -- Changes layout name to be displayed
2020-11-17 05:11:43 +0100 <Axman6> "Hidden Tall"
2020-11-17 05:12:13 +0100 <Shadowraith> gotcha, that is to convert the names of my layouts to a string for polybar to use
2020-11-17 05:12:20 +0100 <Shadowraith> with special polybar formats
2020-11-17 05:12:47 +0100 <Shadowraith> the first string isthe layout being grabbed the secondis what is to be sent to pbar
2020-11-17 05:12:54 +0100 <Shadowraith> u prob knew that hto
2020-11-17 05:13:04 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 05:13:04 +0100 <Axman6> ok, I thnk you might be best off to ask in #xmonad, this is getting very Xmonad specific more than Haskell specific
2020-11-17 05:13:27 +0100 <Shadowraith> hm ur probably right
2020-11-17 05:13:38 +0100 <Shadowraith> i originally thought it was more haskell based
2020-11-17 05:13:53 +0100 <Shadowraith> cuz i thought \x was a monad :joy:
2020-11-17 05:14:07 +0100gaze__(sid387101@gateway/web/irccloud.com/x-dzzzzpxfnvpkwdhs) (Ping timeout: 272 seconds)
2020-11-17 05:15:23 +0100mpickering(sid78412@gateway/web/irccloud.com/x-pmxjkbnlbuqckyae) (Ping timeout: 272 seconds)
2020-11-17 05:15:23 +0100scav(sid309693@gateway/web/irccloud.com/x-oovxzuxjybuelhjk) (Ping timeout: 272 seconds)
2020-11-17 05:16:30 +0100 <Shadowraith> hold up maybe this is haskell to
2020-11-17 05:16:55 +0100 <Shadowraith> lets say the input to the case function is `S.layout`
2020-11-17 05:17:17 +0100jokester_(~mono@unaffiliated/jokester) (Ping timeout: 272 seconds)
2020-11-17 05:17:17 +0100moobar(sid171730@gateway/web/irccloud.com/x-ctnyphywvjgsbjzl) (Ping timeout: 272 seconds)
2020-11-17 05:17:21 +0100 <Shadowraith> i should be able to get a string then since i have an input
2020-11-17 05:17:23 +0100texasmynsted(~texasmyns@212.102.45.103) (Ping timeout: 260 seconds)
2020-11-17 05:17:42 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2020-11-17 05:18:00 +0100jokester_(~mono@unaffiliated/jokester)
2020-11-17 05:18:28 +0100mpickering(sid78412@gateway/web/irccloud.com/x-qzzyeuirciixjhoi)
2020-11-17 05:18:43 +0100scav(sid309693@gateway/web/irccloud.com/x-vgaroajuvhbcvqch)
2020-11-17 05:18:47 +0100gaze__(sid387101@gateway/web/irccloud.com/x-ddrtdboykpdfifpr)
2020-11-17 05:20:16 +0100moobar(sid171730@gateway/web/irccloud.com/x-svksvglonzzyzxxy)
2020-11-17 05:20:36 +0100 <Axman6> I don't understand the question
2020-11-17 05:20:40 +0100 <Axman6> what's S.layout?
2020-11-17 05:21:13 +0100 <Shadowraith> i think that is the layout name
2020-11-17 05:21:43 +0100dgpratt(sid193493@gateway/web/irccloud.com/x-ckplobyhmsyazopr) (Ping timeout: 272 seconds)
2020-11-17 05:21:43 +0100conal(~conal@66.115.176.210)
2020-11-17 05:22:00 +0100 <Axman6> it doesn't show up in your code anywhere
2020-11-17 05:22:31 +0100 <Shadowraith> S is from a module
2020-11-17 05:22:38 +0100 <Shadowraith> StackSet
2020-11-17 05:22:59 +0100 <Axman6> it also seems to be Search?
2020-11-17 05:23:02 +0100DTZUZU(~DTZUZU@207.81.171.116)
2020-11-17 05:23:17 +0100dgpratt(sid193493@gateway/web/irccloud.com/x-eisigjveajsvarno)
2020-11-17 05:23:20 +0100 <Axman6> in fact it is XMonad.Actions.Search in the code you pasted
2020-11-17 05:23:37 +0100 <Axman6> XMonad.StackSet is W
2020-11-17 05:23:47 +0100 <Shadowraith> oh goodness then W.layout is prob what i meant
2020-11-17 05:24:15 +0100simony(sid226116@gateway/web/irccloud.com/x-wzcrwnktljnyyivi) (Ping timeout: 272 seconds)
2020-11-17 05:25:15 +0100conal(~conal@66.115.176.210) (Client Quit)
2020-11-17 05:25:31 +0100ericsagn1(~ericsagne@2405:6580:0:5100:3325:bf75:6ec4:84a6) (Ping timeout: 272 seconds)
2020-11-17 05:25:38 +0100Shadorain(uid453914@gateway/web/irccloud.com/x-gzynpbjvpqrgaqml)
2020-11-17 05:26:15 +0100simony(sid226116@gateway/web/irccloud.com/x-keowsotekzgqfqdf)
2020-11-17 05:26:27 +0100codeAlways(uid272474@gateway/web/irccloud.com/x-dbuczpztyxqztxlt)
2020-11-17 05:26:40 +0100Shadowraith(~user@192.12.149.141) (Remote host closed the connection)
2020-11-17 05:26:47 +0100scav(sid309693@gateway/web/irccloud.com/x-vgaroajuvhbcvqch) (Ping timeout: 272 seconds)
2020-11-17 05:26:57 +0100 <Shadorain> Btw I'm Shadowraith
2020-11-17 05:27:27 +0100 <Axman6> :thumbsup:
2020-11-17 05:28:07 +0100conal(~conal@66.115.176.210)
2020-11-17 05:28:07 +0100conal(~conal@66.115.176.210) (Client Quit)
2020-11-17 05:28:18 +0100scav(sid309693@gateway/web/irccloud.com/x-jqpiftkzlvsswiha)
2020-11-17 05:29:42 +0100conal(~conal@66.115.176.210)
2020-11-17 05:29:42 +0100conal(~conal@66.115.176.210) (Client Quit)
2020-11-17 05:31:54 +0100 <Shadorain> So if I'm able to grab what I need which is a string (the name of layout) then I can do whzt I originally wanted which was output the format string to a file
2020-11-17 05:32:52 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
2020-11-17 05:37:24 +0100ericsagn1(~ericsagne@2405:6580:0:5100:c078:1a2e:5eb7:90ae)
2020-11-17 05:37:32 +0100Shadowraith(~user@192.12.149.141)
2020-11-17 05:37:47 +0100acidjnk_new(~acidjnk@p200300d0c718f647bc583fb9dc736f42.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-17 05:39:46 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 05:40:08 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 260 seconds)
2020-11-17 05:41:57 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 260 seconds)
2020-11-17 05:43:15 +0100gaze__(sid387101@gateway/web/irccloud.com/x-ddrtdboykpdfifpr) (Ping timeout: 272 seconds)
2020-11-17 05:43:15 +0100pfurla(~pfurla@185.108.105.66)
2020-11-17 05:44:49 +0100moet(~moet@mobile-166-137-178-107.mycingular.net)
2020-11-17 05:46:16 +0100gaze__(sid387101@gateway/web/irccloud.com/x-ieppxqjdwpehesld)
2020-11-17 05:47:31 +0100pfurla_(~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-11-17 05:48:18 +0100pfurla(~pfurla@185.108.105.66) (Ping timeout: 260 seconds)
2020-11-17 05:50:07 +0100crdrost(~crdrost@c-98-207-102-156.hsd1.ca.comcast.net) (Quit: This computer has gone to sleep)
2020-11-17 05:50:42 +0100lpy(~nyd@unaffiliated/elysian)
2020-11-17 05:54:39 +0100benl23(sid284234@gateway/web/irccloud.com/x-nkfumgpyqgaploty) (Ping timeout: 272 seconds)
2020-11-17 05:54:49 +0100benl23(sid284234@gateway/web/irccloud.com/x-zcormuhggyweibpr)
2020-11-17 06:01:06 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds)
2020-11-17 06:04:09 +0100PoliticsII______(sid193551@gateway/web/irccloud.com/x-svzvwktexytphjlp) (Ping timeout: 272 seconds)
2020-11-17 06:04:09 +0100kozowu(uid44796@gateway/web/irccloud.com/x-dylrnyglhpjycwlc) (Ping timeout: 272 seconds)
2020-11-17 06:05:25 +0100Tritlo(sid58727@gateway/web/irccloud.com/x-dlcmyhezzzrcdorg) (Ping timeout: 272 seconds)
2020-11-17 06:05:35 +0100Tritlo(sid58727@gateway/web/irccloud.com/x-qngdkegzmhgdhfhg)
2020-11-17 06:05:41 +0100PoliticsII______(sid193551@gateway/web/irccloud.com/x-ykrgnddgnwhyshpo)
2020-11-17 06:05:49 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-17 06:05:51 +0100igokaskowitz(~IceChat95@ool-45742c14.dyn.optonline.net)
2020-11-17 06:06:41 +0100lally(sid388228@gateway/web/irccloud.com/x-zbzgkwpcudviljpk) (Ping timeout: 272 seconds)
2020-11-17 06:06:51 +0100lally(sid388228@gateway/web/irccloud.com/x-lkvfvytrcbfmnwwv)
2020-11-17 06:08:28 +0100kozowu(uid44796@gateway/web/irccloud.com/x-ehcrldadbfrqmeyx)
2020-11-17 06:08:53 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-17 06:13:39 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2020-11-17 06:14:43 +0100igokaskowitz(~IceChat95@ool-45742c14.dyn.optonline.net) (Quit: Hello, 911? Yeah, it's caught in the window this time.)
2020-11-17 06:14:46 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
2020-11-17 06:15:27 +0100igokaskowitz(~IceChat95@ool-45742c14.dyn.optonline.net)
2020-11-17 06:15:50 +0100igokaskowitz(~IceChat95@ool-45742c14.dyn.optonline.net) (Client Quit)
2020-11-17 06:16:11 +0100star_cloud(~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-17 06:16:24 +0100moet(~moet@mobile-166-137-178-107.mycingular.net) (Quit: leaving)
2020-11-17 06:17:27 +0100typetetris(sid275937@gateway/web/irccloud.com/x-hwvkvbbozbkfoprj) (Ping timeout: 272 seconds)
2020-11-17 06:19:05 +0100star_cloud(~star_clou@ec2-34-217-191-210.us-west-2.compute.amazonaws.com)
2020-11-17 06:20:37 +0100idnar(sid12240@gateway/web/irccloud.com/x-wvmmnuuotscagfyx) (Ping timeout: 272 seconds)
2020-11-17 06:20:59 +0100typetetris(sid275937@gateway/web/irccloud.com/x-qxznjjpwpuernjtq)
2020-11-17 06:21:37 +0100idnar(sid12240@gateway/web/irccloud.com/x-nahgmbtmyvioqrjv)
2020-11-17 06:21:44 +0100star_cloud(~star_clou@ec2-34-217-191-210.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-17 06:22:33 +0100da39a3ee5e6b4b0d(~da39a3ee5@ppp-223-24-92-243.revip6.asianet.co.th)
2020-11-17 06:24:25 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-17 06:27:07 +0100day_(~Unknown@unaffiliated/day)
2020-11-17 06:27:35 +0100typetetris(sid275937@gateway/web/irccloud.com/x-qxznjjpwpuernjtq) (Ping timeout: 272 seconds)
2020-11-17 06:29:39 +0100typetetris(sid275937@gateway/web/irccloud.com/x-msdsoshziggpwxpy)
2020-11-17 06:29:44 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 06:30:13 +0100day(~Unknown@unaffiliated/day) (Ping timeout: 246 seconds)
2020-11-17 06:30:13 +0100day_day
2020-11-17 06:31:27 +0100zebrag(~inkbottle@aaubervilliers-654-1-89-20.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-11-17 06:32:01 +0100heyj(sid171370@gateway/web/irccloud.com/x-xrqocrtckuflwvgl) (Ping timeout: 272 seconds)
2020-11-17 06:32:20 +0100heyj(sid171370@gateway/web/irccloud.com/x-lqaivrzgirobqwkd)
2020-11-17 06:33:54 +0100ggole(~ggole@2001:8003:8119:7200:c9ed:f9f6:bc08:34bd)
2020-11-17 06:34:59 +0100Shadowraith(~user@192.12.149.141) (Read error: Connection reset by peer)
2020-11-17 06:35:57 +0100zebrag(~inkbottle@aaubervilliers-654-1-89-20.w86-212.abo.wanadoo.fr)
2020-11-17 06:38:00 +0100zebrag(~inkbottle@aaubervilliers-654-1-89-20.w86-212.abo.wanadoo.fr) (Client Quit)
2020-11-17 06:38:21 +0100heyj(sid171370@gateway/web/irccloud.com/x-lqaivrzgirobqwkd) (Ping timeout: 272 seconds)
2020-11-17 06:42:05 +0100da39a3ee5e6b4b0d(~da39a3ee5@ppp-223-24-92-243.revip6.asianet.co.th) (Ping timeout: 240 seconds)
2020-11-17 06:47:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-17 06:51:39 +0100Adeon(sid418992@gateway/web/irccloud.com/x-zshgawryroibgclt) (Ping timeout: 272 seconds)
2020-11-17 06:52:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-17 06:55:49 +0100Adeon(sid418992@gateway/web/irccloud.com/x-plwafdhgynwzbsxy)
2020-11-17 06:56:25 +0100bitmagie(~Thunderbi@200116b80683a800c96883fdde0ec4cc.dip.versatel-1u1.de)
2020-11-17 06:57:22 +0100xsperry(~as@unaffiliated/xsperry)
2020-11-17 07:00:02 +0100resolve(~resolve@139.28.218.148) ()
2020-11-17 07:01:35 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-11-17 07:03:15 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-17 07:03:37 +0100berberman(~berberman@unaffiliated/berberman)
2020-11-17 07:06:24 +0100buterthebuddha(~user@35.1.134.251) (Ping timeout: 256 seconds)
2020-11-17 07:06:36 +0100christo(~chris@81.96.113.213)
2020-11-17 07:06:36 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453)
2020-11-17 07:09:15 +0100heyj(sid171370@gateway/web/irccloud.com/x-ofkusdzepocmjaiw)
2020-11-17 07:14:25 +0100tput(~tput@S0106a84e3fe54613.ed.shawcable.net)
2020-11-17 07:15:10 +0100idhugo__(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net)
2020-11-17 07:16:26 +0100zfnmxt(~zfnmxt@unaffiliated/zfnmxt) (Remote host closed the connection)
2020-11-17 07:16:55 +0100Shadowraith(~user@192.12.149.141)
2020-11-17 07:16:59 +0100newhoggy(sid198874@gateway/web/irccloud.com/x-terspefkrxdigoxr) (Ping timeout: 272 seconds)
2020-11-17 07:17:14 +0100Jeanne-Kamikaze(~Jeanne-Ka@66.115.189.204) (Ping timeout: 256 seconds)
2020-11-17 07:17:14 +0100catern(~catern@catern.com) (Ping timeout: 256 seconds)
2020-11-17 07:17:14 +0100zfnmxt(~zfnmxt@unaffiliated/zfnmxt)
2020-11-17 07:17:37 +0100 <Shadowraith> https://hackage.haskell.org/package/xmonad-contrib-0.13/docs/XMonad-Util-Loggers.html
2020-11-17 07:17:39 +0100 <Shadowraith> check this out
2020-11-17 07:17:40 +0100supercoven(~Supercove@dsl-hkibng31-54fae2-107.dhcp.inet.fi)
2020-11-17 07:17:41 +0100supercoven(~Supercove@dsl-hkibng31-54fae2-107.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-17 07:17:46 +0100 <Shadowraith> there is a logLayout function!
2020-11-17 07:17:55 +0100supercoven(~Supercove@dsl-hkibng31-54fae2-107.dhcp.inet.fi)
2020-11-17 07:18:08 +0100 <Shadowraith> i just have to tear it apart and somehow get it to log to a file!
2020-11-17 07:19:28 +0100newhoggy(sid198874@gateway/web/irccloud.com/x-qhmnnfjnjtcmfiay)
2020-11-17 07:23:30 +0100caubert(~mrbentari@207.246.80.112) (Quit: WeeChat 2.9)
2020-11-17 07:25:19 +0100gaussian(8cb4f058@gateway/web/cgi-irc/kiwiirc.com/ip.140.180.240.88) (Quit: Connection closed)
2020-11-17 07:25:29 +0100alp(~alp@2a01:e0a:58b:4920:814b:3b2:301a:4777)
2020-11-17 07:25:29 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-11-17 07:28:24 +0100stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-11-17 07:28:41 +0100stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net)
2020-11-17 07:29:00 +0100jedws(~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 07:32:12 +0100catern(~catern@104.131.201.120)
2020-11-17 07:36:38 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-17 07:37:25 +0100mrbentarikau(~mrbentari@207.246.80.112)
2020-11-17 07:38:08 +0100mrbentarikaucaubert
2020-11-17 07:38:25 +0100christo(~chris@81.96.113.213)
2020-11-17 07:39:29 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:5d4c:3718:c0a8:9f94) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 07:39:37 +0100noecho(~noecho@static.143.42.203.116.clients.your-server.de) (Quit: ZNC - http://znc.in)
2020-11-17 07:40:10 +0100noecho(~noecho@2a01:4f8:1c0c:80ee::4223)
2020-11-17 07:42:26 +0100Shadowraith(~user@192.12.149.141) (Ping timeout: 272 seconds)
2020-11-17 07:44:01 +0100drbean(~drbean@TC210-63-209-59.static.apol.com.tw) (Ping timeout: 256 seconds)
2020-11-17 07:44:26 +0100da39a3ee5e6b4b0d(~da39a3ee5@ppp-27-55-77-167.revip3.asianet.co.th)
2020-11-17 07:44:51 +0100tnks(sid412124@gateway/web/irccloud.com/x-foyfefzalmzctfnv) (Ping timeout: 272 seconds)
2020-11-17 07:45:00 +0100tnks(sid412124@gateway/web/irccloud.com/x-zbyszpuhbbhjdzks)
2020-11-17 07:45:23 +0100Shadorain(uid453914@gateway/web/irccloud.com/x-gzynpbjvpqrgaqml) (Quit: Connection closed for inactivity)
2020-11-17 07:51:07 +0100xff0x(~fox@2001:1a81:52d5:6a00:5952:5bb0:2bc9:4930) (Ping timeout: 260 seconds)
2020-11-17 07:51:43 +0100xff0x(~fox@2001:1a81:52d5:6a00:633e:9aec:a495:3349)
2020-11-17 07:55:33 +0100afb(~afb@185.163.110.116)
2020-11-17 07:55:47 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
2020-11-17 07:58:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-11-17 07:59:05 +0100da39a3ee5e6b4b0d(~da39a3ee5@ppp-27-55-77-167.revip3.asianet.co.th) (Ping timeout: 240 seconds)
2020-11-17 08:01:18 +0100Sanchayan(~Sanchayan@122.178.226.239)
2020-11-17 08:04:10 +0100jedws(~jedws@101.184.175.183)
2020-11-17 08:08:55 +0100yogani(sid42623@gateway/web/irccloud.com/x-xmbuoxasmdpiyyri) (Ping timeout: 272 seconds)
2020-11-17 08:09:46 +0100yogani(sid42623@gateway/web/irccloud.com/x-rolajygghowodpbd)
2020-11-17 08:10:05 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 256 seconds)
2020-11-17 08:10:15 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-17 08:12:19 +0100dyeplexer(~lol@unaffiliated/terpin)
2020-11-17 08:15:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-17 08:15:15 +0100alp(~alp@2a01:e0a:58b:4920:814b:3b2:301a:4777) (Ping timeout: 272 seconds)
2020-11-17 08:16:38 +0100idhugo__(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) (Ping timeout: 272 seconds)
2020-11-17 08:16:47 +0100chaosmasttter(~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de)
2020-11-17 08:17:25 +0100alx741(~alx741@186.178.110.6) (Ping timeout: 240 seconds)
2020-11-17 08:17:46 +0100stree_(~stree@50-108-91-191.adr01.mskg.mi.frontiernet.net)
2020-11-17 08:18:45 +0100lpy(~nyd@unaffiliated/elysian) (Quit: lpy)
2020-11-17 08:18:48 +0100stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Ping timeout: 260 seconds)
2020-11-17 08:18:49 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-17 08:19:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-17 08:22:31 +0100hiroaki(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de)
2020-11-17 08:23:14 +0100dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
2020-11-17 08:27:24 +0100howdoi(uid224@gateway/web/irccloud.com/x-pvtzxvglhmvabpwf) (Quit: Connection closed for inactivity)
2020-11-17 08:29:28 +0100drbean(~drbean@TC210-63-209-182.static.apol.com.tw)
2020-11-17 08:29:41 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th)
2020-11-17 08:30:16 +0100Ariakenom(~Ariakenom@h-82-196-111-82.NA.cust.bahnhof.se)
2020-11-17 08:31:43 +0100Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-11-17 08:32:07 +0100alx741(~alx741@181.196.68.148)
2020-11-17 08:34:28 +0100bitmagie(~Thunderbi@200116b80683a800c96883fdde0ec4cc.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-17 08:36:09 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 272 seconds)
2020-11-17 08:39:01 +0100hackagetelegram-bot-simple 0.3.5 - Easy to use library for building Telegram bots. https://hackage.haskell.org/package/telegram-bot-simple-0.3.5 (swamp_agr)
2020-11-17 08:39:03 +0100Sanchayan(~Sanchayan@122.178.226.239) (Quit: leaving)
2020-11-17 08:45:48 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-17 08:47:14 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-urdkltrndaedsfvo)
2020-11-17 08:49:21 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-11-17 08:49:43 +0100darjeeling_(~darjeelin@122.245.208.31) (Ping timeout: 260 seconds)
2020-11-17 08:50:24 +0100nineonine(~textual@50.216.62.2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 08:50:57 +0100nineonine(~textual@50.216.62.2)
2020-11-17 08:52:10 +0100Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-11-17 08:52:41 +0100Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-11-17 08:55:34 +0100andreabedini[m](andreabedi@gateway/shell/matrix.org/x-mbuhwpnbmozobgqs)
2020-11-17 08:55:47 +0100nineonine(~textual@50.216.62.2) (Ping timeout: 272 seconds)
2020-11-17 08:57:58 +0100grimgnr(~user@94.19.246.43) (Remote host closed the connection)
2020-11-17 08:58:14 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-17 09:00:09 +0100Franciman(~francesco@host-82-56-223-169.retail.telecomitalia.it)
2020-11-17 09:02:08 +0100Martinsos(~user@cpe-188-129-116-164.dynamic.amis.hr)
2020-11-17 09:03:23 +0100PacoV(~pcoves@16.194.31.93.rev.sfr.net)
2020-11-17 09:03:27 +0100 <PacoV> Hi there.
2020-11-17 09:03:47 +0100 <andreabedini[m]> hi PacoV
2020-11-17 09:04:08 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
2020-11-17 09:04:23 +0100 <PacoV> I've this type `Data.HashMap.String.HashMap String String` and I need to make it derive from Data.Binary.Binary to use it in Hakyll.
2020-11-17 09:04:41 +0100 <PacoV> I've absolutely no idea how to do this.
2020-11-17 09:05:15 +0100 <PacoV> I see that Data.HashMap.Map k e derives from Binary if k and e do too.
2020-11-17 09:05:32 +0100 <PacoV> But why not the strict version?
2020-11-17 09:05:58 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds)
2020-11-17 09:06:01 +0100 <PacoV> https://hackage.haskell.org/package/binary-0.10.0.0/docs/src/Data.Binary.Class.html#line-645
2020-11-17 09:06:11 +0100darjeeling_(~darjeelin@122.245.208.31)
2020-11-17 09:06:13 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2020-11-17 09:08:10 +0100 <andreabedini[m]> I don't think there's any particular reason, perhaps suggest the author of the package to add an instance for strict maps too? if this is blocking you, you can always roll your own
2020-11-17 09:08:40 +0100 <c_wraith> They're not different data types
2020-11-17 09:09:04 +0100 <c_wraith> Data.HashMap.Strict.HashMap and Data.HashMap.HashMap are the same data type
2020-11-17 09:09:27 +0100 <PacoV> I'm new enough to Haskell not to know how to roll my own tbh.
2020-11-17 09:09:31 +0100 <c_wraith> the difference is the functions exported by their respective modules to work on them
2020-11-17 09:09:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-17 09:10:18 +0100alp(~alp@88.126.45.36)
2020-11-17 09:10:51 +0100 <PacoV> c_wraith: Data.Hash
2020-11-17 09:11:11 +0100 <PacoV> c_wraith: Data.HashMap.Map and Data.HashMap.String.HashMap are not the same right?
2020-11-17 09:11:24 +0100 <andreabedini[m]> right, I forgot how it works. Both the .Lazy and the .Strict module re-export the same Map data type from .Internal
2020-11-17 09:11:31 +0100 <c_wraith> Data.HashMap.String doesn't exist
2020-11-17 09:11:38 +0100 <PacoV> I need the strict version of the map as I read it from a yaml file.
2020-11-17 09:11:42 +0100 <c_wraith> I presume you mean Data.HashMap.Strict
2020-11-17 09:11:46 +0100 <PacoV> Typo, sorry.
2020-11-17 09:11:53 +0100 <PacoV> Force of the habbit :-)
2020-11-17 09:13:41 +0100 <c_wraith> Both Data.HashMap.Strict and Data.HashMap.Lazy re-export Data.HashMap.Internal for their HashMap type
2020-11-17 09:13:51 +0100 <c_wraith> The difference is the functions, not the types
2020-11-17 09:14:43 +0100tolt(~weechat-h@li219-154.members.linode.com) (Ping timeout: 246 seconds)
2020-11-17 09:15:22 +0100 <c_wraith> The problem I can see is that neither binary nor unordered-containers depends on the other, so neither one can have the instance you want
2020-11-17 09:15:30 +0100hyperfekt(end@bnc.hyperfekt.net) (Ping timeout: 265 seconds)
2020-11-17 09:15:30 +0100motte(~weechat@unaffiliated/motte) (Ping timeout: 265 seconds)
2020-11-17 09:15:31 +0100 <c_wraith> If there is such an instance, it's orphaned in another package
2020-11-17 09:16:45 +0100shachaf(~shachaf@unaffiliated/shachaf) (Remote host closed the connection)
2020-11-17 09:16:47 +0100motte(~weechat@unaffiliated/motte)
2020-11-17 09:16:53 +0100shachaf(~shachaf@unaffiliated/shachaf)
2020-11-17 09:17:08 +0100 <PacoV> Not sure what on orphaned package is yet.
2020-11-17 09:17:47 +0100 <c_wraith> instances are orphans if they're not defined with either the type or the class
2020-11-17 09:18:05 +0100tolt(~weechat-h@li219-154.members.linode.com)
2020-11-17 09:18:30 +0100 <PacoV> This code http://ix.io/2Erx gives me http://ix.io/2Erz.
2020-11-17 09:18:52 +0100 <c_wraith> I don't see any package that suggests by its name or short description that it provides such an instance
2020-11-17 09:19:31 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-17 09:19:42 +0100 <PacoV> I'm okay to write my own.
2020-11-17 09:19:54 +0100 <PacoV> I juste don't know how :-/
2020-11-17 09:19:57 +0100 <c_wraith> Binary has instances for containers, not unordered-containers
2020-11-17 09:20:03 +0100 <c_wraith> is there any reason you can't use that?
2020-11-17 09:20:17 +0100hyperfekt(end@bnc.hyperfekt.net)
2020-11-17 09:20:18 +0100 <c_wraith> (there's rarely a reason to require unordered-containers)
2020-11-17 09:20:46 +0100Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-11-17 09:20:54 +0100iteratee(~kyle@162.211.154.4) (Read error: Connection reset by peer)
2020-11-17 09:20:55 +0100 <merijn> c_wraith: Usually the reason people have is "HashMaps are faster!!", which is a sentiment I blame on Python and JS :p
2020-11-17 09:21:03 +0100iteratee(~kyle@162.211.154.4)
2020-11-17 09:21:04 +0100 <PacoV> Well, the strict map is in unordered and I need the strict one to read it using Data.Yaml.
2020-11-17 09:21:21 +0100 <PacoV> I don't care about performances here.
2020-11-17 09:21:30 +0100 <PacoV> My maps will be small anyway.
2020-11-17 09:22:38 +0100Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-11-17 09:22:41 +0100ocamler(3263cbdb@50.99.203.219)
2020-11-17 09:22:59 +0100 <c_wraith> Ah. "depending on a library written by someone who thinks hashing is automatically fast" is the second-most common reason
2020-11-17 09:23:23 +0100 <c_wraith> Converting between the types is a one-liner, if you don't count the imports
2020-11-17 09:23:28 +0100 <ocamler> anyone know if a way to pattern match on a file stream lazily, so that I can for example match on
2020-11-17 09:23:57 +0100 <PacoV> c_wraith: I'll look into this.
2020-11-17 09:24:03 +0100 <dminuoso> ocamler: You'd use a streaming library.
2020-11-17 09:24:08 +0100 <ocamler> "s" : ":" : a : b : c : xs
2020-11-17 09:24:37 +0100 <ocamler> and it will read constant space
2020-11-17 09:24:38 +0100 <dminuoso> You can also use lazy IO and just pattern match like that, but streaming tends to give less headaches
2020-11-17 09:24:40 +0100 <c_wraith> depending on how sloppy you want to be.... readFile gives you that.
2020-11-17 09:24:42 +0100 <dminuoso> Then streaming.
2020-11-17 09:24:47 +0100 <dminuoso> If you want constant space.
2020-11-17 09:24:49 +0100 <dminuoso> No way around it
2020-11-17 09:25:25 +0100 <dminuoso> Look into conduit, pipe, streaming, etc
2020-11-17 09:25:30 +0100 <c_wraith> meh. streaming libraries don't guarantee constant space either. If you generate an arbitrary-size data structure, they use arbitrary space
2020-11-17 09:25:30 +0100 <ocamler> i see, nd pointers to a library? does conduit work here
2020-11-17 09:25:38 +0100britva(~britva@2a02:aa13:7240:2980:7da5:a1a0:c038:90b4)
2020-11-17 09:25:45 +0100 <ocamler> ah yeah in my case messages are constant sized
2020-11-17 09:25:54 +0100britva(~britva@2a02:aa13:7240:2980:7da5:a1a0:c038:90b4) (Client Quit)
2020-11-17 09:25:57 +0100 <dminuoso> Sure, conduit would work
2020-11-17 09:26:29 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-11-17 09:26:38 +0100britva(~britva@2a02:aa13:7240:2980:7da5:a1a0:c038:90b4)
2020-11-17 09:26:40 +0100ocamler(3263cbdb@50.99.203.219) (Remote host closed the connection)
2020-11-17 09:27:02 +0100britva(~britva@2a02:aa13:7240:2980:7da5:a1a0:c038:90b4) (Client Quit)
2020-11-17 09:27:07 +0100ocamler(3263cbdb@50.99.203.219)
2020-11-17 09:27:40 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-17 09:27:43 +0100 <PacoV> c_wraith: there is no function is the libs right, I've to write it.
2020-11-17 09:27:58 +0100ocamler(3263cbdb@50.99.203.219) (Remote host closed the connection)
2020-11-17 09:28:03 +0100 <c_wraith> It's just toList and fromList
2020-11-17 09:28:08 +0100drbean(~drbean@TC210-63-209-182.static.apol.com.tw) (Ping timeout: 256 seconds)
2020-11-17 09:29:09 +0100 <dminuoso> c_wraith: That's just necessity vs sufficiency. It is necessary to use a streaming library if you want constant-space. :p
2020-11-17 09:29:09 +0100 <c_wraith> https://hackage.haskell.org/package/unordered-containers-0.2.13.0/docs/Data-HashMap-Strict.html#v:… and https://hackage.haskell.org/package/containers-0.6.4.1/docs/Data-Map-Strict.html#v:fromList
2020-11-17 09:29:15 +0100 <dminuoso> But certainly not sufficient.
2020-11-17 09:29:51 +0100 <c_wraith> Meh, I'm perfectly capable of using readFile in constant space - and perfectly capable of bailing out and saying it's the wrong tool for some problems.
2020-11-17 09:29:56 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-17 09:31:07 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Remote host closed the connection)
2020-11-17 09:31:27 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-17 09:32:00 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Client Quit)
2020-11-17 09:32:29 +0100cinimod_(uid93893@gateway/web/irccloud.com/x-wrzxrzpvqphwukyg) (Quit: Connection closed for inactivity)
2020-11-17 09:32:29 +0100 <dminuoso> Well yeah, perhaps necessary is a bit too strong. But it's a lot more hassle to guarantee constant space because you have to be mindful of strictness, about accidentally leaving references
2020-11-17 09:32:37 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-17 09:32:47 +0100Boomerang_(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-17 09:32:55 +0100Boomerang_(~Boomerang@xd520f68c.cust.hiper.dk) (Remote host closed the connection)
2020-11-17 09:32:55 +0100 <dminuoso> (And the GHC simplifier can stab you in the back if it creates sharing where you dont expect it to)
2020-11-17 09:33:36 +0100 <dminuoso> It's hard to guarantee constant space and deterministic behavior with lazy IO
2020-11-17 09:33:52 +0100ulidtko(~ulidtko@193.111.48.79) (Read error: Connection reset by peer)
2020-11-17 09:35:03 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-17 09:35:23 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-17 09:35:26 +0100cfricke(~cfricke@unaffiliated/cfricke) (Client Quit)
2020-11-17 09:35:43 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-17 09:35:48 +0100nados(~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 272 seconds)
2020-11-17 09:36:01 +0100borne(~fritjof@200116b8641c82003b6e7a122d52ed4c.dip.versatel-1u1.de)
2020-11-17 09:37:07 +0100Sgeo_(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-11-17 09:37:31 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-17 09:40:07 +0100ericsagn1(~ericsagne@2405:6580:0:5100:c078:1a2e:5eb7:90ae) (Ping timeout: 272 seconds)
2020-11-17 09:40:41 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-17 09:42:06 +0100Feuermagier_(~Feuermagi@213.178.26.41) (Quit: Leaving)
2020-11-17 09:42:16 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-11-17 09:45:33 +0100p3n_(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in)
2020-11-17 09:48:28 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2020-11-17 09:49:03 +0100jedws(~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 09:49:25 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-17 09:52:10 +0100ericsagn1(~ericsagne@2405:6580:0:5100:bab2:cd00:4d2d:7b87)
2020-11-17 09:52:43 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
2020-11-17 09:52:45 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-17 09:54:46 +0100ulidtko(~ulidtko@193.111.48.79)
2020-11-17 09:55:35 +0100raichoo(~raichoo@213.240.178.58)
2020-11-17 09:56:01 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-17 09:56:53 +0100jedws(~jedws@101.184.175.183)
2020-11-17 09:56:57 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-zpttjkkcshfghzwp) (Quit: Connection closed for inactivity)
2020-11-17 09:57:23 +0100teddpole(~teddpole7@2404:ab80:b:19c0:19e5:eb0d:10d8:2984)
2020-11-17 09:58:51 +0100teddpole(~teddpole7@2404:ab80:b:19c0:19e5:eb0d:10d8:2984) ()
2020-11-17 10:00:01 +0100afb(~afb@185.163.110.116) ()
2020-11-17 10:00:04 +0100Fernando-Basso[m(fernando-b@gateway/shell/matrix.org/x-wqwrqhbwxnrfqluo) (Quit: Idle for 30+ days)
2020-11-17 10:02:34 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-fwnbgopbizdwfbcr)
2020-11-17 10:02:39 +0100Yumasi(~guillaume@2a01cb09b06b29ead46a3aeadfb0149b.ipv6.abo.wanadoo.fr)
2020-11-17 10:03:08 +0100kuribas(~user@ptr-25vy0ia86bt3ifa9hy0.18120a2.ip6.access.telenet.be)
2020-11-17 10:03:08 +0100jespada(~jespada@90.254.245.49)
2020-11-17 10:03:40 +0100 <kuribas> is considered good practice to use empty type classes as constraints?
2020-11-17 10:04:10 +0100 <dminuoso> Considering I haven't it used in practice anywhere..
2020-11-17 10:04:16 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-17 10:04:20 +0100 <dminuoso> *seen it
2020-11-17 10:04:38 +0100 <kuribas> it's to see if a relation between phantom types holds
2020-11-17 10:04:51 +0100 <opqdonut> yeah that sounds about right
2020-11-17 10:05:10 +0100 <opqdonut> empty type families are common once you start doing type-level programming
2020-11-17 10:05:29 +0100 <kuribas> opqdonut: what's an empty type family?
2020-11-17 10:05:53 +0100_ashbreeze_(~mark@72-161-253-71.dyn.centurytel.net)
2020-11-17 10:05:54 +0100 <dminuoso> I guess its similar to things like `data Direction = Left | Right`, it still falls prey to boolean blindness because it doesn't carry any proofs aroud.
2020-11-17 10:05:56 +0100 <opqdonut> err I mean non-associated type families, which are kinda equivalent to type classes with no contents (methods)
2020-11-17 10:06:47 +0100 <kuribas> opqdonut: you mean a boolean valued type family?
2020-11-17 10:06:56 +0100 <opqdonut> so something like `concat :: (Add k m n) => Vec k a -> Vec m a -> Vec n a` for length-indexed lists
2020-11-17 10:07:16 +0100 <opqdonut> no, I'm confused, ignore me
2020-11-17 10:07:25 +0100ashbreeze(~mark@184-157-32-219.dyn.centurytel.net) (Ping timeout: 264 seconds)
2020-11-17 10:07:32 +0100 <opqdonut> that would be `n ~ (Add k m)` or so with type families
2020-11-17 10:07:35 +0100 <kuribas> here Add k m n is a type class constraint no?
2020-11-17 10:07:46 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-11-17 10:07:47 +0100 <opqdonut> yeah, I wrote the class equivalent
2020-11-17 10:07:53 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 260 seconds)
2020-11-17 10:08:37 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-17 10:08:42 +0100p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
2020-11-17 10:08:42 +0100 <dminuoso> In general empty typeclasses feel not very useful because you can't do much with them
2020-11-17 10:08:48 +0100jedws(~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 10:09:12 +0100 <dminuoso> The fact that two things relate does imply some fact on the value level
2020-11-17 10:09:24 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-11-17 10:09:32 +0100 <dminuoso> kuribas: Are these plain single typeclasses or MPTC?
2020-11-17 10:09:38 +0100 <kuribas> then I would have 'True ~ IsSubClass k1 k2 => Object k2 -> Attribute k1 t -> m t
2020-11-17 10:09:40 +0100 <kuribas> dminuoso: MPTC
2020-11-17 10:09:43 +0100 <dminuoso> kuribas: with fundeps?
2020-11-17 10:09:49 +0100 <kuribas> dminuoso: no
2020-11-17 10:09:53 +0100PacoV(~pcoves@16.194.31.93.rev.sfr.net) (Quit: leaving)
2020-11-17 10:09:54 +0100Netsu(5f84a760@96-167-132-95.pool.ukrtel.net)
2020-11-17 10:10:16 +0100PacoV(~pcoves@16.194.31.93.rev.sfr.net)
2020-11-17 10:10:18 +0100 <PacoV> Hi again.
2020-11-17 10:10:39 +0100 <PacoV> I now have this code http://ix.io/2ErU/haskell and this error http://ix.io/2ErW
2020-11-17 10:10:58 +0100 <PacoV> What does it mean `use a standalone 'deriving instance' declaration` here?
2020-11-17 10:11:02 +0100 <Netsu> Hello. Are type constraint synonym and typeclass alias semantically the same?
2020-11-17 10:11:29 +0100 <PacoV> As I now have a lazy Map String String, why can't it derive from Binary?
2020-11-17 10:11:40 +0100 <kuribas> PacoV: it means it cannot derive the Binary instance
2020-11-17 10:11:52 +0100 <dminuoso> PacoV: GND doesnt magically figure out things, it just "pierces the newtype wrapper"
2020-11-17 10:11:56 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-17 10:12:04 +0100 <kuribas> PacoV: because LTranslation is not an instance of Binary
2020-11-17 10:12:26 +0100 <dminuoso> So when "the thing contained has some instance" then GND lets you "copy" the instance for the newtype wrapper. But it requires the contained thing to already have that instance
2020-11-17 10:12:34 +0100 <dminuoso> PacoV: At any rate. For binary, dont use typeclasses.
2020-11-17 10:12:38 +0100 <dminuoso> Use put/get directly
2020-11-17 10:12:59 +0100 <dminuoso> (It's the one big wart of the library)
2020-11-17 10:13:07 +0100 <PacoV> dminuoso: But, Map String String derives from Binary.
2020-11-17 10:13:15 +0100 <Netsu> like `type MyAlias m = (MonadA m, MonadB m)` and `class (MonadA m, MonadB m) => MyAlias m`. Is it the same, or second approach more nominal and require explicit instance declaration on the such constrained type?
2020-11-17 10:13:25 +0100 <kuribas> PacoV: maybe you want this? http://hackage.haskell.org/package/binary-instances-1
2020-11-17 10:13:32 +0100Axman6(~Axman6@pdpc/supporter/student/Axman6) (Remote host closed the connection)
2020-11-17 10:13:37 +0100 <dminuoso> Netsu: They are not the same
2020-11-17 10:13:40 +0100 <Netsu> Would instanced be resolved in same way in both cases
2020-11-17 10:13:47 +0100Axman6(~Axman6@pdpc/supporter/student/Axman6)
2020-11-17 10:13:56 +0100 <dminuoso> Netsu: MyAlias *implies* MonadA and MonadB, so its stronger
2020-11-17 10:14:05 +0100 <dminuoso> Say, there could be things MonadA and MonadB but not MyAlias
2020-11-17 10:14:44 +0100 <dminuoso> And it does indeed require explicit instances
2020-11-17 10:14:49 +0100enoq(~textual@194-208-146-143.lampert.tv)
2020-11-17 10:15:07 +0100 <dminuoso> Even if MyAlias is empty, GHC couldnt magically just induce instances from that. What if MyAlias demands extra laws?
2020-11-17 10:15:51 +0100 <dminuoso> Netsu: Also the superclass version is more composable
2020-11-17 10:16:27 +0100 <dminuoso> Oh, it's not. Interesting TIL
2020-11-17 10:16:39 +0100 <PacoV> kuribas: that looks good. I'll see how to use it. Simply import Data.Binary.Instances.UnorderedContainers ?
2020-11-17 10:16:41 +0100 <kuribas> dminuoso: In my case, the difference on value level is that one will be that without the constraint, you can generate queries which will generate an error. However that is on the remote service, not in my program.
2020-11-17 10:16:47 +0100 <kuribas> PacoV: yes
2020-11-17 10:17:03 +0100 <PacoV> And, if I get you people right,
2020-11-17 10:17:09 +0100christo(~chris@81.96.113.213)
2020-11-17 10:17:09 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-17 10:17:14 +0100 <PacoV> i've to remove the newtype wrapper.
2020-11-17 10:17:45 +0100 <Netsu> dminuoso: thank you a lot! Could you describe in more details, please? So first case (type constraint alias) -- it equal. And second one (type class) -- it just implies?
2020-11-17 10:18:05 +0100 <kuribas> dminuoso: if I fetch an attribute for an object of the wrong class, the remote server will return an error.
2020-11-17 10:19:00 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-17 10:19:01 +0100logicmoo(~dmiles@c-73-67-179-188.hsd1.wa.comcast.net)
2020-11-17 10:19:08 +0100dmiles(dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 256 seconds)
2020-11-17 10:19:26 +0100sakirious2(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2020-11-17 10:20:34 +0100thc202(~thc202@unaffiliated/thc202)
2020-11-17 10:21:05 +0100pdxleif_(~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com)
2020-11-17 10:21:14 +0100pdxleif(~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com) (Ping timeout: 265 seconds)
2020-11-17 10:21:30 +0100pdxleif_pdxleif
2020-11-17 10:21:43 +0100christo(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2020-11-17 10:21:43 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Ping timeout: 265 seconds)
2020-11-17 10:21:43 +0100sakirious2sakirious
2020-11-17 10:22:12 +0100Rembane(~Rembane@li346-36.members.linode.com) (Ping timeout: 265 seconds)
2020-11-17 10:22:37 +0100Rembane(~Rembane@li346-36.members.linode.com)
2020-11-17 10:25:38 +0100PragCypher(~cypher@li1507-98.members.linode.com) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-17 10:25:52 +0100PragCypher(~cypher@li1507-98.members.linode.com)
2020-11-17 10:26:19 +0100petersen_(~petersen@redhat/juhp)
2020-11-17 10:26:49 +0100morbeus(vhamalai@gateway/shell/tkk.fi/x-ufpngpdloddgzoih) (Ping timeout: 246 seconds)
2020-11-17 10:26:56 +0100morbeus(vhamalai@gateway/shell/tkk.fi/x-sygopmpjleahuvxk)
2020-11-17 10:27:10 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 246 seconds)
2020-11-17 10:27:46 +0100mniip_(~mniip@freenode/staff/mniip)
2020-11-17 10:27:49 +0100petersen_petersen
2020-11-17 10:28:04 +0100__monty__(~toonn@unaffiliated/toonn)
2020-11-17 10:31:52 +0100mniip(~mniip@freenode/staff/mniip) (Ping timeout: 619 seconds)
2020-11-17 10:38:14 +0100 <PacoV> It works!
2020-11-17 10:38:25 +0100 <PacoV> \o/ Yeah \o/
2020-11-17 10:38:29 +0100 <PacoV> Thanks all!
2020-11-17 10:40:00 +0100 <PacoV> Damn... Same problem with Writable now...
2020-11-17 10:40:33 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th)
2020-11-17 10:40:34 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-17 10:43:00 +0100 <PacoV> Wich was easy, it works.
2020-11-17 10:43:12 +0100ArsenArsen(~Arsen@kshare/developer/ArsenArsen) (Changing host)
2020-11-17 10:43:12 +0100ArsenArsen(~Arsen@fsf/member/ArsenArsen)
2020-11-17 10:43:48 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-17 10:44:06 +0100xsperry(~as@unaffiliated/xsperry) ()
2020-11-17 10:44:28 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-17 10:44:31 +0100berberman(~berberman@unaffiliated/berberman)
2020-11-17 10:50:33 +0100 <dminuoso> Netsu: Right. If a class constraint is satisfied, that implies the superclass constraints.
2020-11-17 10:50:37 +0100CindyLinz(~cindy_utf@112.121.78.20) (Ping timeout: 264 seconds)
2020-11-17 10:50:46 +0100CindyLinz(~cindy_utf@112.121.78.20)
2020-11-17 10:51:23 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-17 10:51:44 +0100 <Netsu> thanks
2020-11-17 10:52:15 +0100Netsu(5f84a760@96-167-132-95.pool.ukrtel.net) (Remote host closed the connection)
2020-11-17 10:54:46 +0100codeAlways(uid272474@gateway/web/irccloud.com/x-dbuczpztyxqztxlt) (Quit: Connection closed for inactivity)
2020-11-17 10:55:12 +0100xsperry(~as@unaffiliated/xsperry)
2020-11-17 10:55:38 +0100oldsk00l(~znc@ec2-18-130-254-135.eu-west-2.compute.amazonaws.com)
2020-11-17 10:56:07 +0100oldsk00l_(~znc@ec2-18-130-254-135.eu-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds)
2020-11-17 10:56:40 +0100hardaker(~hardaker@193.56.252.12)
2020-11-17 10:56:42 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi) (Ping timeout: 256 seconds)
2020-11-17 10:57:43 +0100Deewiant(~deewiant@de1.ut.deewiant.iki.fi)
2020-11-17 10:57:51 +0100jollygood2(~bc8165ab@217.29.117.252)
2020-11-17 11:00:00 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-11-17 11:01:10 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-17 11:03:46 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-11-17 11:04:28 +0100Rudd0(~Rudd0@185.189.115.108)
2020-11-17 11:05:23 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2020-11-17 11:10:17 +0100rprije(~rprije@124.148.131.132) (Ping timeout: 256 seconds)
2020-11-17 11:11:23 +0100mniip(~mniip@freenode/staff/mniip)
2020-11-17 11:15:22 +0100mniip_(~mniip@freenode/staff/mniip) (Ping timeout: 619 seconds)
2020-11-17 11:18:17 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 272 seconds)
2020-11-17 11:18:38 +0100solonarv(~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr)
2020-11-17 11:20:47 +0100jzl(~jzl@unaffiliated/jzl) (Ping timeout: 260 seconds)
2020-11-17 11:23:19 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-17 11:23:48 +0100sveit(~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Quit: Bye)
2020-11-17 11:24:13 +0100toorevitimirp(~tooreviti@117.182.180.118) (Remote host closed the connection)
2020-11-17 11:24:17 +0100sveit(~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f)
2020-11-17 11:26:13 +0100toorevitimirp(~tooreviti@117.182.180.118)
2020-11-17 11:27:32 +0100chaosmasttter(~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-17 11:31:50 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-11-17 11:32:20 +0100Kaeipi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Quit: Leaving)
2020-11-17 11:32:22 +0100acidjnk_new(~acidjnk@p200300d0c719ff874cf537f47d61e6af.dip0.t-ipconnect.de)
2020-11-17 11:32:38 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
2020-11-17 11:33:43 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds)
2020-11-17 11:34:33 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-17 11:34:50 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2020-11-17 11:36:33 +0100PacoV(~pcoves@16.194.31.93.rev.sfr.net) (Quit: leaving)
2020-11-17 11:45:02 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 11:47:06 +0100raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-11-17 11:48:46 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2020-11-17 11:49:16 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-17 11:50:42 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2020-11-17 11:55:08 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2020-11-17 11:57:54 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 265 seconds)
2020-11-17 11:59:30 +0100hackagehaskoin-core 0.17.2 - Bitcoin & Bitcoin Cash library for Haskell https://hackage.haskell.org/package/haskoin-core-0.17.2 (jprupp)
2020-11-17 11:59:30 +0100alp(~alp@88.126.45.36) (Ping timeout: 260 seconds)
2020-11-17 12:03:06 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-17 12:03:30 +0100 <nut> is bytestring a list of word8?
2020-11-17 12:03:43 +0100 <nut> in the bytestring package
2020-11-17 12:03:50 +0100 <merijn> nut: Define "is"
2020-11-17 12:04:56 +0100 <merijn> Conceptually? Maybe. Is it implemented as a list? Definitely not.
2020-11-17 12:04:56 +0100 <nut> well, i have a utf-8 string and i want to keep until it sees a \n
2020-11-17 12:05:24 +0100 <nut> I don't know how to represent \n in Word8
2020-11-17 12:05:25 +0100 <merijn> nut: Pretend the "String" part of ByteString doesn't exist
2020-11-17 12:05:28 +0100 <merijn> ByteString = Bytes
2020-11-17 12:05:50 +0100 <merijn> If you have unicode text, then you don't want ByteString
2020-11-17 12:06:02 +0100alp(~alp@2a01:e0a:58b:4920:8024:df57:dcb5:b452)
2020-11-17 12:06:20 +0100 <nut> then I check the bytestring APIs, and I realize that conceptually a Bytestring is a list of Word8
2020-11-17 12:06:33 +0100 <nut> Which would you recommend?
2020-11-17 12:06:47 +0100 <merijn> nut: You probably want "decodeUtf8' :: ByteString -> Either UnicodeException Text" :)
2020-11-17 12:06:50 +0100 <merijn> https://hackage.haskell.org/package/text-1.2.4.0/docs/Data-Text-Encoding.html#v:decodeUtf8-39-
2020-11-17 12:07:11 +0100 <merijn> Alternatively, you can use decodeUtf8With to explicitly specify how to handle decoding errors
2020-11-17 12:07:16 +0100UnhammerdUnhammer
2020-11-17 12:07:30 +0100 <nut> But I see there's also the Data.ByteString.Lazy.Char8
2020-11-17 12:07:56 +0100 <merijn> https://github.com/quchen/articles/blob/master/fbut.md#bytestringchar8-is-bad
2020-11-17 12:07:58 +0100 <nut> I thought that's supposed to be useful for mixed texual and binary data
2020-11-17 12:08:12 +0100 <nut> Ok let me dig in
2020-11-17 12:08:16 +0100 <merijn> nut: Char8 is a great way to silently corrupt your data! :)
2020-11-17 12:09:06 +0100 <nut> So go with the text package right?
2020-11-17 12:09:34 +0100 <merijn> nut: Text is almost always the right choice when you're, well, dealing with text :p
2020-11-17 12:10:14 +0100acidjnk_new(~acidjnk@p200300d0c719ff874cf537f47d61e6af.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-17 12:10:21 +0100 <merijn> Plus conversion to/from String (via pack/unpack) and to/from ByteString (via Data.Text.Encoding) is easy and well-defined
2020-11-17 12:10:21 +0100 <nut> thx for the tip
2020-11-17 12:11:04 +0100 <merijn> :t Data.Text.takeWhile
2020-11-17 12:11:05 +0100 <lambdabot> (Char -> Bool) -> Data.Text.Internal.Text -> Data.Text.Internal.Text
2020-11-17 12:11:11 +0100 <merijn> :t Data.Text.takeWhile (=='\n')
2020-11-17 12:11:12 +0100 <lambdabot> Data.Text.Internal.Text -> Data.Text.Internal.Text
2020-11-17 12:11:23 +0100 <merijn> nut: That solves your problem right away ;)
2020-11-17 12:11:32 +0100 <merijn> eh
2020-11-17 12:11:41 +0100 <merijn> takeWhile (/='\n'), of course :p
2020-11-17 12:11:53 +0100 <nut> nice
2020-11-17 12:14:49 +0100solonarv(~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) (Read error: Connection reset by peer)
2020-11-17 12:15:23 +0100solonarv(~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr)
2020-11-17 12:15:47 +0100zenzike(uid257060@gateway/web/irccloud.com/x-ekbwjbhyjbwovlhi)
2020-11-17 12:26:41 +0100alp(~alp@2a01:e0a:58b:4920:8024:df57:dcb5:b452) (Ping timeout: 272 seconds)
2020-11-17 12:27:36 +0100 <zenzike> I was looking at `RandomGen` and saw that `next` is deprecated due to poor performance. That makes sense if the default naive definition is used. However, it seems that `splitmix` provides its own `nextInt` which seems fine and is used in the instance of `StdGen` (which is `SMGen`). Am I missing something obvious?
2020-11-17 12:28:25 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-17 12:30:28 +0100raichoo(~raichoo@213.240.178.58)
2020-11-17 12:31:07 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 12:33:02 +0100ericsagn1(~ericsagne@2405:6580:0:5100:bab2:cd00:4d2d:7b87) (Ping timeout: 264 seconds)
2020-11-17 12:35:16 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-11-17 12:36:33 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-17 12:37:00 +0100hackagehaskoin-store-data 0.38.1 - Data for Haskoin Store https://hackage.haskell.org/package/haskoin-store-data-0.38.1 (jprupp)
2020-11-17 12:38:00 +0100hackagehaskoin-store 0.38.1 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.38.1 (jprupp)
2020-11-17 12:38:59 +0100 <dminuoso> nut: Just to show how ByteString <> String confusion can be very surprising. Do you know how ByteString has an IsString instance, such that you can use OverloadedStrings for ByteString?
2020-11-17 12:40:24 +0100LKoen(~LKoen@9.253.88.92.rev.sfr.net)
2020-11-17 12:42:00 +0100 <kuribas> do you have a stragegy for versioning data?
2020-11-17 12:42:43 +0100 <kuribas> an easy way I came up with was: simply update the data type, but pass a version number to functions.
2020-11-17 12:42:57 +0100chaosmasttter(~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de)
2020-11-17 12:43:31 +0100 <kuribas> so for sum types I could simply add clauses.
2020-11-17 12:43:33 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-17 12:43:38 +0100Guest48480(~luka@217.146.82.202) (Remote host closed the connection)
2020-11-17 12:44:03 +0100 <kuribas> then each function has a "rest clause" that raises an error: myFun _ = error "unsupported field."
2020-11-17 12:44:36 +0100ericsagn1(~ericsagne@2405:6580:0:5100:d6bc:df2c:ba38:451b)
2020-11-17 12:46:36 +0100tput(~tput@S0106a84e3fe54613.ed.shawcable.net) (Read error: Connection reset by peer)
2020-11-17 12:46:48 +0100 <kuribas> but then the burden to not break previous code is on the programmer.
2020-11-17 12:47:30 +0100hackagemicrolens 0.4.12.0 - A tiny lens library with no dependencies https://hackage.haskell.org/package/microlens-0.4.12.0 (Artyom)
2020-11-17 12:48:31 +0100hackagemicrolens-platform 0.4.2, microlens-ghc 0.4.13, microlens-th 0.4.3.7 (Artyom): https://qbin.io/came-wage-exrj
2020-11-17 12:50:23 +0100hekkaidekapus_hekkaidekapus
2020-11-17 12:50:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-17 12:52:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-17 12:52:33 +0100drbean(~drbean@TC210-63-209-36.static.apol.com.tw)
2020-11-17 12:53:55 +0100drbean(~drbean@TC210-63-209-36.static.apol.com.tw) (Client Quit)
2020-11-17 12:55:11 +0100Ariakenom(~Ariakenom@h-82-196-111-82.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
2020-11-17 12:55:28 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds)
2020-11-17 13:00:02 +0100hardaker(~hardaker@193.56.252.12) ()
2020-11-17 13:00:50 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-17 13:01:46 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds)
2020-11-17 13:04:17 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-11-17 13:04:50 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:b962:7f95:ab02:6d5a) (Ping timeout: 264 seconds)
2020-11-17 13:05:22 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Ping timeout: 246 seconds)
2020-11-17 13:08:01 +0100Ariakenom(~Ariakenom@h-158-174-22-49.NA.cust.bahnhof.se)
2020-11-17 13:08:10 +0100sdx32(~sdx23@unaffiliated/sdx23) (Ping timeout: 256 seconds)
2020-11-17 13:14:03 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:217f:16b3:ceaa:d387)
2020-11-17 13:15:34 +0100p0a(~user@unaffiliated/p0a)
2020-11-17 13:21:54 +0100plutoniix(~q@175.176.222.7) (Quit: Leaving)
2020-11-17 13:22:20 +0100lahwran(~lahwran@185.163.110.116)
2020-11-17 13:23:50 +0100 <merijn> kuribas: My strategy is, convert old data to latest format on input and write code only against the latest format
2020-11-17 13:24:16 +0100 <merijn> kuribas: The problem becomes limited to 1) detecting old input formats and 2) writing conversion logic
2020-11-17 13:24:49 +0100 <kuribas> merijn: we have the opposite problem. When we do computations, we should not use new computations on old data, only new data.
2020-11-17 13:25:15 +0100 <kuribas> merijn: because otherwise the customer will be surprised their data changed.
2020-11-17 13:25:27 +0100lahwran(~lahwran@185.163.110.116) (Remote host closed the connection)
2020-11-17 13:25:38 +0100 <kuribas> so I want some versioning system where I can pass the version number to the computation, and it picks the right version.
2020-11-17 13:25:45 +0100 <merijn> That's the same problem, except you can skip conversion forwards :p
2020-11-17 13:26:03 +0100 <kuribas> and the compotation is a GADT describing what needs to be done (and can be serialized to disk).
2020-11-17 13:26:38 +0100sphaleriteLinuxHackerman
2020-11-17 13:26:51 +0100LinuxHackermansphalerite
2020-11-17 13:27:02 +0100 <kuribas> merijn: you mean, convert to the latest format, but have custom logic for each version?
2020-11-17 13:27:30 +0100 <kuribas> I wonder how to make it manageable...
2020-11-17 13:28:05 +0100 <lortabac> kuribas: you need a way to convert from any version to the latest one
2020-11-17 13:28:06 +0100 <opqdonut> that's the question various sql migration libraries have been trying to answer for ages
2020-11-17 13:28:10 +0100 <dminuoso> 13:23:50 merijn | kuribas: My strategy is, convert old data to latest format on input and write code only against the latest format
2020-11-17 13:28:12 +0100 <dminuoso> 13:24:49 kuribas | merijn: we have the opposite problem. When we do computations, we should not use new computations on old data, only new data.
2020-11-17 13:28:14 +0100 <dminuoso> How is that opposite?
2020-11-17 13:28:20 +0100 <dminuoso> It sounds *exactly* like whe merijn suggests
2020-11-17 13:28:45 +0100 <opqdonut> keeping around rich enough test data for all those conversions is the hard part in my experience
2020-11-17 13:28:52 +0100 <kuribas> dminuoso: because the old logic should remain exactly the same
2020-11-17 13:28:53 +0100 <opqdonut> the slow code bloat in itself isn't that bad
2020-11-17 13:29:39 +0100 <kuribas> dminuoso: it's not new logic against old data, it's old logic against new data.
2020-11-17 13:29:55 +0100 <lortabac> kuribas: if you only add and remove fields (never modify) it is more manageable
2020-11-17 13:30:03 +0100 <dminuoso> opqdonut: I dont think its that complex of a problem. We just maintain a list `[Migration]` where `data Migration = Migration { migVersion :: Integer, migQuery :: Connection -> IO () }`, imho most "migration libraries" are just overengineered solutions because people seem to be afraid to write 5 lines of code for themselves.
2020-11-17 13:30:48 +0100 <kuribas> lortabac: that's a way of course. If I modify a function, represented by SomeFun in the GADT, I could make a new one SomeFunV2 when I modify SomeFun.
2020-11-17 13:30:56 +0100idhugo(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net)
2020-11-17 13:32:28 +0100 <lortabac> kuribas: most of the time when you add a new field the conversion function will simply provide some default value (ex. Nothing) on the fields that were missing
2020-11-17 13:32:46 +0100 <opqdonut> dminuoso: I agree
2020-11-17 13:33:40 +0100Guest92179(~ericb2@185.204.1.185)
2020-11-17 13:34:06 +0100 <lortabac> then you have to ensure that the new logic does not do anything new when that field has the default value
2020-11-17 13:34:15 +0100 <merijn> kuribas: That just means you need a "Map Version YourComputation" and do a lookup
2020-11-17 13:34:52 +0100 <merijn> kuribas: I wouldn't bother with fancy polymorphic solutions, just keep a copy of each old version in a separate module and call as appropriate
2020-11-17 13:35:07 +0100 <kuribas> merijn: or just compute :: Version -> ComputationExpression -> Result
2020-11-17 13:35:53 +0100 <merijn> Either way, although having a data structure might be more convenient to keep up to date
2020-11-17 13:36:00 +0100hackagehmatrix 0.20.1 - Numeric Linear Algebra https://hackage.haskell.org/package/hmatrix-0.20.1 (DominicSteinitz)
2020-11-17 13:36:12 +0100 <merijn> kuribas: https://github.com/merijn/Belewitte/tree/master/benchmark-analysis/src/Schema/Model
2020-11-17 13:36:15 +0100 <merijn> kuribas: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Schema/Model.hs#L71-L215
2020-11-17 13:36:50 +0100 <merijn> kuribas: You can skip the data migration and instead dispatch
2020-11-17 13:36:51 +0100 <kuribas> merijn: right, I could import the functions that haven't changed from the previous version...
2020-11-17 13:37:18 +0100 <merijn> kuribas: Whenever I change the schema, I copy the old schema into a new V<n> module and import it qualified, then call it
2020-11-17 13:37:41 +0100 <merijn> You get a lot of modules, but maintenance is a breeze (i.e. there is none :p)
2020-11-17 13:38:11 +0100 <kuribas> the only worry I have is that you'ld need to dig through different versions of the module to find the implementation...
2020-11-17 13:38:49 +0100danvet_(~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) (Quit: Leaving)
2020-11-17 13:39:14 +0100 <kuribas> for example I have sumNumbers :: [Double] -> Double which hasn't changed from V3 through V1, then I would need to look in V3, then V2, then V1...
2020-11-17 13:39:37 +0100 <kuribas> well I guess emacs or vscode where to find it...
2020-11-17 13:39:50 +0100Amras(~Amras@unaffiliated/amras0000)
2020-11-17 13:39:58 +0100 <kuribas> merijn: alright, I'll give it a try :)
2020-11-17 13:41:40 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-17 13:43:59 +0100 <Axman6> kuribas: have you seen what acid-state/the library it uses does?
2020-11-17 13:44:02 +0100Ariakenom(~Ariakenom@h-158-174-22-49.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2020-11-17 13:44:04 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Client Quit)
2020-11-17 13:44:54 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se)
2020-11-17 13:46:32 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 13:47:55 +0100 <kuribas> Axman6: yes, some time ago, I don't remember it that well.
2020-11-17 13:47:59 +0100 <kuribas> but I prefer a simple solution
2020-11-17 13:49:46 +0100 <merijn> safe-copy
2020-11-17 13:50:05 +0100 <merijn> Axman6: But that's basically the same scheme I proposed, but with TH
2020-11-17 13:50:56 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-17 13:56:18 +0100 <kuribas> I prefer boring haskell :)
2020-11-17 13:57:03 +0100Lord_of_Life_Lord_of_Life
2020-11-17 13:57:43 +0100raichoo(~raichoo@213.240.178.58) (Read error: Connection reset by peer)
2020-11-17 13:58:17 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th)
2020-11-17 13:59:09 +0100xff0x(~fox@2001:1a81:52d5:6a00:633e:9aec:a495:3349) (Ping timeout: 272 seconds)
2020-11-17 13:59:54 +0100xff0x(~fox@2001:1a81:52d5:6a00:7dc4:a65f:e69e:5679)
2020-11-17 13:59:59 +0100raichoo(~raichoo@213.240.178.58)
2020-11-17 14:00:34 +0100 <aplainzetakind> What do I need to do to make a local library available to a v2-style build environment (specifically asking for xmonad-contrib to build xmonad from the repo).
2020-11-17 14:01:38 +0100 <merijn> aplainzetakind: As in you have package A and B both locally, with A depending on the local copy of B?
2020-11-17 14:02:11 +0100 <aplainzetakind> Yes.
2020-11-17 14:02:33 +0100 <merijn> You'll want a cabal.project/cabal.project.local file
2020-11-17 14:02:35 +0100 <merijn> aplainzetakind: https://cabal.readthedocs.io/en/latest/nix-local-build.html#local-versus-external-packages
2020-11-17 14:02:37 +0100 <__monty__> aplainzetakind: I think you'll want to add a package stanza in cabal.project.
2020-11-17 14:02:45 +0100texasmynsted(~texasmyns@212.102.45.118)
2020-11-17 14:02:55 +0100 <aplainzetakind> Thanks.
2020-11-17 14:02:56 +0100 <merijn> https://cabal.readthedocs.io/en/latest/cabal-project.html#specifying-the-local-packages
2020-11-17 14:04:30 +0100urodna(~urodna@unaffiliated/urodna)
2020-11-17 14:05:39 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-17 14:05:40 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:5d4c:3718:c0a8:9f94)
2020-11-17 14:06:19 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-urdkltrndaedsfvo) (Quit: Connection closed for inactivity)
2020-11-17 14:08:53 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 265 seconds)
2020-11-17 14:09:07 +0100raichoo(~raichoo@213.240.178.58) (Read error: Connection reset by peer)
2020-11-17 14:09:21 +0100raichoo(~raichoo@213.240.178.58)
2020-11-17 14:10:52 +0100m0b10s(53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203)
2020-11-17 14:12:45 +0100supercoven(~Supercove@dsl-hkibng31-54fae2-107.dhcp.inet.fi) (Ping timeout: 240 seconds)
2020-11-17 14:14:11 +0100 <m0b10s> Hi, just one question, if i have a tuple and i need to take one element “index i” but i have difrent types on the tuple, is it possible to take the element índex x with just one function?
2020-11-17 14:19:18 +0100 <p0a> m0b10s: It should be, tuples don't need to have the same type
2020-11-17 14:19:25 +0100idhugo(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) (Ping timeout: 272 seconds)
2020-11-17 14:19:48 +0100 <p0a> m0b10s: for example, fst (1, 'a') ==> 1
2020-11-17 14:20:11 +0100 <merijn> No, I think he wants a numerical indexing to extract from a tuple
2020-11-17 14:20:19 +0100 <merijn> And the answer is "no, you can't write that"
2020-11-17 14:20:35 +0100 <hc> I think you can, with 'hacks'...
2020-11-17 14:20:35 +0100 <merijn> At least, not without a bunch of super ugly nightmarish extensions and mess
2020-11-17 14:20:52 +0100 <hc> like fun :: Int -> Tuple -> Maybe a
2020-11-17 14:21:05 +0100 <hc> where fun returns either a Just a or Nothing if the types don't match
2020-11-17 14:22:12 +0100 <dminuoso> % (1, 'a') ^. _2
2020-11-17 14:22:13 +0100 <yahb> dminuoso: 'a'
2020-11-17 14:22:14 +0100m0b10s(53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203) (Quit: Connection closed)
2020-11-17 14:22:19 +0100 <dminuoso> % (1, 123, "foobar") ^. _2
2020-11-17 14:22:19 +0100 <yahb> dminuoso: 123
2020-11-17 14:22:28 +0100 <dminuoso> % (1, "str, 123, 'a') ^. _2
2020-11-17 14:22:29 +0100 <yahb> dminuoso: ; <interactive>:159:26: error: lexical error in string/character literal at end of input
2020-11-17 14:22:31 +0100m0b10s(53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203)
2020-11-17 14:22:35 +0100 <dminuoso> % (1, "str", 123, 'a') ^. _2
2020-11-17 14:22:35 +0100 <yahb> dminuoso: "str"
2020-11-17 14:22:37 +0100 <dminuoso> m0b10s: This?
2020-11-17 14:23:37 +0100PacoV(~pcoves@16.194.31.93.rev.sfr.net)
2020-11-17 14:23:42 +0100 <PacoV> Hey again!
2020-11-17 14:24:04 +0100 <hc> % :t (^.)
2020-11-17 14:24:04 +0100 <yahb> hc: forall {s} {a}. s -> Getting a s a -> a
2020-11-17 14:24:16 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Read error: Connection reset by peer)
2020-11-17 14:24:19 +0100 <hc> dminuoso: this will fail hard when the types don't match?
2020-11-17 14:24:27 +0100 <hc> % (1, "str") ^. _1 == "foo"
2020-11-17 14:24:27 +0100 <yahb> hc: ; <interactive>:162:2: error:; * No instance for (Num [Char]) arising from the literal `1'; * In the expression: 1; In the first argument of `(^.)', namely `(1, "str")'; In the first argument of `(==)', namely `(1, "str") ^. _1'
2020-11-17 14:24:29 +0100 <hc> ah :)
2020-11-17 14:24:44 +0100 <m0b10s> diminuoso, it’s that, but in a funcion... i think the “maybe” type is what i’m looking for! =)
2020-11-17 14:24:54 +0100prez(~prez@unaffiliated/prez)
2020-11-17 14:24:57 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-11-17 14:24:58 +0100 <m0b10s> ty hc
2020-11-17 14:25:18 +0100 <PacoV> Thanks to you I was able to write http://ix.io/2EsV/haskell which is supposed to be a clean rewrite at my take in I18n of Hakyll that you can find here https://gitlab.com/swi18ng/swi18ng
2020-11-17 14:25:33 +0100 <dminuoso> m0b10s: well you can just
2020-11-17 14:25:41 +0100 <PacoV> Now, the real question : why is the new code failing on yaml parsing?
2020-11-17 14:25:42 +0100 <dminuoso> % getFirst = (^. _1)
2020-11-17 14:25:43 +0100 <yahb> dminuoso:
2020-11-17 14:25:46 +0100 <dminuoso> % :t getFirst -- m0b10s
2020-11-17 14:25:46 +0100 <yahb> dminuoso: forall {s} {b}. Field1 s s b b => s -> b
2020-11-17 14:25:52 +0100 <xerox_> curl ghcup ... Unknown architecture: arm64 ... aw :|
2020-11-17 14:25:56 +0100enoq(~textual@194-208-146-143.lampert.tv) (Ping timeout: 240 seconds)
2020-11-17 14:25:57 +0100 <dminuoso> Admittedly, the type is awkward, but it works!
2020-11-17 14:26:42 +0100LaserShark(~LaserShar@s91904426.blix.com)
2020-11-17 14:26:53 +0100 <dminuoso> hc: What do you mean "fail hard"?
2020-11-17 14:27:08 +0100 <p0a> will `data List = Null | List a (List b)' with your own (!!) for it work?
2020-11-17 14:27:13 +0100 <hc> m0b10s: have a look at https://hackage.haskell.org/package/vault , that's where i got the idea
2020-11-17 14:27:23 +0100 <maerwald> xerox_: wip
2020-11-17 14:27:28 +0100 <hc> dminuoso: I mean a run time error, I guess
2020-11-17 14:27:33 +0100 <dminuoso> p0a: If you implement a Field1 instance for it, sure
2020-11-17 14:27:42 +0100 <Orbstheorem> Hi o/ Why are ReaderT classes injective? I would like to run two Readers under the same monadstack.
2020-11-17 14:27:46 +0100 <xerox_> maerwald: makes sense :)
2020-11-17 14:27:49 +0100 <maerwald> xerox_: https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/12
2020-11-17 14:27:51 +0100 <dminuoso> Orbstheorem: Because newtypes are injective?
2020-11-17 14:28:37 +0100 <dminuoso> Orbstheorem: Is "injective" really the word you mean to use here?
2020-11-17 14:28:59 +0100 <dminuoso> In principle, you can run two ReaderT if you want, nothing prevents you from that.
2020-11-17 14:29:03 +0100enoq(~textual@194-208-146-143.lampert.tv)
2020-11-17 14:29:50 +0100 <prez> @free x :: (((a -> b) -> b) -> c) -> c
2020-11-17 14:29:50 +0100 <lambdabot> (forall q f1. (forall f2 f3. g . f2 = f3 . f => g (q f2) = f1 f3) => h (k q) = p f1) => h (x k) = x p
2020-11-17 14:30:02 +0100 <dminuoso> Orbstheorem: It's probably better to just use `ReaderT (e1, e2)` instead of multiple ReaderT though
2020-11-17 14:30:09 +0100 <Orbstheorem> dminuoso: Maybe injective is not the right word then. I see `MonadReader r m | m -> r` in the class definition.
2020-11-17 14:30:14 +0100 <dminuoso> That's a functional dependency
2020-11-17 14:30:22 +0100 <Orbstheorem> Oh, my bad.
2020-11-17 14:30:25 +0100 <dminuoso> Also note that MonadReader /= ReaderT
2020-11-17 14:30:34 +0100 <dminuoso> Albeit related, they are very much different things
2020-11-17 14:30:53 +0100 <Orbstheorem> Yes, I'm probably a bit distracted :(
2020-11-17 14:31:16 +0100 <dminuoso> Orbstheorem: Anyway. Use ReaderT with a tuple.
2020-11-17 14:31:23 +0100 <dminuoso> Or data if you have even more things
2020-11-17 14:31:27 +0100 <Orbstheorem> Anyways, I want to run `MonadReader Foo m` and `MonadReader Bar m` under the same monad stack.
2020-11-17 14:32:00 +0100 <dminuoso> data Env = Env { envA :: A, envB :: B, envC :: C }; newtype T a = T { runT :: ReaderT Env (...) }
2020-11-17 14:32:07 +0100 <dminuoso> Orbstheorem: ^- use that. either with data or (,)
2020-11-17 14:32:38 +0100 <dminuoso> You can mix that with lens/optics and classy lenses (or at least mimic it) for convenient access
2020-11-17 14:32:48 +0100 <dminuoso> say
2020-11-17 14:32:50 +0100 <p0a> m0b10s: right, so you can stack tuples like (1, ('a', ("b", ⊥))) and then write (!!) 0 (x,_) = x ; (!!) n (_, xs) = !! (n - 1) xs
2020-11-17 14:32:55 +0100 <reactormonk> If I have a Recursive and a Corecursive instance for my AST structure (with recursion-schemes) can I write a Traversal' lens with these?
2020-11-17 14:33:06 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:5d4c:3718:c0a8:9f94) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 14:33:37 +0100 <Orbstheorem> Maybe there's something I fail to see, but that would imply that my consumers need to be aware of the structure of `Env` instead of just its components.
2020-11-17 14:34:08 +0100Sanchayan(~Sanchayan@122.182.198.33)
2020-11-17 14:34:13 +0100 <dminuoso> Orbstheorem: It depends, either they need to be aware of Env, or you can use classy lenses (or something akin to them)
2020-11-17 14:34:17 +0100 <dminuoso> so say
2020-11-17 14:34:34 +0100 <dminuoso> % data Foo { _fooInt :: Int; _fooChar :: Char }
2020-11-17 14:34:34 +0100 <yahb> dminuoso: ; <interactive>:165:26: error: parse error on input `;'
2020-11-17 14:34:41 +0100 <dminuoso> % data Foo = Foo { _fooInt :: Int; _fooChar :: Char }
2020-11-17 14:34:41 +0100 <yahb> dminuoso: ; <interactive>:166:32: error: parse error on input `;'
2020-11-17 14:34:45 +0100Sanchayan(~Sanchayan@122.182.198.33) (Remote host closed the connection)
2020-11-17 14:34:52 +0100 <dminuoso> % data Foo = Foo { _fooInt :: Int, _fooChar :: Char }
2020-11-17 14:34:53 +0100 <yahb> dminuoso:
2020-11-17 14:34:58 +0100 <m0b10s> p0a, what would be the signature in that case?
2020-11-17 14:35:11 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-11-17 14:35:15 +0100brodie_(~brodie@207.53.253.137)
2020-11-17 14:35:35 +0100son0p(~son0p@181.136.122.143)
2020-11-17 14:35:42 +0100 <dminuoso> % $(makeLenses ''Foo)
2020-11-17 14:35:42 +0100 <yahb> dminuoso: ; <interactive>:173:3: error:; * Couldn't match type `[Dec]' with `Exp'; Expected type: ExpQ; Actual type: DecsQ; * In the expression: makeLenses ''Foo; In the untyped splice: $(makeLenses ''Foo)
2020-11-17 14:35:50 +0100brodie_brodie
2020-11-17 14:36:11 +0100 <dminuoso> Orbstheorem: err, see https://hackage.haskell.org/package/optics-th-0.3.0.2/docs/Optics-TH.html#v:makeClassy
2020-11-17 14:36:13 +0100 <Axman6> Orbstheorem: if you go the lens route, you end up with code that looks like: foo :: (HadFoo r, HasBar r, MonadReader r m) => m Thing, which you can then access (assuming you have used classy lenses) with do theFoo <- view foo; theBar <- view bar
2020-11-17 14:36:29 +0100 <p0a> m0b10s: oh yeah, of course that is the issue :) Sorry, my solution doesn't work
2020-11-17 14:36:46 +0100 <Orbstheorem> Axman6: Yes, that's what I feared.
2020-11-17 14:36:51 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-17 14:36:58 +0100 <dminuoso> Orbstheorem: You can mimic classy lenses without going all in on lenses.
2020-11-17 14:37:02 +0100 <dminuoso> Say by writing
2020-11-17 14:37:09 +0100brodie(~brodie@207.53.253.137) (Client Quit)
2020-11-17 14:37:16 +0100 <dminuoso> class HasFoo e where foo :: e -> Foo
2020-11-17 14:37:22 +0100 <dminuoso> class HasBar e where bar :: e -> Bar
2020-11-17 14:37:26 +0100 <Axman6> it's quite pleasant to use, because your code only declares what parts of the environment it needs to know about, and can't access anything it doesn't declare, meaning you know know more about what your code can do, and you don't need to define a data type which everything depends on
2020-11-17 14:37:27 +0100 <Orbstheorem> Yes, I've manually implemented it with `MonadReader a m, Convertible a Foo` in the past.
2020-11-17 14:37:34 +0100 <dminuoso> And then you can just write `do f <- asks foo`
2020-11-17 14:37:42 +0100 <dminuoso> No lens needed, same idea
2020-11-17 14:38:05 +0100 <Orbstheorem> Oh well.
2020-11-17 14:38:09 +0100 <Orbstheorem> Thanks ^^
2020-11-17 14:38:23 +0100 <Orbstheorem> I think I'll go the classy way just to learn lenses.
2020-11-17 14:38:48 +0100 <xerox_> maerwald: was it you that posted ghc-9.1.0.20201110-aarch-apple-darwin.tar.xz?
2020-11-17 14:39:08 +0100 <maerwald> posted?
2020-11-17 14:39:14 +0100m0b10s(53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203) (Quit: Connection closed)
2020-11-17 14:39:16 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 14:39:19 +0100 <xerox_> I forget who linked me to it
2020-11-17 14:39:24 +0100 <Axman6> in the mail
2020-11-17 14:39:27 +0100 <Axman6> :)
2020-11-17 14:39:41 +0100nbloomf(~nbloomf@76.217.43.73)
2020-11-17 14:39:54 +0100p0a(~user@unaffiliated/p0a) (Quit: bye)
2020-11-17 14:40:14 +0100 <Axman6> xerox_: could have been angerman or bgamari
2020-11-17 14:40:35 +0100 <xerox_> oh yeah angerman thanks
2020-11-17 14:40:39 +0100 <xerox_> I wonder how one uses it :)
2020-11-17 14:41:00 +0100 <angerman> xerox_: https://www.dropbox.com/s/jskw2pjpkhquj4g/ghc-9.1.0.20201110-aarch64-apple-darwin.tar.xz?dl=0
2020-11-17 14:41:11 +0100m0b10s(53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203)
2020-11-17 14:41:13 +0100 <xerox_> angerman: can I pm you?
2020-11-17 14:41:31 +0100 <prez> @free it :: Applicative f => f ((((a -> b) -> b) -> c) -> c)
2020-11-17 14:41:31 +0100 <lambdabot> Extra stuff at end of line
2020-11-17 14:41:32 +0100 <angerman> xerox_: unpack, ./configure --prefix=/path/to/install/in, make install
2020-11-17 14:42:01 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2020-11-17 14:42:11 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2020-11-17 14:42:18 +0100 <angerman> xerox_: how you'd use any other ghc binary distribution. You'll want to bootstrap cabal after that using that ghc to provision some usable environment. Do note though that 9.1 is an in-flight build.
2020-11-17 14:42:33 +0100 <xerox_> angerman: have been spoiled by ghcup
2020-11-17 14:43:03 +0100 <m0b10s> Don’t know if you got the message but:Thank you all for the help! I have some ideas, time to press keys =) (i got dc’d sry)
2020-11-17 14:43:16 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 240 seconds)
2020-11-17 14:43:16 +0100 <angerman> xerox_: it's really only meant as a PoC for a aarch64/darwin NCG build. A lot of packages will likely complain about bounds
2020-11-17 14:43:33 +0100m0b10s(53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203) (Client Quit)
2020-11-17 14:43:33 +0100 <xerox_> NCG standing for?
2020-11-17 14:43:39 +0100 <angerman> xerox_: if all you want is to use ghc on arm macs, you can just use x86_64/darwin builds. Rosetta does just fine.
2020-11-17 14:44:04 +0100 <xerox_> I see, native code generation, avoiding llvm now I remember
2020-11-17 14:44:06 +0100 <prez> @free it :: f ((((a -> b) -> b) -> c) -> c)
2020-11-17 14:44:06 +0100 <lambdabot> Extra stuff at end of line
2020-11-17 14:44:07 +0100 <angerman> xerox_: native code generator backend (as opposed to the llvm backend); the pretty much only benefit is that it's substantially faster.
2020-11-17 14:44:57 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-17 14:45:00 +0100m0b10s(53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203)
2020-11-17 14:45:18 +0100m0b10s(53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203) (Client Quit)
2020-11-17 14:48:31 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th)
2020-11-17 14:48:54 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds)
2020-11-17 14:50:11 +0100is_null(~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection)
2020-11-17 14:50:33 +0100nbloomf(~nbloomf@76.217.43.73) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 14:50:45 +0100fendor(~fendor@178.115.128.157.wireless.dyn.drei.com)
2020-11-17 14:51:05 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
2020-11-17 14:53:27 +0100LaserShark(~LaserShar@s91904426.blix.com) (Remote host closed the connection)
2020-11-17 14:55:11 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-17 14:55:30 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-11-17 14:56:00 +0100hackageghc-events 0.14.0 - Library and tool for parsing .eventlog files from GHC https://hackage.haskell.org/package/ghc-events-0.14.0 (MitsutoshiAoe)
2020-11-17 14:56:34 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 14:57:23 +0100Suigintou(~Suigintou@92.223.89.101)
2020-11-17 14:57:35 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2020-11-17 14:57:39 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-17 14:58:38 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-17 14:58:54 +0100christo(~chris@81.96.113.213)
2020-11-17 14:59:53 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 14:59:55 +0100 <xerox_> angerman: that was a good suggestion thanks
2020-11-17 15:00:17 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-17 15:02:24 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-11-17 15:04:07 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-17 15:05:31 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-17 15:10:00 +0100hackagerequire 0.4.10 - Scrap your qualified import clutter https://hackage.haskell.org/package/require-0.4.10 (NickSeagull)
2020-11-17 15:12:09 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-17 15:14:04 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 15:15:45 +0100enoq(~textual@194-208-146-143.lampert.tv) (Ping timeout: 240 seconds)
2020-11-17 15:17:19 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-17 15:18:36 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-11-17 15:18:48 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-17 15:18:55 +0100brodie(~brodie@207.53.253.137)
2020-11-17 15:21:03 +0100mlugg(c3c2162d@195.194.22.45)
2020-11-17 15:22:34 +0100Tario(~Tario@201.192.165.173)
2020-11-17 15:23:08 +0100 <mlugg> How does GHC flatten pattern matches (specifically, in case expressions) when converting to Core? Is there a neat algorithm for it?
2020-11-17 15:23:22 +0100acidjnk_new(~acidjnk@p200300d0c719ff874cf537f47d61e6af.dip0.t-ipconnect.de)
2020-11-17 15:23:36 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-11-17 15:25:24 +0100 <lortabac> mlugg: https://www.microsoft.com/en-us/research/uploads/prod/1987/01/slpj-book-1987-r90.pdf
2020-11-17 15:25:33 +0100 <lortabac> there is a chapter about pattern-matching
2020-11-17 15:25:37 +0100 <PacoV> Hey again.
2020-11-17 15:26:00 +0100 <PacoV> I need to use `toStrict` from bytestring.
2020-11-17 15:26:04 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-bqvxxtetbbtbyhwi) (Quit: Connection closed for inactivity)
2020-11-17 15:26:08 +0100 <PacoV> But also pandoc.
2020-11-17 15:26:23 +0100 <PacoV> Pandoc uses the 0.10 and toStrict is in 0.11
2020-11-17 15:26:34 +0100 <PacoV> How am I supposed to deal with that?
2020-11-17 15:26:41 +0100 <merijn> toStrict is in 0.10 too
2020-11-17 15:26:50 +0100 <merijn> 0.11 just exported it from another module
2020-11-17 15:27:11 +0100sebben(~sebastian@dslb-092-076-026-123.092.076.pools.vodafone-ip.de)
2020-11-17 15:27:18 +0100sebben(~sebastian@dslb-092-076-026-123.092.076.pools.vodafone-ip.de) (Client Quit)
2020-11-17 15:27:19 +0100 <PacoV> Module ‘Data.ByteString.Char8’ does not export ‘toStrict’
2020-11-17 15:27:22 +0100 <PacoV> Said ghc.
2020-11-17 15:27:25 +0100 <merijn> iirc, toStrict/fromStrict are only exported from Data.ByteString.Lazy before 0.11 and as of 0.11 also from Data.ByteString
2020-11-17 15:27:43 +0100 <merijn> PacoV: Because you're importing it from the wrong module
2020-11-17 15:27:45 +0100 <mlugg> lortabac: Ah thanks, much appreciated
2020-11-17 15:27:52 +0100 <merijn> Also https://github.com/quchen/articles/blob/master/fbut.md#bytestringchar8-is-bad
2020-11-17 15:29:40 +0100 <PacoV> I'd use whatever you want. But telling someone who's new to Haskell that something is bad won't help.
2020-11-17 15:30:15 +0100 <PacoV> Well, for this one, the article tells what to do.
2020-11-17 15:30:19 +0100 <PacoV> So, my bad.
2020-11-17 15:30:25 +0100 <merijn> :p
2020-11-17 15:30:57 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds)
2020-11-17 15:32:29 +0100 <merijn> Even if you decide you want to just ignore errors going via Text and "decodeUtf8With" is better, because you at least get to *pick* how to ignore them (i.e. replace with unicode "missing character", silently drop, replace with something else
2020-11-17 15:32:33 +0100 <merijn> )
2020-11-17 15:34:29 +0100enoq(~textual@194-208-146-143.lampert.tv)
2020-11-17 15:35:31 +0100hackagecriterion 1.5.9.0 - Robust, reliable performance measurement and analysis https://hackage.haskell.org/package/criterion-1.5.9.0 (ryanglscott)
2020-11-17 15:38:50 +0100darjeeling_(~darjeelin@122.245.208.31) (Ping timeout: 260 seconds)
2020-11-17 15:39:27 +0100 <PacoV> I'll follow you article as soon as
2020-11-17 15:39:36 +0100 <PacoV> I'll follow you article as soon as I understand it.
2020-11-17 15:39:42 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-17 15:40:18 +0100 <merijn> PacoV: How familiar are you with the difference between "unicode" and "encodings representing unicode"?
2020-11-17 15:42:56 +0100 <PacoV> Not familiar at all at the moment :-/
2020-11-17 15:43:39 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds)
2020-11-17 15:43:43 +0100 <merijn> PacoV: Ah, then you probably will want to read this (which applies to basically all programming languages): https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely…
2020-11-17 15:45:32 +0100mr_yogurt(~mr_yogurt@5.61.211.35.bc.googleusercontent.com) (Ping timeout: 256 seconds)
2020-11-17 15:46:13 +0100 <PacoV> Ho, I remember reading this a while ago.
2020-11-17 15:46:21 +0100 <PacoV> I'll give it a second read.
2020-11-17 15:46:30 +0100 <PacoV> Thanks!
2020-11-17 15:46:47 +0100 <PacoV> BTW, my code works like a charm!
2020-11-17 15:47:34 +0100mlugg(c3c2162d@195.194.22.45) (Ping timeout: 245 seconds)
2020-11-17 15:47:35 +0100 <PacoV> Time to go buy some food before my better half comes back and I'll read those two articles! Thanks again!
2020-11-17 15:49:16 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-17 15:51:18 +0100 <int-e> . o O ( "works like a charm" -- if you believe in it strongly enough, under the right circumstances, after a ritual sacrifice )
2020-11-17 15:52:32 +0100mr_yogurt(~mr_yogurt@5.61.211.35.bc.googleusercontent.com)
2020-11-17 15:52:50 +0100darjeeling_(~darjeelin@122.245.211.11)
2020-11-17 15:52:56 +0100 <hekkaidekapus> merijn: You are apparently on a roll, carry on over at <https://github.com/haskell/haskell-language-server/pull/602>.
2020-11-17 15:53:21 +0100 <merijn> ...
2020-11-17 15:53:38 +0100 <hekkaidekapus> heh
2020-11-17 15:53:46 +0100bjobjo(~bjobjo@2a01:79c:cebf:d688::9e6) (Read error: Connection reset by peer)
2020-11-17 15:53:49 +0100 <fendor> hekkaidekapus, did I do it wrong?
2020-11-17 15:53:58 +0100 <merijn> fendor: Well, yes
2020-11-17 15:54:00 +0100bjobjo(~bjobjo@2a01:79c:cebf:d688::9e6)
2020-11-17 15:54:10 +0100 <fendor> welp, I tried
2020-11-17 15:54:33 +0100 <hekkaidekapus> fendor: Sorry, I’m short on time. But merijn will take care of you :)
2020-11-17 15:54:36 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-17 15:54:38 +0100 <merijn> with-utf8 is a terrible package that makes me wanna stab people
2020-11-17 15:54:54 +0100 <fendor> it was recommended on that reddit thread >_>
2020-11-17 15:55:19 +0100 <merijn> Yes, because the internet is filled with clueless people >.>
2020-11-17 15:55:19 +0100 <int-e> stabbing, hmm, does it have lenses?
2020-11-17 15:55:44 +0100 <merijn> fendor: The problem is there is a no-win scenario
2020-11-17 15:56:07 +0100 <int-e> locales are a terrible idea
2020-11-17 15:56:22 +0100 <merijn> fendor: Basically, *some* systems have broken environments/configurations were the encoding isn't specified, then causes GHC to open handles with the wrong encoding leading to encoding errors
2020-11-17 15:56:50 +0100 <fendor> right, so far I understood it
2020-11-17 15:57:01 +0100 <merijn> fendor: The problem with "always UTF-8" is that it intentionally breaks for everyone who has a properly configured system with encoding different than utf-8
2020-11-17 15:57:05 +0100 <int-e> for files, the encoding should be part of the file, not implicit in the environment
2020-11-17 15:57:42 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-17 15:58:13 +0100 <int-e> merijn: there is no such thing :P
2020-11-17 15:58:23 +0100 <merijn> fendor: So if someone in Japan is using a UTF-16 (or UTF-32) configuration system wide or something, then you are now unable to open their files, because they're not UTF-8, but you're overriding the environment
2020-11-17 15:58:33 +0100 <fendor> and in this case, the error is more likely that the encoding of the stdout handle is wrong and it should suffice to explicitly set it, right?
2020-11-17 15:58:41 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:95c1:f982:82e4:2d79)
2020-11-17 15:58:43 +0100 <merijn> int-e: "encodings should be part of the file" <- sure, agreed, but that's not the world we live in
2020-11-17 15:59:04 +0100 <merijn> "intentionally breaking a feature that has existed for over 30 years to control this" is not the right solution
2020-11-17 15:59:24 +0100 <merijn> fendor: Well, but how do you know what encoding the terminal connected to stdout expects?
2020-11-17 15:59:37 +0100brodie(~brodie@207.53.253.137) (Quit: brodie)
2020-11-17 15:59:54 +0100 <merijn> fendor: You can set stdout to UTF-8 and write stuff to it, but if the terminal connected to stdout doesn't *expect* utf-8, you're outputting garbage
2020-11-17 16:00:01 +0100Suigintou(~Suigintou@92.223.89.101) ()
2020-11-17 16:00:12 +0100 <fendor> right.
2020-11-17 16:00:51 +0100brodie(~brodie@207.53.253.137)
2020-11-17 16:01:00 +0100 <merijn> The only standard way to figure out what the terminal expects is to check the locale, which is what GHC does to figure out the right encoding
2020-11-17 16:01:21 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-17 16:01:32 +0100 <int-e> I'd be okay with the locale specifying what happens on terminals... it even makes sense. But AFAICS it tends to be used for everything else as well, including files that may be transferred between systems, and that makes it a huge mess unless everybody agrees on the same encoding.
2020-11-17 16:01:34 +0100 <fendor> so, this is a user error that the user needs to fix?
2020-11-17 16:01:53 +0100christo(~chris@81.96.113.213)
2020-11-17 16:02:10 +0100 <merijn> There was a related discussion on GHC gitlab, lemme look it up
2020-11-17 16:02:26 +0100vicfred(~vicfred@unaffiliated/vicfred) (Max SendQ exceeded)
2020-11-17 16:02:44 +0100 <merijn> How do I search for tickets I commented on on gitlab?
2020-11-17 16:02:51 +0100jollygood2(~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2020-11-17 16:02:56 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-17 16:03:06 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds)
2020-11-17 16:03:12 +0100renzhi(~renzhi@2607:fa49:655f:e600::28da)
2020-11-17 16:04:06 +0100vicfred(~vicfred@unaffiliated/vicfred) (Max SendQ exceeded)
2020-11-17 16:04:08 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-11-17 16:04:37 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-17 16:05:02 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-17 16:05:21 +0100 <merijn> fendor: Related discussion: https://gitlab.haskell.org/ghc/ghc/-/issues/17755
2020-11-17 16:05:46 +0100 <merijn> fendor: In essence the problem is that the use has his/her locale unset and/or set to the 'C' locale, which errors on non-ascii
2020-11-17 16:06:19 +0100 <fendor> merijn, thanks will read it later!
2020-11-17 16:06:21 +0100SanchayanMaity(~Sanchayan@106.201.35.233)
2020-11-17 16:07:34 +0100 <merijn> fendor: As for the issue you reference in the PR that is a cursed problem anyway
2020-11-17 16:07:36 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-17 16:08:00 +0100hackagehttp-client 0.7.3 - An HTTP client engine https://hackage.haskell.org/package/http-client-0.7.3 (MichaelSnoyman)
2020-11-17 16:08:13 +0100 <merijn> fendor: The problem there is "can't open a file with an umlaut in the path" and I can already tell you know it's *impossible* to correctly and robustly fix/avoid this problem
2020-11-17 16:08:26 +0100 <fendor> merijn, you make me sad :(
2020-11-17 16:08:37 +0100 <fendor> thanks for the explanation! I have a better understanding now!
2020-11-17 16:08:47 +0100 <merijn> fendor: Linux (possibly all of posix) has made the retarded choice to say paths are "unspecified bytes not containg NUL or /"
2020-11-17 16:09:01 +0100hackagehttp-client-openssl 0.3.3 - http-client backend using the OpenSSL library. https://hackage.haskell.org/package/http-client-openssl-0.3.3 (MichaelSnoyman)
2020-11-17 16:09:15 +0100 <merijn> fendor: Since there is no encoding information in the filesystem/file API you have no clue what encoding was used to create the file
2020-11-17 16:09:42 +0100SanchayanMaity(~Sanchayan@106.201.35.233) (Client Quit)
2020-11-17 16:09:44 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 272 seconds)
2020-11-17 16:09:51 +0100 <merijn> And even if you know that the file was created with UTF-8 and you are using UTF-8 you *still* can't reliably open it
2020-11-17 16:10:01 +0100SanchayanMaity(~Sanchayan@106.201.35.233)
2020-11-17 16:10:17 +0100 <merijn> Because ü has (at least?) two representations. As a single codepoint and as a composed codepoint
2020-11-17 16:10:31 +0100 <merijn> And the produced byte encoding in UTF-8 is different for those two
2020-11-17 16:10:59 +0100 <merijn> So depending on *how* the user types in ü you may get different byte sequence and thus non-existent paths
2020-11-17 16:11:02 +0100 <merijn> Fun times!
2020-11-17 16:11:12 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th)
2020-11-17 16:11:55 +0100 <merijn> Windows was much smarter in specifying NTFS paths to be UTF-16 with a defined normalisation scheme, so you can unambiguously know how to access paths with unicode characters
2020-11-17 16:13:11 +0100 <merijn> fendor: Making people sad is what I do. People tell me what they wanna do in the POSIX API and then I spend 10 minutes telling them they're fundamentally doomed because everything is terrible :)
2020-11-17 16:14:38 +0100 <__monty__> Fun fact, linux and macOS tend to default to opposite normalization schemes for filenames, lots of fun to be had with rsync between those systems.
2020-11-17 16:16:17 +0100Lycurgus(~niemand@cpe-45-46-134-163.buffalo.res.rr.com)
2020-11-17 16:16:25 +0100darjeeling_(~darjeelin@122.245.211.11) (Ping timeout: 264 seconds)
2020-11-17 16:16:29 +0100brodie(~brodie@207.53.253.137) (Quit: brodie)
2020-11-17 16:18:33 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 256 seconds)
2020-11-17 16:18:55 +0100 <nut> I have an English dictionary file encoded as utf8. There's also an index file giving the offset for each word. If I use Data.Text.IO to read in the dicionary, how can I make use of the offset info for an efficient lookup?
2020-11-17 16:18:58 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2020-11-17 16:20:06 +0100 <merijn> nut: offset in *what*
2020-11-17 16:20:21 +0100 <nut> offset in the dictionary
2020-11-17 16:20:47 +0100 <nut> so that when people do lookup, they dont' have to pass the dictionary again and again
2020-11-17 16:20:49 +0100 <Lycurgus> likely byte offset in a flat file
2020-11-17 16:20:52 +0100 <merijn> offset in what? bytes? unicode codepoints? characters? lines?
2020-11-17 16:20:57 +0100 <nut> bytes
2020-11-17 16:21:23 +0100 <merijn> You can't really index Text in terms of bytes
2020-11-17 16:21:49 +0100 <nut> ah, then it could be character, let me check
2020-11-17 16:21:50 +0100 <merijn> You can read it as ByteString, do byte indexing on that, then selectively decode text starting from an offset
2020-11-17 16:22:02 +0100 <merijn> nut: If it's character you're doomed too :)
2020-11-17 16:22:05 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-17 16:22:07 +0100 <dolio> Once it's in Text all the offsets could be wrong anyway.
2020-11-17 16:23:12 +0100 <nut> so for a Data.Text string, there's no way to move some kind of pointer within the string right?
2020-11-17 16:23:35 +0100 <merijn> nut: You can index Text "by codepoint", maybe
2020-11-17 16:24:08 +0100Entertainment(~entertain@104.246.132.210)
2020-11-17 16:24:22 +0100 <nut> so basically fseek equivalent
2020-11-17 16:24:38 +0100 <merijn> nut: The real, honest answer is that: in every single programming language indexing strings is a broken clusterfuck you cannot rely on to do anything sensible (even though it may appear to do something sensible if you only ever look at ascii)
2020-11-17 16:25:19 +0100conal(~conal@64.71.133.70)
2020-11-17 16:25:22 +0100nados(~dan@69-165-210-185.cable.teksavvy.com)
2020-11-17 16:25:41 +0100 <nut> The offset idea does seem efficient. Without it, how do Haskell manage quick lookup?
2020-11-17 16:26:02 +0100SanchayanMaity(~Sanchayan@106.201.35.233) (Quit: leaving)
2020-11-17 16:26:20 +0100 <merijn> nut: Like I said, if the offset is in bytes you can easily read a bytestring and index that and then decode to Text "on demand"
2020-11-17 16:26:21 +0100SanchayanMaity(~Sanchayan@106.201.35.233)
2020-11-17 16:26:34 +0100 <nut> ok I see
2020-11-17 16:26:46 +0100 <nut> So i'll use the bytestring package instead of text
2020-11-17 16:26:54 +0100Deide(~Deide@217.155.19.23)
2020-11-17 16:26:59 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-17 16:27:02 +0100conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2020-11-17 16:27:15 +0100is_null(~jpic@pdpc/supporter/professional/is-null)
2020-11-17 16:27:27 +0100 <nut> You gave me the hint to use text instead of bytestring a few hours ago before i went to the dentist
2020-11-17 16:27:28 +0100 <merijn> nut: More practically for a deictionary I'd just read in the entire thing and create a Map
2020-11-17 16:27:35 +0100SanchayanMaity(~Sanchayan@106.201.35.233) (Client Quit)
2020-11-17 16:27:45 +0100conal(~conal@64.71.133.70)
2020-11-17 16:27:50 +0100SanchayanMaity(~Sanchayan@106.201.35.233)
2020-11-17 16:28:27 +0100 <nut> merijn: that would mean in memory lookup
2020-11-17 16:28:39 +0100 <nut> merijn: How would you then serialize the thing?
2020-11-17 16:28:55 +0100SanchayanMaity(~Sanchayan@106.201.35.233) (Client Quit)
2020-11-17 16:29:03 +0100da39a3ee5e6b4b0d(~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 265 seconds)
2020-11-17 16:29:12 +0100SanchayanMaity(~Sanchayan@106.201.35.233)
2020-11-17 16:29:38 +0100 <merijn> nut: I'd just write the entire thing to disk at once and read it in at once
2020-11-17 16:30:06 +0100 <merijn> Rather than dynamically indexing an open file. You *can* dynamically index the file, but that doesn't seem worth it unless it's truly massive
2020-11-17 16:30:56 +0100 <nut> Most dictionary files I;ve seem have some sofisticated file formate
2020-11-17 16:31:04 +0100Guest_85(5181d645@host81-129-214-69.range81-129.btcentralplus.com)
2020-11-17 16:31:22 +0100 <nut> Such as the stardcit file formate or dictd.org
2020-11-17 16:31:57 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-asjzblgwwtdcvjsz)
2020-11-17 16:32:18 +0100 <nut> It's not massive, a few hundred M only. But I want to find out for the sake of learning
2020-11-17 16:32:23 +0100 <merijn> nut: Ah, but *that* sounds more like a different question, that sounds like "how would I parse complicated/sophisticated file formats into something usable?"
2020-11-17 16:33:25 +0100 <nut> Those file formats are design to have less disk access times and at the same time quick search time
2020-11-17 16:33:53 +0100 <merijn> @hoogle hSeek
2020-11-17 16:33:53 +0100 <lambdabot> System.IO hSeek :: Handle -> SeekMode -> Integer -> IO ()
2020-11-17 16:33:53 +0100 <lambdabot> GHC.IO.Handle hSeek :: Handle -> SeekMode -> Integer -> IO ()
2020-11-17 16:33:53 +0100 <lambdabot> UnliftIO.IO hSeek :: MonadIO m => Handle -> SeekMode -> Integer -> m ()
2020-11-17 16:33:55 +0100 <merijn> @hoogle hGet
2020-11-17 16:33:55 +0100 <lambdabot> Data.ByteString hGet :: Handle -> Int -> IO ByteString
2020-11-17 16:33:55 +0100 <lambdabot> Data.ByteString.Char8 hGet :: Handle -> Int -> IO ByteString
2020-11-17 16:33:55 +0100 <lambdabot> Data.ByteString.Lazy hGet :: Handle -> Int -> IO ByteString
2020-11-17 16:34:18 +0100SanchayanMaity(~Sanchayan@106.201.35.233) (Quit: leaving)
2020-11-17 16:34:22 +0100 <nut> Indeed, at first I though there would be a Data.Text.hSeek
2020-11-17 16:34:30 +0100darjeeling_(~darjeelin@122.245.211.11)
2020-11-17 16:34:36 +0100 <merijn> nut: If you open a file Handle you can use hSeek to jump to offsets to read bytes from there in the file, the same way you would in other languages
2020-11-17 16:34:38 +0100SanchayanMaity(~Sanchayan@106.201.35.233)
2020-11-17 16:34:39 +0100toorevitimirp(~tooreviti@117.182.180.118) (Remote host closed the connection)
2020-11-17 16:34:57 +0100morbeus(vhamalai@gateway/shell/tkk.fi/x-sygopmpjleahuvxk) (Remote host closed the connection)
2020-11-17 16:34:59 +0100 <merijn> nut: You might also be interested in:
2020-11-17 16:35:01 +0100 <merijn> @hackage binary
2020-11-17 16:35:01 +0100 <lambdabot> https://hackage.haskell.org/package/binary
2020-11-17 16:35:19 +0100 <merijn> nut: Which is a library for decoding ByteString into custom data
2020-11-17 16:35:39 +0100 <merijn> @hackage attoparsec
2020-11-17 16:35:39 +0100 <lambdabot> https://hackage.haskell.org/package/attoparsec
2020-11-17 16:36:28 +0100 <dolio> You can just use the hSeek from base. Text doesn't need to provide its own.
2020-11-17 16:36:52 +0100 <merijn> dolio: Of course hSeek and then trying to read a String is *also* cursed :p
2020-11-17 16:37:08 +0100 <nut> There is no hSeek from base
2020-11-17 16:37:18 +0100 <merijn> System.IO.hSeek ?
2020-11-17 16:37:24 +0100 <nut> at least not from Prelude
2020-11-17 16:37:45 +0100 <dolio> Prelude doesn't export everything in base.
2020-11-17 16:37:48 +0100 <nut> i see
2020-11-17 16:39:17 +0100SanchayanMaity(~Sanchayan@106.201.35.233) (Client Quit)
2020-11-17 16:39:28 +0100 <merijn> Prelude only exports a fraction of base :)
2020-11-17 16:39:28 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Read error: Connection timed out)
2020-11-17 16:43:22 +0100ericsagn1(~ericsagne@2405:6580:0:5100:d6bc:df2c:ba38:451b) (Ping timeout: 260 seconds)
2020-11-17 16:44:15 +0100Guest_85(5181d645@host81-129-214-69.range81-129.btcentralplus.com) (Remote host closed the connection)
2020-11-17 16:44:30 +0100hackagehedn 0.3.0.2 - EDN parsing and encoding https://hackage.haskell.org/package/hedn-0.3.0.2 (AlexanderBondarenko)
2020-11-17 16:44:49 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 16:45:17 +0100idhugo(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net)
2020-11-17 16:46:37 +0100MarcelineVQ(~anja@198.254.202.72) (Ping timeout: 260 seconds)
2020-11-17 16:48:16 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-17 16:50:09 +0100MarcelineVQ(~anja@198.254.202.72)
2020-11-17 16:51:33 +0100Franciman(~francesco@host-82-56-223-169.retail.telecomitalia.it) (Quit: Leaving)
2020-11-17 16:53:15 +0100 <tomjaguarpaw> merijn: Compact regions didn't help with my GC problem in the end because I realised my test cases are also generating large amounts of data! However, I did manage to combine your System.Mem.performGC and GHC.Stats suggestions with RTS options to good effect: https://stackoverflow.com/a/64878595/997606
2020-11-17 16:54:25 +0100knupfer(~Thunderbi@i59F7FFD9.versanet.de)
2020-11-17 16:55:24 +0100ericsagn1(~ericsagne@2405:6580:0:5100:9c16:5b76:e160:ad6d)
2020-11-17 16:55:41 +0100jfredett(~jfredett@178.162.212.214)
2020-11-17 16:56:34 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-11-17 16:56:46 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-17 16:57:14 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-17 16:58:51 +0100zebrag(~inkbottle@aaubervilliers-654-1-89-20.w86-212.abo.wanadoo.fr)
2020-11-17 17:00:03 +0100carlomagno1(~cararell@148.87.23.11)
2020-11-17 17:00:03 +0100carlomagno(~cararell@148.87.23.10) (Remote host closed the connection)
2020-11-17 17:00:26 +0100Rudd0(~Rudd0@185.189.115.98)
2020-11-17 17:02:23 +0100 <merijn> tomjaguarpaw: Well, to be fair,if your code is producing lots of data, then perhaps including it in your benchmarks isn't so wrong :p
2020-11-17 17:04:41 +0100nuncanada(~dude@179.235.160.168)
2020-11-17 17:05:01 +0100christo(~chris@81.96.113.213)
2020-11-17 17:05:12 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-11-17 17:05:38 +0100asthasr(~asthasr@162.210.29.120)
2020-11-17 17:07:30 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2020-11-17 17:07:40 +0100christo_(~chris@81.96.113.213)
2020-11-17 17:07:42 +0100christo(~chris@81.96.113.213) (Read error: Connection reset by peer)
2020-11-17 17:08:16 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-11-17 17:08:49 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-17 17:09:16 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds)
2020-11-17 17:10:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2020-11-17 17:10:21 +0100christo_(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-17 17:10:47 +0100acidjnk_new(~acidjnk@p200300d0c719ff874cf537f47d61e6af.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-17 17:11:07 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-17 17:11:41 +0100hseg(~gesh@185.120.126.113)
2020-11-17 17:13:16 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 17:13:35 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds)
2020-11-17 17:13:39 +0100Tario(~Tario@201.192.165.173)
2020-11-17 17:14:25 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-17 17:15:13 +0100nineonine(~textual@S01061cabc0b095f3.vf.shawcable.net)
2020-11-17 17:16:14 +0100conal(~conal@64.71.133.70)
2020-11-17 17:16:39 +0100nineonine(~textual@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
2020-11-17 17:17:23 +0100royal_screwup219(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-17 17:26:09 +0100bitmagie(~Thunderbi@200116b80683a800c96883fdde0ec4cc.dip.versatel-1u1.de)
2020-11-17 17:28:10 +0100hseg(~gesh@185.120.126.113) ("WeeChat 2.9")
2020-11-17 17:28:31 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-11-17 17:29:48 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-17 17:32:47 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-17 17:33:51 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-17 17:34:14 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-17 17:34:41 +0100bitmagie(~Thunderbi@200116b80683a800c96883fdde0ec4cc.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-17 17:35:40 +0100Sose__(sid429738@gateway/web/irccloud.com/x-vdewfreqbfmetfxe)
2020-11-17 17:36:45 +0100Sose__Sose
2020-11-17 17:39:30 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-17 17:39:52 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-17 17:40:55 +0100 <tomjaguarpaw> Yes, but I want to benchmark the algorithm more than the code.
2020-11-17 17:41:46 +0100 <sshine> CI/GitHub Actions question: I have a bunch of individual Haskell projects in the same repo. I'd like if they shared cache since they all use the same stack resolver. right now actions/cache@v2 uses key: ${{ matrix.resolver }}-${{ hashFiles('projects/*/package.yaml') }}, which means that if any one project file changes, the cache is invalidated for all exercises.
2020-11-17 17:43:22 +0100 <sshine> wait, never mind. :)
2020-11-17 17:43:29 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2020-11-17 17:43:58 +0100Lycurgus(~niemand@cpe-45-46-134-163.buffalo.res.rr.com) (Quit: Exeunt)
2020-11-17 17:43:59 +0100incertia(~incertia@d60-65-215-180.col.wideopenwest.com) (Ping timeout: 272 seconds)
2020-11-17 17:46:29 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)
2020-11-17 17:47:54 +0100incertia(~incertia@d60-65-215-180.col.wideopenwest.com)
2020-11-17 17:50:07 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-11-17 17:51:02 +0100nineonine(~textual@S01061cabc0b095f3.vf.shawcable.net)
2020-11-17 17:52:20 +0100idhugo(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) (Remote host closed the connection)
2020-11-17 17:52:24 +0100 <davean> tomjaguarpaw: The amount of data produced is a core part of the alhorithm, but you can try to seperate your code's inefficiency out.
2020-11-17 17:52:37 +0100 <davean> tomjaguarpaw: the limiting factor on many, if not most, algs though is their memory usage.
2020-11-17 17:52:46 +0100idhugo(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net)
2020-11-17 17:53:33 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-17 17:55:23 +0100codeAlways(uid272474@gateway/web/irccloud.com/x-twiappljqzzzwfyb)
2020-11-17 17:55:23 +0100v_m_v_(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a)
2020-11-17 17:56:00 +0100j12866(~j12866@cpe-45-47-128-180.nycap.res.rr.com)
2020-11-17 17:56:14 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-17 17:56:16 +0100nineonine(~textual@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds)
2020-11-17 17:58:20 +0100Chi1thangoo(~Chi1thang@87.112.60.168)
2020-11-17 17:59:23 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-11-17 18:01:08 +0100conal(~conal@64.71.133.70)
2020-11-17 18:02:19 +0100borne(~fritjof@200116b8641c82003b6e7a122d52ed4c.dip.versatel-1u1.de) (Quit: WeeChat 2.9)
2020-11-17 18:05:41 +0100sszark(~sszark@h-213-180.A392.priv.bahnhof.se)
2020-11-17 18:05:55 +0100lucasb(uid333435@gateway/web/irccloud.com/x-gwvbkmucegxpihno)
2020-11-17 18:06:07 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-eaonyjbsdauymoqz)
2020-11-17 18:06:12 +0100valdyn(~valdyn@host-88-217-143-53.customer.m-online.net) (Ping timeout: 265 seconds)
2020-11-17 18:06:22 +0100raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-11-17 18:11:22 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-17 18:12:25 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2020-11-17 18:16:29 +0100crdrost(~crdrost@2601:646:8280:85f0:7445:34ce:4342:d2eb)
2020-11-17 18:18:37 +0100 <sszark> how do i install a package with cabal from github?
2020-11-17 18:19:04 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-11-17 18:19:47 +0100 <merijn> sszark: "It Depends", are we talking "I wanna install an executable", "I want to develop against an unreleased dependency", or "I wanna install it to make accessible everywhere on my system"?
2020-11-17 18:19:49 +0100Hanma[m](hanmamatri@gateway/shell/matrix.org/x-okkoowimutlrlfkb)
2020-11-17 18:20:01 +0100hackagemicrolens-th 0.4.3.8 - Automatic generation of record lenses for microlens https://hackage.haskell.org/package/microlens-th-0.4.3.8 (Artyom)
2020-11-17 18:21:55 +0100 <sszark> merijn: i'm trying to install the git version of this. and yes, i would like it to be accessible globally. https://github.com/xmonad/xmonad-contrib
2020-11-17 18:22:17 +0100 <merijn> And you have cabal-install >3.0?
2020-11-17 18:23:36 +0100 <sszark> I have 3.2 merijn
2020-11-17 18:24:36 +0100 <merijn> sszark: Then the answer is "there's no real easy way to do that". But according to that repo's readme you need to use git version of xmonad too, in which case you can go into your git clone of xmonad and create a cabal.project file using: https://cabal.readthedocs.io/en/latest/cabal-project.html#specifying-packages-from-remote-version-…
2020-11-17 18:26:48 +0100 <sszark> Ah, i'll have a look. thanks merijn
2020-11-17 18:28:56 +0100 <geekosaur> the ideal way to do it is to set up a project which uses an environment, and use a build script that references the environment so you don't have to install globally. I think there's an example in the xmonad-testing repo
2020-11-17 18:29:35 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 272 seconds)
2020-11-17 18:31:36 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-17 18:32:49 +0100j12866(~j12866@cpe-45-47-128-180.nycap.res.rr.com) (Quit: WeeChat 2.8)
2020-11-17 18:33:20 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 18:36:10 +0100incertia(~incertia@d60-65-215-180.col.wideopenwest.com) (Ping timeout: 265 seconds)
2020-11-17 18:37:53 +0100enoq(~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com)
2020-11-17 18:38:18 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-17 18:39:15 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-17 18:40:24 +0100ggole(~ggole@2001:8003:8119:7200:c9ed:f9f6:bc08:34bd) (Quit: Leaving)
2020-11-17 18:41:30 +0100hackagengx-export-tools-extra 0.5.8.0 - More extra tools for Nginx haskell module https://hackage.haskell.org/package/ngx-export-tools-extra-0.5.8.0 (lyokha)
2020-11-17 18:42:55 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-17 18:44:03 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Remote host closed the connection)
2020-11-17 18:44:22 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-17 18:44:24 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Read error: Connection reset by peer)
2020-11-17 18:44:26 +0100royal_screwup219(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-17 18:44:34 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-17 18:44:42 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-17 18:44:44 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Read error: Connection reset by peer)
2020-11-17 18:45:04 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-17 18:45:05 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Read error: Connection reset by peer)
2020-11-17 18:45:23 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-17 18:45:25 +0100Yumasi(~guillaume@2a01cb09b06b29ead46a3aeadfb0149b.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-11-17 18:45:26 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Remote host closed the connection)
2020-11-17 18:45:46 +0100stackdimes(~stackdime@85.203.46.103)
2020-11-17 18:46:26 +0100royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-17 18:47:21 +0100juuandyy(~juuandyy@90.166.144.65)
2020-11-17 18:48:16 +0100dusty_pacer(~pi@2600:6c50:80:2f4a:e9d0:6569:1cea:d1d4) (Remote host closed the connection)
2020-11-17 18:48:16 +0100dustypacer(~pi@137-025-112-171.res.spectrum.com) (Remote host closed the connection)
2020-11-17 18:48:43 +0100juuandyy(~juuandyy@90.166.144.65) (Client Quit)
2020-11-17 18:48:46 +0100sdrodge(~sdrodge@unaffiliated/sdrodge) (Ping timeout: 260 seconds)
2020-11-17 18:48:56 +0100juuandyy(~juuandyy@90.166.144.65)
2020-11-17 18:50:57 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 18:52:19 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-17 18:52:27 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-11-17 18:53:31 +0100idhugo(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) (Quit: Leaving)
2020-11-17 18:54:13 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-17 18:55:00 +0100hackageeasy-args 0.1.0 - Parses command line arguments https://hackage.haskell.org/package/easy-args-0.1.0 (jlamothe)
2020-11-17 18:55:18 +0100klardotsh(~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net) (Ping timeout: 260 seconds)
2020-11-17 19:00:01 +0100jfredett(~jfredett@178.162.212.214) ()
2020-11-17 19:00:30 +0100knupfer1(~Thunderbi@200116b8248c3e001dd00f63aeb782c8.dip.versatel-1u1.de)
2020-11-17 19:00:30 +0100knupfer(~Thunderbi@i59F7FFD9.versanet.de) (Read error: Connection reset by peer)
2020-11-17 19:00:31 +0100knupfer1knupfer
2020-11-17 19:01:00 +0100knupfer(~Thunderbi@200116b8248c3e001dd00f63aeb782c8.dip.versatel-1u1.de) (Read error: Connection reset by peer)
2020-11-17 19:01:10 +0100knupfer(~Thunderbi@200116b8248c3e001cba42276e90907c.dip.versatel-1u1.de)
2020-11-17 19:02:55 +0100klardotsh(~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net)
2020-11-17 19:03:28 +0100carlomagno1(~cararell@148.87.23.11) (Remote host closed the connection)
2020-11-17 19:07:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2020-11-17 19:07:42 +0100 <koz_> :t fromIntegral
2020-11-17 19:07:43 +0100 <lambdabot> (Integral a, Num b) => a -> b
2020-11-17 19:08:08 +0100dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2020-11-17 19:09:25 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
2020-11-17 19:10:15 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 256 seconds)
2020-11-17 19:10:42 +0100 <monochrom> Don't forget that realToFrac covers many other cases. (And also overlaps with fromIntegral for some cases, e.g., Int -> Integer, Int -> Double)
2020-11-17 19:14:33 +0100xff0x(~fox@2001:1a81:52d5:6a00:7dc4:a65f:e69e:5679) (Ping timeout: 272 seconds)
2020-11-17 19:16:08 +0100xff0x(~fox@2001:1a81:52d5:6a00:7dc4:a65f:e69e:5679)
2020-11-17 19:18:03 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-17 19:18:28 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-11-17 19:19:31 +0100carlomagno(~cararell@148.87.23.11)
2020-11-17 19:20:16 +0100kuribas(~user@ptr-25vy0ia86bt3ifa9hy0.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-11-17 19:21:02 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-17 19:21:58 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-17 19:22:31 +0100howdoi(uid224@gateway/web/irccloud.com/x-hhaciizupxxisicz)
2020-11-17 19:26:20 +0100dead10cc(~rg@2607:fea8:2c40:307:7a35:e25c:842c:6c52)
2020-11-17 19:29:27 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-17 19:29:37 +0100knupfer(~Thunderbi@200116b8248c3e001cba42276e90907c.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-17 19:30:18 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 260 seconds)
2020-11-17 19:30:38 +0100Kaiepi(~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2020-11-17 19:31:56 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-11-17 19:32:44 +0100v_m_v_(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Remote host closed the connection)
2020-11-17 19:32:48 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-17 19:36:01 +0100hackagehaskoin-core 0.17.3 - Bitcoin & Bitcoin Cash library for Haskell https://hackage.haskell.org/package/haskoin-core-0.17.3 (jprupp)
2020-11-17 19:37:10 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-17 19:40:05 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-17 19:40:14 +0100 <merijn> Anyone know if cabal files allow conditional blocks on the top level? it seems not
2020-11-17 19:41:19 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-11-17 19:41:34 +0100 <Uniaika> never saw such a thing, but doesn't mean it cannot
2020-11-17 19:42:29 +0100 <merijn> ah, rats
2020-11-17 19:42:32 +0100 <merijn> "Conditional blocks may appear anywhere inside a library or executable section."
2020-11-17 19:42:54 +0100 <merijn> I've been hosed by own abuse of data-files!
2020-11-17 19:43:14 +0100dead10cc(~rg@2607:fea8:2c40:307:7a35:e25c:842c:6c52) (Ping timeout: 264 seconds)
2020-11-17 19:44:06 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 256 seconds)
2020-11-17 19:44:21 +0100 <merijn> I had symlinks to files relative to my project, which works with cabal v2-run, but sadly borks the install command it seems >.>
2020-11-17 19:45:08 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com)
2020-11-17 19:50:31 +0100hackagehaskoin-node 0.17.1 - P2P library for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-node-0.17.1 (jprupp)
2020-11-17 19:51:46 +0100conal(~conal@64.71.133.70)
2020-11-17 19:52:46 +0100stackdimes(~stackdime@85.203.46.103) (Quit: WeeChat 2.9)
2020-11-17 19:53:29 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 19:54:26 +0100foursaph(~sergiu@dynamic-077-008-009-052.77.8.pool.telefonica.de)
2020-11-17 19:54:42 +0100dead10cc(~rg@2607:fea8:2c40:307:1703:4aa6:d428:f7e7)
2020-11-17 19:54:42 +0100chaosmasttter(~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-17 19:55:45 +0100 <merijn> Anyone happen to have an "ancient" cabal-install lyying around? (i.e. pre 3.0)
2020-11-17 19:55:52 +0100doitux|mob(~doitux|mo@195.206.169.184)
2020-11-17 19:55:58 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 260 seconds)
2020-11-17 19:56:38 +0100 <monochrom> ghcup knows 2.4.1.0
2020-11-17 19:56:56 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com)
2020-11-17 19:57:04 +0100 <tomjaguarpaw> I have 2.2.0.0. Debian stable user!
2020-11-17 19:57:14 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-17 19:57:15 +0100 <merijn> monochrom: I don't have ghcup :p
2020-11-17 19:57:18 +0100 <monochrom> I can send you a copy, but I think you would trust ghcup more than trust me
2020-11-17 19:57:37 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2020-11-17 19:57:39 +0100 <monochrom> Ah, ghcup just downloads it from some haskell.org URL, I can isolate that.
2020-11-17 19:57:40 +0100 <merijn> monochrom: That was more of a "and is willing to quickly test something trivial for me" kinda question :p
2020-11-17 19:58:00 +0100hackagehakyll-images 1.0.0 - Hakyll utilities to work with images https://hackage.haskell.org/package/hakyll-images-1.0.0 (LaurentRDC)
2020-11-17 19:58:10 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-17 19:58:12 +0100 <monochrom> pretty sure the cost of communicating what to test > the cost of testing it yourself
2020-11-17 19:58:15 +0100 <tomjaguarpaw> merijn: Sure
2020-11-17 19:58:35 +0100 <merijn> tomjaguarpaw: If you add a line "data-files: foo/*" to any cabal file you have where foo is non-empty, does it error out?
2020-11-17 19:59:06 +0100 <tomjaguarpaw> With what command? v2-build, say?
2020-11-17 19:59:13 +0100 <merijn> anything, tbh
2020-11-17 19:59:24 +0100 <monochrom> https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-li…
2020-11-17 19:59:29 +0100 <merijn> The question is whether the cabal format allows that at all
2020-11-17 19:59:35 +0100 <merijn> monochrom: Nice, but I don't use linux ;)
2020-11-17 19:59:47 +0100 <merijn> At least not when I can help it :p
2020-11-17 20:00:24 +0100tomjaguarpawis surprised to learn that cabal version 2 doesn't support v2- prefixes
2020-11-17 20:00:25 +0100 <monochrom> I think mac would be https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-apple-darw…
2020-11-17 20:00:48 +0100 <merijn> tomjaguarpaw: Those were added in 2.4 I think, before then it was new-
2020-11-17 20:00:49 +0100 <tomjaguarpaw> merijn: It doesn't error out before erroring out about broken packages ...
2020-11-17 20:00:58 +0100 <merijn> hmm
2020-11-17 20:01:02 +0100 <tomjaguarpaw> Ah yes, I remember now
2020-11-17 20:01:13 +0100 <merijn> Cursed documentation disagreeing with reality
2020-11-17 20:01:46 +0100 <tomjaguarpaw> And new-build seems to be progressing fine
2020-11-17 20:02:11 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-17 20:02:52 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-11-17 20:02:55 +0100 <merijn> This is against the claims of the documentation...sadness
2020-11-17 20:03:13 +0100 <tomjaguarpaw> What does the documentation say?
2020-11-17 20:03:19 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
2020-11-17 20:03:20 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-17 20:03:21 +0100berberman_(~berberman@unaffiliated/berberman)
2020-11-17 20:03:43 +0100 <tomjaguarpaw> Oh, cabal sdist /does/ error
2020-11-17 20:03:47 +0100 <merijn> You can have wildcards without extension at all
2020-11-17 20:03:52 +0100 <merijn> s/can/can't
2020-11-17 20:04:09 +0100 <monochrom> "If a wildcard is used, it must be used with an extension, so data-files: data/* is not allowed."
2020-11-17 20:04:11 +0100 <tomjaguarpaw> cabal: invalid file glob 'foo/*'. Wildcards '*' are only allowed in place of
2020-11-17 20:04:11 +0100 <tomjaguarpaw> the file name, not in the directory name or file extension. If a wildcard is
2020-11-17 20:04:11 +0100 <tomjaguarpaw> used it must be with an file extension.
2020-11-17 20:04:26 +0100 <tomjaguarpaw> (but with cabal sdist only, cabal new-build doesn't show the error)
2020-11-17 20:04:54 +0100 <monochrom> Oh, generally a lot of these rules are unenforced until sdist
2020-11-17 20:05:28 +0100 <merijn> ah, cabal check also complains about it
2020-11-17 20:05:37 +0100 <monochrom> Another one is if you forget your other-modules: field, you only get bitten when sdist decides to not include your source code.
2020-11-17 20:06:06 +0100 <merijn> monochrom: That's why haskell-ci only tests via sdist+unpack
2020-11-17 20:06:44 +0100 <sclv> i thought the new warn home modules stuff warns about missing other modules nowadays
2020-11-17 20:07:03 +0100 <sclv> its all part of the messy legacy of how cabal relies in part on ghc's module discovery instead of doing its own entirely
2020-11-17 20:07:07 +0100 <merijn> sclv: You have to use a ghc that's new enough
2020-11-17 20:07:25 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Quit: Leaving)
2020-11-17 20:10:20 +0100foursaph(~sergiu@dynamic-077-008-009-052.77.8.pool.telefonica.de) (Quit: leaving)
2020-11-17 20:11:13 +0100 <merijn> Fortunately, I don't have to care about properly packaging this code, so who cares :p
2020-11-17 20:13:42 +0100 <merijn> All problems can be solved by caring less and lowering your standards! Whoo! \o/
2020-11-17 20:13:56 +0100 <monochrom> :)
2020-11-17 20:14:21 +0100 <monochrom> Will you also be using "cabal install" down the road? Because that's another time data-files: really counts.
2020-11-17 20:14:41 +0100 <merijn> monochrom: Well, that's actually were I ran into it not working
2020-11-17 20:14:45 +0100 <monochrom> But if not, if you're just going "cabal run", I think you're set.
2020-11-17 20:14:49 +0100 <merijn> monochrom: But I have a simple life hack
2020-11-17 20:15:00 +0100 <merijn> monochrom: Just don't list the data files at all!
2020-11-17 20:15:36 +0100 <merijn> I only need them for some codepaths I don't care about now anyway
2020-11-17 20:15:44 +0100 <monochrom> I wonder how hard it is to enlist "*.dat *.txt *.bin"
2020-11-17 20:16:05 +0100 <merijn> monochrom: they're symlinks :p
2020-11-17 20:16:43 +0100 <monochrom> OK I begin to fathom how much you meant "abuse" now.
2020-11-17 20:17:28 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 256 seconds)
2020-11-17 20:18:51 +0100 <merijn> monochrom: I have a make based build system that ends up calling cabal, but the Haskell code needs access to C++ build artifacts, so I have relative symlinks in data-files that point to the right executables/objects :p
2020-11-17 20:19:10 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se)
2020-11-17 20:19:27 +0100chaosmasttter(~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de)
2020-11-17 20:19:50 +0100monochromcries
2020-11-17 20:19:59 +0100 <monochrom> This makes baby jesus cry.
2020-11-17 20:20:35 +0100 <merijn> monochrom: It's simple, don't ever try to install or sdist :)
2020-11-17 20:21:05 +0100spatchkaa(~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Ping timeout: 240 seconds)
2020-11-17 20:21:10 +0100nuncanada(~dude@179.235.160.168) (Read error: Connection reset by peer)
2020-11-17 20:22:36 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-17 20:22:41 +0100 <merijn> monochrom: If people want robuster packaging that works beyond "clone the repo and run make" they should spend more funding on engineering in academia :p
2020-11-17 20:23:13 +0100 <monochrom> You already have a makefile so I suppose it is not a stretch to add "make install" and script its Turing-complete behaviour to your heart's content.
2020-11-17 20:23:32 +0100 <merijn> monochrom: Ah, see I have a simpler solution
2020-11-17 20:23:34 +0100 <monochrom> and even "make run"
2020-11-17 20:23:44 +0100 <merijn> monochrom: "just don't allow installs"
2020-11-17 20:23:57 +0100 <monochrom> BTW why symlinks, why not hardlinks?
2020-11-17 20:24:16 +0100 <merijn> monochrom: That doesn't work across git clones
2020-11-17 20:24:21 +0100 <monochrom> Oh darn
2020-11-17 20:24:28 +0100 <merijn> monochrom: Since the symlinks are in VCS, the build artifacts aren't
2020-11-17 20:24:46 +0100britva(~britva@2a02:aa13:7240:2980:7da5:a1a0:c038:90b4)
2020-11-17 20:24:52 +0100 <monochrom> I guess this is what people mean by "sweet spot"
2020-11-17 20:24:55 +0100 <merijn> monochrom: Actually, my actual solution is much more genius/maddening/depressing than make run :p
2020-11-17 20:25:06 +0100 <monochrom> Actually make it Pareto optimum hahaha
2020-11-17 20:25:22 +0100 <merijn> monochrom: I have differently named symlinks to 1 script: https://github.com/merijn/Belewitte/blob/master/cabal-run.sh
2020-11-17 20:25:45 +0100 <merijn> monochrom: Which use make to find the right directory/executables, then invokes cabal v2-run based on the name of the symlink :p
2020-11-17 20:25:47 +0100 <monochrom> "any tiny pertubation from this seemingly awkward arrangement, you would be actually worse off"
2020-11-17 20:25:58 +0100servo(servo@41.141.56.25)
2020-11-17 20:26:15 +0100carlomagno(~cararell@148.87.23.11) (Quit: Leaving.)
2020-11-17 20:26:21 +0100 <merijn> monochrom: "organically grown" :p
2020-11-17 20:26:31 +0100foursaph_(~foursaph@dynamic-077-008-009-052.77.8.pool.telefonica.de)
2020-11-17 20:27:16 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
2020-11-17 20:27:17 +0100 <monochrom> I have understood the trick of arg[0]-dependent behaviour for a long time. That one isn't too bad.
2020-11-17 20:27:24 +0100 <merijn> monochrom: tbh, aside from the fact the cabal/data-files interaction with make is insane it's stunningly robust.
2020-11-17 20:27:59 +0100 <servo> hi
2020-11-17 20:28:21 +0100 <merijn> monochrom: I've have cloned this repo to 7+ machines macOS & linux and it works flawlessly each time if the small handful of prerequisites (mostly GHC, cabal, gmake and a non-ancient clang/gcc) are installed
2020-11-17 20:28:47 +0100christo(~chris@81.96.113.213)
2020-11-17 20:29:22 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-17 20:29:23 +0100 <merijn> monochrom: I had to somehow turn it into something that my promotor can robustly check out and run without needing to know anything about Haskell besides "download these binaries here" and in the sense it's worked :p
2020-11-17 20:30:02 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 20:30:04 +0100foursaph_(~foursaph@dynamic-077-008-009-052.77.8.pool.telefonica.de) (Client Quit)
2020-11-17 20:30:19 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Read error: Connection reset by peer)
2020-11-17 20:31:47 +0100acidjnk_new(~acidjnk@p200300d0c719ff874cf537f47d61e6af.dip0.t-ipconnect.de)
2020-11-17 20:32:21 +0100Takumo(takumo@unaffiliated/takumokatekari) (Quit: WeeChat 2.8)
2020-11-17 20:33:20 +0100nuncanada(~dude@179.235.160.168)
2020-11-17 20:34:04 +0100foursaph(4d080934@dynamic-077-008-009-052.77.8.pool.telefonica.de)
2020-11-17 20:34:12 +0100foursaph(4d080934@dynamic-077-008-009-052.77.8.pool.telefonica.de) (Remote host closed the connection)
2020-11-17 20:34:25 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-17 20:34:38 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-17 20:35:14 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-17 20:35:43 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2020-11-17 20:36:35 +0100Guest92179(~ericb2@185.204.1.185) (Remote host closed the connection)
2020-11-17 20:37:43 +0100 <tomjaguarpaw> What is a promotor?
2020-11-17 20:38:43 +0100son0p(~son0p@181.136.122.143) (Quit: leaving)
2020-11-17 20:38:45 +0100 <tomsmeding> phd thesis adviser?
2020-11-17 20:38:50 +0100 <merijn> tomjaguarpaw: As in doctoral supervisor
2020-11-17 20:40:34 +0100 <tomjaguarpaw> Aha
2020-11-17 20:42:01 +0100hackagehaskoin-store 0.38.2 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.38.2 (jprupp)
2020-11-17 20:43:00 +0100hackagearxiv 0.0.2 - A client for the Arxiv API https://hackage.haskell.org/package/arxiv-0.0.2 (TobiasSchoofs)
2020-11-17 20:43:30 +0100st8less(~st8less@2603:a060:11fd:0:68fe:5aed:dd91:2111)
2020-11-17 20:46:35 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 20:46:38 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 20:47:36 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-17 20:48:53 +0100v_m_v_(~vm_v@31-10-157-87.cgn.dynamic.upc.ch)
2020-11-17 20:49:15 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-17 20:50:07 +0100ericsagn1(~ericsagne@2405:6580:0:5100:9c16:5b76:e160:ad6d) (Ping timeout: 260 seconds)
2020-11-17 20:50:53 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2020-11-17 20:51:55 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-17 20:52:06 +0100nineonine(~textual@50.216.62.2)
2020-11-17 20:52:49 +0100conal(~conal@64.71.133.70)
2020-11-17 20:55:50 +0100dead10cc(~rg@2607:fea8:2c40:307:1703:4aa6:d428:f7e7) (Ping timeout: 264 seconds)
2020-11-17 20:56:44 +0100kaeru(~kaeru@185.163.110.116)
2020-11-17 20:58:24 +0100spatchkaa(~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
2020-11-17 20:58:25 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-11-17 21:01:46 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds)
2020-11-17 21:02:11 +0100ericsagn1(~ericsagne@2405:6580:0:5100:94c2:72b2:8a99:7096)
2020-11-17 21:03:34 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 21:04:31 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-17 21:04:35 +0100raichoo(~raichoo@dslb-178-009-065-096.178.009.pools.vodafone-ip.de)
2020-11-17 21:07:18 +0100dead10cc(~rg@2607:fea8:2c40:307:78ba:7ae3:3565:1092)
2020-11-17 21:08:36 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-11-17 21:12:47 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-17 21:12:48 +0100v_m_v_(~vm_v@31-10-157-87.cgn.dynamic.upc.ch) (Remote host closed the connection)
2020-11-17 21:14:25 +0100servo(servo@41.141.56.25) (Ping timeout: 240 seconds)
2020-11-17 21:15:50 +0100v_m_v_(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a)
2020-11-17 21:15:51 +0100ntqz(ntqz@75.175.141.156)
2020-11-17 21:17:28 +0100bgamari_(~bgamari@2001:470:e438::1)
2020-11-17 21:18:27 +0100doitux|mob(~doitux|mo@195.206.169.184) (Remote host closed the connection)
2020-11-17 21:18:41 +0100dead10cc(~rg@2607:fea8:2c40:307:78ba:7ae3:3565:1092) ("Konversation terminated!")
2020-11-17 21:19:19 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 21:21:46 +0100pavonia(~user@unaffiliated/siracusa)
2020-11-17 21:23:36 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-17 21:26:40 +0100Franciman(~francesco@host-82-56-223-169.retail.telecomitalia.it)
2020-11-17 21:28:01 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-17 21:29:45 +0100jamestmartin(~james@jtmar.me) (Quit: ZNC 1.8.1+deb1 - https://znc.in)
2020-11-17 21:30:27 +0100nados(~dan@69-165-210-185.cable.teksavvy.com) (Remote host closed the connection)
2020-11-17 21:30:51 +0100nados(~dan@69-165-210-185.cable.teksavvy.com)
2020-11-17 21:30:55 +0100knupfer(~Thunderbi@200116b8248c3e000ccc3cfffed69552.dip.versatel-1u1.de)
2020-11-17 21:30:55 +0100knupfer(~Thunderbi@200116b8248c3e000ccc3cfffed69552.dip.versatel-1u1.de) (Client Quit)
2020-11-17 21:31:13 +0100knupfer(~Thunderbi@200116b8248c3e00587246ff6e545e09.dip.versatel-1u1.de)
2020-11-17 21:31:29 +0100u0_a298(~user@47.206.148.226)
2020-11-17 21:32:51 +0100Alex1(~Alex@185.163.110.116)
2020-11-17 21:33:03 +0100v_m_v_(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Remote host closed the connection)
2020-11-17 21:34:18 +0100jamestmartin(james@jtmar.me)
2020-11-17 21:35:23 +0100vacm(~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-17 21:36:46 +0100zephyz(~zephyz@4e69715d.skybroadband.com)
2020-11-17 21:36:55 +0100jamestmartin(james@jtmar.me) (Client Quit)
2020-11-17 21:37:11 +0100jamestmartin(james@jtmar.me)
2020-11-17 21:40:03 +0100sdx23(~sdx23@unaffiliated/sdx23)
2020-11-17 21:41:13 +0100britva(~britva@2a02:aa13:7240:2980:7da5:a1a0:c038:90b4) (Quit: This computer has gone to sleep)
2020-11-17 21:42:37 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-17 21:43:23 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2020-11-17 21:43:57 +0100 <nut> why do people derive Generic?
2020-11-17 21:44:25 +0100jamestmartin(james@jtmar.me) (Quit: ZNC 1.8.2+deb1 - https://znc.in)
2020-11-17 21:44:41 +0100jamestmartin(~james@jtmar.me)
2020-11-17 21:45:03 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-17 21:45:08 +0100 <merijn> Because handwriting sucks? :p
2020-11-17 21:45:42 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-17 21:46:13 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-17 21:46:14 +0100 <nut> I see this after deriving Generic: instance NFData Implementation
2020-11-17 21:46:31 +0100 <nut> is it related to this instance? for the data Implementation
2020-11-17 21:46:50 +0100 <nut> I mean Generic and NFData instance, are they related?
2020-11-17 21:47:08 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit)
2020-11-17 21:47:54 +0100 <nut> The data 'Implementation', is just a normal algebraic type without fancy data entries
2020-11-17 21:48:08 +0100jamestmartin(~james@jtmar.me) (Client Quit)
2020-11-17 21:48:24 +0100jamestmartin(james@jtmar.me)
2020-11-17 21:48:34 +0100 <tomjaguarpaw> If the NFData instance doesn't have a body then yes, I guess it is filled in with defaults from Generic.
2020-11-17 21:49:22 +0100knupfer(~Thunderbi@200116b8248c3e00587246ff6e545e09.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-17 21:49:40 +0100jamestmartin(james@jtmar.me) (Client Quit)
2020-11-17 21:49:56 +0100jamestmartin(~james@jtmar.me)
2020-11-17 21:50:08 +0100 <nut> I see, tomjaguarpaw , indeed it doens't have a body
2020-11-17 21:50:18 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 260 seconds)
2020-11-17 21:51:08 +0100jamestmartin(~james@jtmar.me) (Client Quit)
2020-11-17 21:51:09 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-11-17 21:51:19 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-17 21:51:25 +0100jamestmartin(~james@jtmar.me)
2020-11-17 21:51:42 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:217f:16b3:ceaa:d387) (Ping timeout: 260 seconds)
2020-11-17 21:53:17 +0100 <tomjaguarpaw> It will be filled in the with default implementation you see at http://hackage.haskell.org/package/deepseq-1.4.4.0/docs/Control-DeepSeq.html#v:rnf (the one with Generic in the signature)
2020-11-17 21:55:30 +0100conal(~conal@64.71.133.70)
2020-11-17 21:55:30 +0100u0_a298(~user@47.206.148.226) (Read error: Connection reset by peer)
2020-11-17 21:55:31 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-17 21:55:45 +0100u0_a298(~user@47.206.148.226)
2020-11-17 21:56:04 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-17 21:56:16 +0100ntqz(ntqz@75.175.141.156) (Remote host closed the connection)
2020-11-17 21:59:28 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-17 22:00:01 +0100Alex1(~Alex@185.163.110.116) ()
2020-11-17 22:02:38 +0100jamestmartin(~james@jtmar.me) (Quit: ZNC 1.8.2+deb1 - https://znc.in)
2020-11-17 22:02:54 +0100jamestmartin(james@jtmar.me)
2020-11-17 22:04:36 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 240 seconds)
2020-11-17 22:06:21 +0100vacm(~vacwm@70.23.92.191)
2020-11-17 22:07:31 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-17 22:09:57 +0100knupfer(~Thunderbi@i59F7FFD9.versanet.de)
2020-11-17 22:12:01 +0100u0_a298(~user@47.206.148.226) (Remote host closed the connection)
2020-11-17 22:12:28 +0100u0_a298(~user@47.206.148.226)
2020-11-17 22:12:29 +0100mirrorbird(~psutcliff@89.40.182.158)
2020-11-17 22:14:37 +0100chaosmasttter(~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-11-17 22:14:37 +0100u0_a298(~user@47.206.148.226) (Read error: Connection reset by peer)
2020-11-17 22:14:45 +0100abrar(~abrar@static-108-30-103-121.nycmny.fios.verizon.net)
2020-11-17 22:14:54 +0100u0_a298(~user@47.206.148.226)
2020-11-17 22:16:56 +0100u0_a298(~user@47.206.148.226) (Read error: Connection reset by peer)
2020-11-17 22:17:02 +0100abrar(~abrar@static-108-30-103-121.nycmny.fios.verizon.net) (Client Quit)
2020-11-17 22:17:14 +0100u0_a298(~user@47.206.148.226)
2020-11-17 22:18:30 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 265 seconds)
2020-11-17 22:19:06 +0100dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
2020-11-17 22:19:45 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2020-11-17 22:19:55 +0100Tario(~Tario@201.192.165.173)
2020-11-17 22:21:56 +0100u0_a298(~user@47.206.148.226) (Read error: Connection reset by peer)
2020-11-17 22:21:56 +0100havenwood1(~havenwood@185.204.1.185)
2020-11-17 22:22:13 +0100u0_a298(~user@47.206.148.226)
2020-11-17 22:24:51 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-17 22:28:28 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 272 seconds)
2020-11-17 22:28:43 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-17 22:29:03 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-17 22:34:54 +0100crdrost(~crdrost@2601:646:8280:85f0:7445:34ce:4342:d2eb) (Quit: This computer has gone to sleep)
2020-11-17 22:36:04 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-11-17 22:36:23 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-17 22:38:28 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-11-17 22:38:29 +0100u0_a298(~user@47.206.148.226) (Read error: Connection reset by peer)
2020-11-17 22:38:50 +0100u0_a298(~user@47.206.148.226)
2020-11-17 22:38:57 +0100sdrodge(~sdrodge@unaffiliated/sdrodge)
2020-11-17 22:39:13 +0100mirrorbird(~psutcliff@89.40.182.158) (Ping timeout: 264 seconds)
2020-11-17 22:39:17 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-17 22:40:13 +0100abrar(~abrar@static-108-30-103-121.nycmny.fios.verizon.net)
2020-11-17 22:40:14 +0100bgamari_(~bgamari@2001:470:e438::1) (Ping timeout: 264 seconds)
2020-11-17 22:40:16 +0100bgamari(~bgamari@72.65.101.76)
2020-11-17 22:40:24 +0100conal(~conal@64.71.133.70)
2020-11-17 22:40:24 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-17 22:40:32 +0100nuncanada(~dude@179.235.160.168) (Read error: Connection reset by peer)
2020-11-17 22:40:34 +0100abrar(~abrar@static-108-30-103-121.nycmny.fios.verizon.net) (Client Quit)
2020-11-17 22:40:50 +0100conal(~conal@64.71.133.70)
2020-11-17 22:41:11 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-17 22:42:08 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2020-11-17 22:42:20 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2020-11-17 22:44:36 +0100 <koz_> You can use derived Generic instances to autoderive a bunch of things, including NFData. There's also Hashable and Binary, as well as the aeson type classes that come to mind.
2020-11-17 22:47:21 +0100u0_a298(~user@47.206.148.226) (Read error: Connection reset by peer)
2020-11-17 22:47:45 +0100u0_a298(~user@47.206.148.226)
2020-11-17 22:49:18 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-17 22:49:27 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
2020-11-17 22:50:03 +0100 <koz_> :t (*>)
2020-11-17 22:50:06 +0100 <lambdabot> Applicative f => f a -> f b -> f b
2020-11-17 22:50:14 +0100 <koz_> :t ($>)
2020-11-17 22:50:16 +0100 <lambdabot> error:
2020-11-17 22:50:16 +0100 <lambdabot> • Variable not in scope: $>
2020-11-17 22:50:16 +0100 <lambdabot> • Perhaps you meant one of these:
2020-11-17 22:50:24 +0100 <koz_> % :t ($>)
2020-11-17 22:50:24 +0100 <yahb> koz_: forall {f :: * -> *} {a} {b}. Functor f => f a -> b -> f b
2020-11-17 22:54:19 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Ping timeout: 272 seconds)
2020-11-17 22:55:31 +0100tdhttt(~tdhttt@2600:8802:2203:2500:24c4:3660:b516:981e) (Remote host closed the connection)
2020-11-17 22:55:32 +0100zephyz(~zephyz@4e69715d.skybroadband.com) (Read error: Connection reset by peer)
2020-11-17 22:55:32 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-17 22:57:29 +0100Tario(~Tario@201.192.165.173)
2020-11-17 22:57:30 +0100knupfer(~Thunderbi@i59F7FFD9.versanet.de) (Ping timeout: 260 seconds)
2020-11-17 22:58:32 +0100rprije(~rprije@124.148.131.132)
2020-11-17 22:59:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-17 23:00:36 +0100nuncanada(~dude@179.235.160.168)
2020-11-17 23:02:19 +0100alp(~alp@2a01:e0a:58b:4920:ac08:1079:c3a9:84b6)
2020-11-17 23:04:29 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com)
2020-11-17 23:05:43 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-11-17 23:06:01 +0100hackagej 0.2.1.0 - J in Haskell https://hackage.haskell.org/package/j-0.2.1.0 (vmchale)
2020-11-17 23:06:59 +0100 <unclechu> hey, consider this piece of code: `data SBackend (β ∷ Backend (α ∷ Operation))`. `β` is “type”, `Backend α` is “kind” but `Operation` called here?
2020-11-17 23:08:03 +0100 <unclechu> s/but/but what/
2020-11-17 23:08:20 +0100 <Cale> It depends on what the type of Backend is
2020-11-17 23:08:22 +0100 <monochrom> also kind
2020-11-17 23:08:46 +0100 <Cale> Oh, yeah, I suppose regardless, it must be a kind
2020-11-17 23:08:47 +0100 <edwardk> TypeInType made types and kinds basically the same thing
2020-11-17 23:08:50 +0100 <unclechu> “kind of kind”?
2020-11-17 23:09:25 +0100conal(~conal@64.71.133.70)
2020-11-17 23:09:31 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2020-11-17 23:09:58 +0100falafel(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-17 23:10:37 +0100 <monochrom> Very simply, if "Foo :: Bar" is legal, and you have no problem with saying that Foo is a type, then you have no problem saying that Bar is a kind.
2020-11-17 23:10:39 +0100 <edwardk> but since types have a few more things they can be than kinds do it is worth keeping the distinction. that being a kind of kind is actually picks up the limitations on kinds, so its just a kind.
2020-11-17 23:10:54 +0100iqubic(~user@2601:602:9500:4870:3952:b8cb:aec4:a935)
2020-11-17 23:10:57 +0100 <edwardk> monochrom++
2020-11-17 23:11:00 +0100 <unclechu> Cale: it depends on a constructors, isn’t it? e.g. `β → SBackend (Backend 'Render)`
2020-11-17 23:11:03 +0100raichoo(~raichoo@dslb-178-009-065-096.178.009.pools.vodafone-ip.de) (Quit: Lost terminal)
2020-11-17 23:11:37 +0100 <Orbstheorem> Hello o/ How do I add `etc` as a dependency with flag `yaml` to my package.yaml?
2020-11-17 23:11:53 +0100 <edwardk> unclechu: it doesn't need to have constructors you could always leave a variable free to quantify over Operations, even if there are none
2020-11-17 23:12:16 +0100 <unclechu> monochrom: but `Foo` in that context is not “type” but “kind”
2020-11-17 23:12:50 +0100codeAlways(uid272474@gateway/web/irccloud.com/x-twiappljqzzzwfyb) (Quit: Connection closed for inactivity)
2020-11-17 23:12:56 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 240 seconds)
2020-11-17 23:13:11 +0100 <edwardk> unclechu: TypeInType made it possible to use types as kinds, the distinction is mostly eliminated, like i said
2020-11-17 23:13:50 +0100 <monochrom> α is a type (specifically a type parameter), and "α ∷ Operation", so Operation is a kind.
2020-11-17 23:15:25 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2020-11-17 23:16:20 +0100 <monochrom> Well I guess you're really asking what if Foo::Bar in which Foo is already at the kind level. Then what edwardk said. If Foo is a kind then Bar is a kind too.
2020-11-17 23:17:30 +0100 <monochrom> In Agda it would be that Bar is one level above Foo. In GHC those levels are all merged.
2020-11-17 23:18:04 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2020-11-17 23:18:41 +0100crdrost(~crdrost@c-98-207-102-156.hsd1.ca.comcast.net)
2020-11-17 23:20:17 +0100u0_a298(~user@47.206.148.226) (Ping timeout: 272 seconds)
2020-11-17 23:20:34 +0100 <Cale> unclechu: What's the kind of Backend?
2020-11-17 23:21:48 +0100 <dolio> Well, that would probably not be the perspective in Agda. Arguably the 'term vs. type vs. kind' thing in Haskell is a distinction of syntactic categories, and Agda just gets rid of that.
2020-11-17 23:21:51 +0100 <monochrom> Yeah, that can be a much more useful piece of information than simple dichotomies.
2020-11-17 23:22:10 +0100 <unclechu> Cale: `(α :: Operation) → Type`
2020-11-17 23:22:17 +0100 <dolio> You could have all the 'levels' like Agda and also have a distinction of syntactic categories.
2020-11-17 23:22:30 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-17 23:23:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-17 23:23:58 +0100conal(~conal@64.71.133.70)
2020-11-17 23:24:06 +0100 <unclechu> hackage links to this 404 page https://cabal.readthedocs.io/installing-packages.html#controlling-flag-assignments about using package flags
2020-11-17 23:24:23 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-17 23:26:43 +0100zephyz(~zephyz@4e69715d.skybroadband.com)
2020-11-17 23:27:17 +0100 <zephyz> How do I get an Exp out of a Pat in Template Haskell? I just want to return the variable that was given in argument in a lambda
2020-11-17 23:27:31 +0100hackagesubG 0.2.0.0 - Some extension to the Foldable and Monoid classes. https://hackage.haskell.org/package/subG-0.2.0.0 (OleksandrZhabenko)
2020-11-17 23:31:59 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-17 23:33:47 +0100 <monochrom> If the pattern is really just a variable, you will be seeing "VarP n", where n::Name, no?
2020-11-17 23:34:15 +0100 <monochrom> Then the expression version of that variable is VarE n, no?
2020-11-17 23:34:20 +0100 <zephyz> Ah Yes
2020-11-17 23:34:38 +0100 <zephyz> is there a way to get the `Name` out of a `Pat`?
2020-11-17 23:34:48 +0100Franciman(~francesco@host-82-56-223-169.retail.telecomitalia.it) (Quit: Leaving)
2020-11-17 23:34:59 +0100 <monochrom> "the" sounds wrong.
2020-11-17 23:35:13 +0100asthasr(~asthasr@162.210.29.120) (Quit: asthasr)
2020-11-17 23:35:19 +0100 <monochrom> Some patterns don't have any variable. Some other patterns have a million. What "the"?
2020-11-17 23:35:45 +0100 <zephyz> You're asking this as if I already know about the APi
2020-11-17 23:36:14 +0100 <zephyz> how can I tell if a pattern can have multiple variables? or conversly, how can I make sur emy patterns only have 1 variable?
2020-11-17 23:36:27 +0100 <monochrom> No. You are supposed to know all the infinitely many legal patterns first.
2020-11-17 23:37:07 +0100 <monochrom> You already know the name "Pat" so you can easily look up how many dozens of data constructors it has.
2020-11-17 23:38:09 +0100 <zephyz> Geez thanks I guess I'll just keep reading undocumented TH source, thanks
2020-11-17 23:38:39 +0100 <monochrom> I never read the source. I have only seen the doc.
2020-11-17 23:39:26 +0100 <zephyz> it's literally the same, there is no documentation about how to use it, just constructors https://hackage.haskell.org/package/template-haskell-2.16.0.0/docs/Language-Haskell-TH.html#t:Pat
2020-11-17 23:39:42 +0100 <monochrom> Language.Haskell.TH.Syntax
2020-11-17 23:39:48 +0100 <zephyz> but now I see what you mean, "TupP" can have multple names
2020-11-17 23:40:16 +0100 <monochrom> I trust that you know you can start with https://hackage.haskell.org/package/template-haskell-2.16.0.0/
2020-11-17 23:40:50 +0100 <monochrom> Alternatively, if you say "hoogle didn't tell me any other URL", well then that's why I never use hoogle either.
2020-11-17 23:41:32 +0100 <zephyz> great thanks, but if someone's gonna tell me "just read the docs" I'd rather not ask at all
2020-11-17 23:43:19 +0100 <monochrom> Damn right.
2020-11-17 23:43:35 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Quit: Leaving)
2020-11-17 23:43:43 +0100 <monochrom> If a question is already answered by the docs, I would rather no one ask it at all.
2020-11-17 23:43:45 +0100spatchkaa(~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Ping timeout: 240 seconds)
2020-11-17 23:44:38 +0100m4lvin(~m4lvin@w4eg.de) (Quit: m4lvin)
2020-11-17 23:44:47 +0100Deide(~Deide@217.155.19.23)
2020-11-17 23:44:59 +0100m4lvin(~m4lvin@w4eg.de)
2020-11-17 23:45:37 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 272 seconds)
2020-11-17 23:46:36 +0100 <zephyz> are you braindead? how can you expect every beginner to have read every single piece of haskell code in the universe before they ask a question? Especially when the documentation you talk about is literaly just type signatures with no indication on how to use them
2020-11-17 23:48:40 +0100 <_deepfire> Given 'type Fallible = Either Foo'; how could it be that: Couldn't match expected type ‘Either Foo Blah’ with actual type ‘Fallible Blah’ ?
2020-11-17 23:49:16 +0100Chi1thangoo(~Chi1thang@87.112.60.168) (Ping timeout: 240 seconds)
2020-11-17 23:49:40 +0100 <monochrom> Could you post some self-contained code that reproduces that?
2020-11-17 23:50:15 +0100 <_deepfire> Not easily, unfortunately.. that'd take some time to work through.
2020-11-17 23:50:22 +0100 <Axman6> I assume, without looking at the definitions, that the type for patterns contains a list, which implies it could have zero to infinite sub patterns, which include variables
2020-11-17 23:51:16 +0100 <_deepfire> In any case, it's already reassuring that this isn't supposed to be normal behavior -- I was thinking I'm going mad..
2020-11-17 23:51:34 +0100 <monochrom> Then the explanation lies elsewhere.
2020-11-17 23:55:21 +0100 <Axman6> zephyz: to be honest, we don't really expect a beginner to be looking at template haskell at all, since to understand it requires understanding Haskell quite well. Looking at the docs for Pat, it looks like the docs do a great job explaining what the type is and represents
2020-11-17 23:57:29 +0100 <zephyz> Axman6 Cool thanks
2020-11-17 23:58:27 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)