2020-11-17 00:00:14 +0100 | zoran119 | (~zoran119@124-169-22-52.dyn.iinet.net.au) (Read error: Connection reset by peer) |
2020-11-17 00:00:29 +0100 | LKoen | (~LKoen@9.253.88.92.rev.sfr.net) (Remote host closed the connection) |
2020-11-17 00:00:52 +0100 | Varis | (~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 +0100 | TxBiGuy | (~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 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-17 00:02:49 +0100 | TxBiGuy | (~coffee2th@172-125-238-23.lightspeed.rcsntx.sbcglobal.net) (Client Quit) |
2020-11-17 00:02:52 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 00:03:16 +0100 | TxBiGuy | (~coffee2th@172-125-238-23.lightspeed.rcsntx.sbcglobal.net) |
2020-11-17 00:03:28 +0100 | Varis | (~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 +0100 | TxBiGuy | (~coffee2th@172-125-238-23.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection) |
2020-11-17 00:04:47 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 00:05:03 +0100 | ebf0 | (~ebf0@184.75.221.35) (Ping timeout: 272 seconds) |
2020-11-17 00:05:56 +0100 | fendor | (~fendor@178.115.131.226.wireless.dyn.drei.com) (Remote host closed the connection) |
2020-11-17 00:09:37 +0100 | pavonia_ | (~user@unaffiliated/siracusa) |
2020-11-17 00:09:49 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-17 00:10:38 +0100 | kritzefitz_ | (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
2020-11-17 00:11:10 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) (Ping timeout: 246 seconds) |
2020-11-17 00:11:37 +0100 | pavonia | (~user@unaffiliated/siracusa) (Ping timeout: 264 seconds) |
2020-11-17 00:11:38 +0100 | pavonia_ | pavonia |
2020-11-17 00:15:50 +0100 | pavonia_ | (~user@unaffiliated/siracusa) |
2020-11-17 00:17:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2020-11-17 00:18:02 +0100 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
2020-11-17 00:18:23 +0100 | christo | (~chris@81.96.113.213) |
2020-11-17 00:18:34 +0100 | pavonia | (~user@unaffiliated/siracusa) (Ping timeout: 260 seconds) |
2020-11-17 00:18:45 +0100 | pavonia_ | pavonia |
2020-11-17 00:19:37 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds) |
2020-11-17 00:22:56 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad) |
2020-11-17 00:23:31 +0100 | hackage | nix-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 +0100 | gehmehgeh | (~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 +0100 | conal | (~conal@66.115.176.210) (Quit: Computer has gone to sleep.) |
2020-11-17 00:29:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-17 00:30:42 +0100 | ph88 | (~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 +0100 | conal | (~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 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-17 00:31:41 +0100 | royal_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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2020-11-17 00:34:06 +0100 | Aquazi | (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 +0100 | mananamenos | (~mananamen@84.122.202.215.dyn.user.ono.com) |
2020-11-17 00:34:57 +0100 | shrug | (~shrug@178.239.168.171) |
2020-11-17 00:35:26 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) |
2020-11-17 00:36:43 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
2020-11-17 00:37:28 +0100 | hiroaki | (~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 +0100 | heatsink | (~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 +0100 | boxscape | (86ab2c1f@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.44.31) (Ping timeout: 256 seconds) |
2020-11-17 00:43:40 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 00:44:31 +0100 | superstar64 | (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 +0100 | conal | (~conal@66.115.176.210) (Quit: Computer has gone to sleep.) |
2020-11-17 00:45:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-17 00:47:20 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2020-11-17 00:48:44 +0100 | ronbrz | (~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 +0100 | merijn | (~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 +0100 | nbloomf | (~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 +0100 | conal | (~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 +0100 | Gurkenglas | (~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 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-17 01:00:02 +0100 | shrug | (~shrug@178.239.168.171) () |
2020-11-17 01:00:56 +0100 | <dolio> | :) |
2020-11-17 01:01:18 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad) |
2020-11-17 01:02:28 +0100 | conal | (~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 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 01:04:26 +0100 | cosimone | (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Ping timeout: 265 seconds) |
2020-11-17 01:04:47 +0100 | vacm | (~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 +0100 | quarters | (~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 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:465:234f:7cb8:28a5) (Ping timeout: 260 seconds) |
2020-11-17 01:11:46 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-17 01:11:53 +0100 | srk | (sorki@unaffiliated/srk) (Ping timeout: 256 seconds) |
2020-11-17 01:11:55 +0100 | LKoen | (~LKoen@9.253.88.92.rev.sfr.net) |
2020-11-17 01:12:23 +0100 | lucard | (c8dd9d33@200.221.157.51) |
2020-11-17 01:12:24 +0100 | jiribenes_ | (~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 +0100 | jiribenes | (~jiribenes@rosa.jiribenes.com) (Read error: Connection reset by peer) |
2020-11-17 01:12:49 +0100 | Adluc | (Adluc@base48.cz) (Ping timeout: 272 seconds) |
2020-11-17 01:13:16 +0100 | jiribenes_ | jiribenes |
2020-11-17 01:14:06 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 265 seconds) |
2020-11-17 01:15:23 +0100 | Adluc | (Adluc@base48.cz) |
2020-11-17 01:19:25 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
2020-11-17 01:19:46 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2020-11-17 01:21:10 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds) |
2020-11-17 01:22:04 +0100 | Amras | (~Amras@unaffiliated/amras0000) |
2020-11-17 01:22:41 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:3325:bf75:6ec4:84a6) |
2020-11-17 01:25:33 +0100 | Rudd0 | (~Rudd0@185.189.115.103) |
2020-11-17 01:25:54 +0100 | srk | (sorki@unaffiliated/srk) |
2020-11-17 01:27:12 +0100 | conal | (~conal@66.115.176.210) (Quit: Computer has gone to sleep.) |
2020-11-17 01:28:00 +0100 | hackage | iproute 1.7.10 - IP Routing Table https://hackage.haskell.org/package/iproute-1.7.10 (KazuYamamoto) |
2020-11-17 01:29:24 +0100 | Boomerang | (~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 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-17 01:33:14 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-17 01:33:44 +0100 | lucard | (c8dd9d33@200.221.157.51) (Remote host closed the connection) |
2020-11-17 01:33:51 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-17 01:34:23 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-11-17 01:36:02 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2020-11-17 01:37:58 +0100 | avn | (~avn@78-56-108-78.static.zebra.lt) (Ping timeout: 246 seconds) |
2020-11-17 01:38:31 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2020-11-17 01:40:03 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
2020-11-17 01:42:33 +0100 | nineonine | (~textual@50.216.62.2) |
2020-11-17 01:43:50 +0100 | shatriff_ | (~vitaliish@176.52.219.10) |
2020-11-17 01:43:50 +0100 | shatriff | (~vitaliish@176.52.219.10) (Read error: Connection reset by peer) |
2020-11-17 01:43:59 +0100 | avn | (~avn@78-56-108-78.static.zebra.lt) |
2020-11-17 01:44:35 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 01:46:59 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-17 01:48:49 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) (Ping timeout: 264 seconds) |
2020-11-17 01:50:38 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 01:57:00 +0100 | hackage | flashblast 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 +0100 | hackage | flashblast 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 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:8491:5fed:8d7f:daad) |
2020-11-17 02:04:14 +0100 | mananamenos | (~mananamen@84.122.202.215.dyn.user.ono.com) (Remote host closed the connection) |
2020-11-17 02:06:02 +0100 | borne | (~fritjof@200116b864b5430099e934deb93b1409.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-17 02:06:13 +0100 | xsperry | (~as@unaffiliated/xsperry) (Ping timeout: 264 seconds) |
2020-11-17 02:06:18 +0100 | fryguybob | (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 265 seconds) |
2020-11-17 02:06:38 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) (Ping timeout: 260 seconds) |
2020-11-17 02:07:20 +0100 | shadow__ | (~shadow@192.12.149.141) |
2020-11-17 02:07:30 +0100 | shadow__ | (~shadow@192.12.149.141) (Client Quit) |
2020-11-17 02:08:10 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) |
2020-11-17 02:08:18 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 02:08:33 +0100 | renzhi | (~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 272 seconds) |
2020-11-17 02:09:13 +0100 | wildtrees | (wildtrees@gateway/vpn/protonvpn/wildtrees) (Quit: Leaving) |
2020-11-17 02:11:20 +0100 | LKoen | (~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 +0100 | wroathe_ | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-17 02:12:26 +0100 | wroathe | (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-11-17 02:12:49 +0100 | conal | (~conal@66.115.176.210) (Quit: Computer has gone to sleep.) |
2020-11-17 02:13:58 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 02:13:58 +0100 | conal | (~conal@66.115.176.210) (Client Quit) |
2020-11-17 02:14:32 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-17 02:14:53 +0100 | wroathe_ | wroathe |
2020-11-17 02:16:38 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 02:18:22 +0100 | conal | (~conal@66.115.176.210) (Client Quit) |
2020-11-17 02:22:05 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
2020-11-17 02:23:45 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-11-17 02:26:31 +0100 | fryguybob | (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) |
2020-11-17 02:27:36 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection) |
2020-11-17 02:28:20 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-17 02:28:42 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 02:29:31 +0100 | ironmarx | (~ironmarx@139.28.218.148) |
2020-11-17 02:31:49 +0100 | Lord_of_Life_ | (~Lord@46.217.219.70) |
2020-11-17 02:32:18 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds) |
2020-11-17 02:36:57 +0100 | justsomeguy | (~justsomeg@216.186.218.241) |
2020-11-17 02:36:57 +0100 | justsomeguy | (~justsomeg@216.186.218.241) (Changing host) |
2020-11-17 02:36:57 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-11-17 02:42:13 +0100 | mputz | (~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 +0100 | Jeanne-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 +0100 | mputz | (~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 +0100 | merijn | (~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 +0100 | justsomeguy | does 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 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 272 seconds) |
2020-11-17 02:50:19 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2020-11-17 02:50:21 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-11-17 02:51:03 +0100 | tmciver | (~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 +0100 | merijn | (~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 +0100 | mputz | (~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 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2020-11-17 03:08:39 +0100 | lucasb | (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 +0100 | royal_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 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit) |
2020-11-17 03:12:51 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-17 03:15:57 +0100 | christo | (~chris@81.96.113.213) |
2020-11-17 03:16:12 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2020-11-17 03:17:18 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
2020-11-17 03:20:43 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 260 seconds) |
2020-11-17 03:20:55 +0100 | vacm | (~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 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 265 seconds) |
2020-11-17 03:24:42 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-11-17 03:25:11 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 03:29:35 +0100 | moet | (~moet@mobile-166-137-178-187.mycingular.net) (Ping timeout: 256 seconds) |
2020-11-17 03:30:21 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 03:31:21 +0100 | conal | (~conal@66.115.176.210) (Client Quit) |
2020-11-17 03:31:24 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-17 03:32:52 +0100 | conal | (~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 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-11-17 03:37:25 +0100 | conal | (~conal@66.115.176.210) (Client Quit) |
2020-11-17 03:37:26 +0100 | toorevitimirp | (~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 +0100 | xff0x | (~fox@2001:1a81:529e:a500:7f56:5167:60df:e24a) (Ping timeout: 272 seconds) |
2020-11-17 03:44:31 +0100 | xff0x | (~fox@2001:1a81:52d5:6a00:5952:5bb0:2bc9:4930) |
2020-11-17 03:53:25 +0100 | haritz | (~hrtz@unaffiliated/haritz) (Ping timeout: 240 seconds) |
2020-11-17 03:55:54 +0100 | haritz | (~hrtz@62.3.70.206) |
2020-11-17 03:55:54 +0100 | haritz | (~hrtz@62.3.70.206) (Changing host) |
2020-11-17 03:55:54 +0100 | haritz | (~hrtz@unaffiliated/haritz) |
2020-11-17 03:59:54 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-paizsduyeybkbeqa) (Quit: Connection closed for inactivity) |
2020-11-17 04:00:01 +0100 | ironmarx | (~ironmarx@139.28.218.148) () |
2020-11-17 04:00:46 +0100 | toorevitimirp | (~tooreviti@117.182.180.118) (Remote host closed the connection) |
2020-11-17 04:01:15 +0100 | toorevitimirp | (~tooreviti@117.182.180.118) |
2020-11-17 04:01:55 +0100 | Guest48480 | (~luka@217.146.82.202) |
2020-11-17 04:04:44 +0100 | drbean | (~drbean@TC210-63-209-59.static.apol.com.tw) |
2020-11-17 04:06:50 +0100 | elliott__ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-11-17 04:09:32 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2020-11-17 04:14:39 +0100 | shatriff_ | (~vitaliish@176.52.219.10) (Remote host closed the connection) |
2020-11-17 04:14:55 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-17 04:15:10 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2020-11-17 04:15:27 +0100 | shatriff | (~vitaliish@176.52.219.10) (Remote host closed the connection) |
2020-11-17 04:15:46 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-17 04:16:16 +0100 | shatriff | (~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 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-17 04:17:04 +0100 | shatriff | (~vitaliish@176.52.219.10) (Remote host closed the connection) |
2020-11-17 04:17:24 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-17 04:17:53 +0100 | shatriff | (~vitaliish@176.52.219.10) (Remote host closed the connection) |
2020-11-17 04:18:41 +0100 | justsomeguy | (~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 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 04:20:05 +0100 | rzmt | (~rzmt@87-92-180-112.rev.dnainternet.fi) (Ping timeout: 240 seconds) |
2020-11-17 04:22:26 +0100 | rzmt | (~rzmt@87-92-180-112.rev.dnainternet.fi) |
2020-11-17 04:23:48 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-17 04:24:02 +0100 | acidjnk_new | (~acidjnk@p200300d0c718f648045012e87868ed0b.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2020-11-17 04:24:39 +0100 | cgfuh | (~cgfuh@181.167.191.58) (Quit: WeeChat 2.9) |
2020-11-17 04:26:30 +0100 | argent0 | (~argent0@168.227.98.83) (Remote host closed the connection) |
2020-11-17 04:27:03 +0100 | Shadowraith | (~user@192.12.149.141) |
2020-11-17 04:29:11 +0100 | Shadowraith | (~user@192.12.149.141) (Read error: Connection reset by peer) |
2020-11-17 04:30:10 +0100 | Shadowraith | (~user@192.12.149.141) |
2020-11-17 04:30:28 +0100 | acidjnk_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 +0100 | nbloomf | (~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 +0100 | machinedgod | (~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 +0100 | nbloomf | (~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 +0100 | superstar64 | (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 +0100 | obfusk | (~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 +0100 | todda7 | (~torstein@ppp-2-84-17-169.home.otenet.gr) (Ping timeout: 264 seconds) |
2020-11-17 04:42:52 +0100 | conal | (~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 +0100 | obfusk | (~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 +0100 | plutoniix | (~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 +0100 | livvy | (~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 +0100 | star_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 +0100 | lagothrix | (~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 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) |
2020-11-17 04:47:08 +0100 | merijn | (~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 +0100 | Sgeo_ | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-11-17 04:50:32 +0100 | Sgeo_ | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-11-17 04:50:47 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 04:51:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-17 04:51:44 +0100 | star_cloud | (~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com) |
2020-11-17 04:52:17 +0100 | spatchkaa | (~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 +0100 | Shadowraith | (~user@192.12.149.141) (Remote host closed the connection) |
2020-11-17 04:54:37 +0100 | Shadowraith | (~user@192.12.149.141) |
2020-11-17 04:54:38 +0100 | theDon | (~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 +0100 | theDon | (~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 +0100 | resolve | (~resolve@139.28.218.148) |
2020-11-17 04:58:51 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2020-11-17 04:59:07 +0100 | Kaeipi | (~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 +0100 | vacm | (~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 +0100 | falafel | (~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 +0100 | ajmcmiddlin | (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 +0100 | DTZUZU | (~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 +0100 | ajmcmiddlin | (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 +0100 | davetapley | (sid666@gateway/web/irccloud.com/x-vyeiyfxfsraauowv) (Ping timeout: 272 seconds) |
2020-11-17 05:09:12 +0100 | vicfred | (~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 +0100 | vk3wtf | (~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 +0100 | davetapley | (sid666@gateway/web/irccloud.com/x-xjppgfjbvjpedrys) |
2020-11-17 05:11:09 +0100 | conal | (~conal@66.115.176.210) (Quit: Computer has gone to sleep.) |
2020-11-17 05:11:13 +0100 | vk3wtf | (~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 +0100 | royal_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 +0100 | gaze__ | (sid387101@gateway/web/irccloud.com/x-dzzzzpxfnvpkwdhs) (Ping timeout: 272 seconds) |
2020-11-17 05:15:23 +0100 | mpickering | (sid78412@gateway/web/irccloud.com/x-pmxjkbnlbuqckyae) (Ping timeout: 272 seconds) |
2020-11-17 05:15:23 +0100 | scav | (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 +0100 | jokester_ | (~mono@unaffiliated/jokester) (Ping timeout: 272 seconds) |
2020-11-17 05:17:17 +0100 | moobar | (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 +0100 | texasmynsted | (~texasmyns@212.102.45.103) (Ping timeout: 260 seconds) |
2020-11-17 05:17:42 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
2020-11-17 05:18:00 +0100 | jokester_ | (~mono@unaffiliated/jokester) |
2020-11-17 05:18:28 +0100 | mpickering | (sid78412@gateway/web/irccloud.com/x-qzzyeuirciixjhoi) |
2020-11-17 05:18:43 +0100 | scav | (sid309693@gateway/web/irccloud.com/x-vgaroajuvhbcvqch) |
2020-11-17 05:18:47 +0100 | gaze__ | (sid387101@gateway/web/irccloud.com/x-ddrtdboykpdfifpr) |
2020-11-17 05:20:16 +0100 | moobar | (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 +0100 | dgpratt | (sid193493@gateway/web/irccloud.com/x-ckplobyhmsyazopr) (Ping timeout: 272 seconds) |
2020-11-17 05:21:43 +0100 | conal | (~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 +0100 | DTZUZU | (~DTZUZU@207.81.171.116) |
2020-11-17 05:23:17 +0100 | dgpratt | (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 +0100 | simony | (sid226116@gateway/web/irccloud.com/x-wzcrwnktljnyyivi) (Ping timeout: 272 seconds) |
2020-11-17 05:25:15 +0100 | conal | (~conal@66.115.176.210) (Client Quit) |
2020-11-17 05:25:31 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:3325:bf75:6ec4:84a6) (Ping timeout: 272 seconds) |
2020-11-17 05:25:38 +0100 | Shadorain | (uid453914@gateway/web/irccloud.com/x-gzynpbjvpqrgaqml) |
2020-11-17 05:26:15 +0100 | simony | (sid226116@gateway/web/irccloud.com/x-keowsotekzgqfqdf) |
2020-11-17 05:26:27 +0100 | codeAlways | (uid272474@gateway/web/irccloud.com/x-dbuczpztyxqztxlt) |
2020-11-17 05:26:40 +0100 | Shadowraith | (~user@192.12.149.141) (Remote host closed the connection) |
2020-11-17 05:26:47 +0100 | scav | (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 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 05:28:07 +0100 | conal | (~conal@66.115.176.210) (Client Quit) |
2020-11-17 05:28:18 +0100 | scav | (sid309693@gateway/web/irccloud.com/x-jqpiftkzlvsswiha) |
2020-11-17 05:29:42 +0100 | conal | (~conal@66.115.176.210) |
2020-11-17 05:29:42 +0100 | conal | (~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 +0100 | falafel | (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds) |
2020-11-17 05:37:24 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:c078:1a2e:5eb7:90ae) |
2020-11-17 05:37:32 +0100 | Shadowraith | (~user@192.12.149.141) |
2020-11-17 05:37:47 +0100 | acidjnk_new | (~acidjnk@p200300d0c718f647bc583fb9dc736f42.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-17 05:39:46 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-11-17 05:40:08 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 260 seconds) |
2020-11-17 05:41:57 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 260 seconds) |
2020-11-17 05:43:15 +0100 | gaze__ | (sid387101@gateway/web/irccloud.com/x-ddrtdboykpdfifpr) (Ping timeout: 272 seconds) |
2020-11-17 05:43:15 +0100 | pfurla | (~pfurla@185.108.105.66) |
2020-11-17 05:44:49 +0100 | moet | (~moet@mobile-166-137-178-107.mycingular.net) |
2020-11-17 05:46:16 +0100 | gaze__ | (sid387101@gateway/web/irccloud.com/x-ieppxqjdwpehesld) |
2020-11-17 05:47:31 +0100 | pfurla_ | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2020-11-17 05:48:18 +0100 | pfurla | (~pfurla@185.108.105.66) (Ping timeout: 260 seconds) |
2020-11-17 05:50:07 +0100 | crdrost | (~crdrost@c-98-207-102-156.hsd1.ca.comcast.net) (Quit: This computer has gone to sleep) |
2020-11-17 05:50:42 +0100 | lpy | (~nyd@unaffiliated/elysian) |
2020-11-17 05:54:39 +0100 | benl23 | (sid284234@gateway/web/irccloud.com/x-nkfumgpyqgaploty) (Ping timeout: 272 seconds) |
2020-11-17 05:54:49 +0100 | benl23 | (sid284234@gateway/web/irccloud.com/x-zcormuhggyweibpr) |
2020-11-17 06:01:06 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 272 seconds) |
2020-11-17 06:04:09 +0100 | PoliticsII______ | (sid193551@gateway/web/irccloud.com/x-svzvwktexytphjlp) (Ping timeout: 272 seconds) |
2020-11-17 06:04:09 +0100 | kozowu | (uid44796@gateway/web/irccloud.com/x-dylrnyglhpjycwlc) (Ping timeout: 272 seconds) |
2020-11-17 06:05:25 +0100 | Tritlo | (sid58727@gateway/web/irccloud.com/x-dlcmyhezzzrcdorg) (Ping timeout: 272 seconds) |
2020-11-17 06:05:35 +0100 | Tritlo | (sid58727@gateway/web/irccloud.com/x-qngdkegzmhgdhfhg) |
2020-11-17 06:05:41 +0100 | PoliticsII______ | (sid193551@gateway/web/irccloud.com/x-ykrgnddgnwhyshpo) |
2020-11-17 06:05:49 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-17 06:05:51 +0100 | igokaskowitz | (~IceChat95@ool-45742c14.dyn.optonline.net) |
2020-11-17 06:06:41 +0100 | lally | (sid388228@gateway/web/irccloud.com/x-zbzgkwpcudviljpk) (Ping timeout: 272 seconds) |
2020-11-17 06:06:51 +0100 | lally | (sid388228@gateway/web/irccloud.com/x-lkvfvytrcbfmnwwv) |
2020-11-17 06:08:28 +0100 | kozowu | (uid44796@gateway/web/irccloud.com/x-ehcrldadbfrqmeyx) |
2020-11-17 06:08:53 +0100 | falafel | (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) |
2020-11-17 06:13:39 +0100 | elliott__ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2020-11-17 06:14:43 +0100 | igokaskowitz | (~IceChat95@ool-45742c14.dyn.optonline.net) (Quit: Hello, 911? Yeah, it's caught in the window this time.) |
2020-11-17 06:14:46 +0100 | coot | (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) |
2020-11-17 06:15:27 +0100 | igokaskowitz | (~IceChat95@ool-45742c14.dyn.optonline.net) |
2020-11-17 06:15:50 +0100 | igokaskowitz | (~IceChat95@ool-45742c14.dyn.optonline.net) (Client Quit) |
2020-11-17 06:16:11 +0100 | star_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 +0100 | moet | (~moet@mobile-166-137-178-107.mycingular.net) (Quit: leaving) |
2020-11-17 06:17:27 +0100 | typetetris | (sid275937@gateway/web/irccloud.com/x-hwvkvbbozbkfoprj) (Ping timeout: 272 seconds) |
2020-11-17 06:19:05 +0100 | star_cloud | (~star_clou@ec2-34-217-191-210.us-west-2.compute.amazonaws.com) |
2020-11-17 06:20:37 +0100 | idnar | (sid12240@gateway/web/irccloud.com/x-wvmmnuuotscagfyx) (Ping timeout: 272 seconds) |
2020-11-17 06:20:59 +0100 | typetetris | (sid275937@gateway/web/irccloud.com/x-qxznjjpwpuernjtq) |
2020-11-17 06:21:37 +0100 | idnar | (sid12240@gateway/web/irccloud.com/x-nahgmbtmyvioqrjv) |
2020-11-17 06:21:44 +0100 | star_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 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@ppp-223-24-92-243.revip6.asianet.co.th) |
2020-11-17 06:24:25 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-11-17 06:27:07 +0100 | day_ | (~Unknown@unaffiliated/day) |
2020-11-17 06:27:35 +0100 | typetetris | (sid275937@gateway/web/irccloud.com/x-qxznjjpwpuernjtq) (Ping timeout: 272 seconds) |
2020-11-17 06:29:39 +0100 | typetetris | (sid275937@gateway/web/irccloud.com/x-msdsoshziggpwxpy) |
2020-11-17 06:29:44 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 06:30:13 +0100 | day | (~Unknown@unaffiliated/day) (Ping timeout: 246 seconds) |
2020-11-17 06:30:13 +0100 | day_ | day |
2020-11-17 06:31:27 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-89-20.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2020-11-17 06:32:01 +0100 | heyj | (sid171370@gateway/web/irccloud.com/x-xrqocrtckuflwvgl) (Ping timeout: 272 seconds) |
2020-11-17 06:32:20 +0100 | heyj | (sid171370@gateway/web/irccloud.com/x-lqaivrzgirobqwkd) |
2020-11-17 06:33:54 +0100 | ggole | (~ggole@2001:8003:8119:7200:c9ed:f9f6:bc08:34bd) |
2020-11-17 06:34:59 +0100 | Shadowraith | (~user@192.12.149.141) (Read error: Connection reset by peer) |
2020-11-17 06:35:57 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-89-20.w86-212.abo.wanadoo.fr) |
2020-11-17 06:38:00 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-89-20.w86-212.abo.wanadoo.fr) (Client Quit) |
2020-11-17 06:38:21 +0100 | heyj | (sid171370@gateway/web/irccloud.com/x-lqaivrzgirobqwkd) (Ping timeout: 272 seconds) |
2020-11-17 06:42:05 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@ppp-223-24-92-243.revip6.asianet.co.th) (Ping timeout: 240 seconds) |
2020-11-17 06:47:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-17 06:51:39 +0100 | Adeon | (sid418992@gateway/web/irccloud.com/x-zshgawryroibgclt) (Ping timeout: 272 seconds) |
2020-11-17 06:52:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-17 06:55:49 +0100 | Adeon | (sid418992@gateway/web/irccloud.com/x-plwafdhgynwzbsxy) |
2020-11-17 06:56:25 +0100 | bitmagie | (~Thunderbi@200116b80683a800c96883fdde0ec4cc.dip.versatel-1u1.de) |
2020-11-17 06:57:22 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2020-11-17 07:00:02 +0100 | resolve | (~resolve@139.28.218.148) () |
2020-11-17 07:01:35 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2020-11-17 07:03:15 +0100 | berberman | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-11-17 07:03:37 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2020-11-17 07:06:24 +0100 | buterthebuddha | (~user@35.1.134.251) (Ping timeout: 256 seconds) |
2020-11-17 07:06:36 +0100 | christo | (~chris@81.96.113.213) |
2020-11-17 07:06:36 +0100 | danvet_ | (~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) |
2020-11-17 07:09:15 +0100 | heyj | (sid171370@gateway/web/irccloud.com/x-ofkusdzepocmjaiw) |
2020-11-17 07:14:25 +0100 | tput | (~tput@S0106a84e3fe54613.ed.shawcable.net) |
2020-11-17 07:15:10 +0100 | idhugo__ | (~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) |
2020-11-17 07:16:26 +0100 | zfnmxt | (~zfnmxt@unaffiliated/zfnmxt) (Remote host closed the connection) |
2020-11-17 07:16:55 +0100 | Shadowraith | (~user@192.12.149.141) |
2020-11-17 07:16:59 +0100 | newhoggy | (sid198874@gateway/web/irccloud.com/x-terspefkrxdigoxr) (Ping timeout: 272 seconds) |
2020-11-17 07:17:14 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@66.115.189.204) (Ping timeout: 256 seconds) |
2020-11-17 07:17:14 +0100 | catern | (~catern@catern.com) (Ping timeout: 256 seconds) |
2020-11-17 07:17:14 +0100 | zfnmxt | (~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 +0100 | supercoven | (~Supercove@dsl-hkibng31-54fae2-107.dhcp.inet.fi) |
2020-11-17 07:17:41 +0100 | supercoven | (~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 +0100 | supercoven | (~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 +0100 | newhoggy | (sid198874@gateway/web/irccloud.com/x-qhmnnfjnjtcmfiay) |
2020-11-17 07:23:30 +0100 | caubert | (~mrbentari@207.246.80.112) (Quit: WeeChat 2.9) |
2020-11-17 07:25:19 +0100 | gaussian | (8cb4f058@gateway/web/cgi-irc/kiwiirc.com/ip.140.180.240.88) (Quit: Connection closed) |
2020-11-17 07:25:29 +0100 | alp | (~alp@2a01:e0a:58b:4920:814b:3b2:301a:4777) |
2020-11-17 07:25:29 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2020-11-17 07:28:24 +0100 | stree | (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2020-11-17 07:28:41 +0100 | stree | (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) |
2020-11-17 07:29:00 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 07:32:12 +0100 | catern | (~catern@104.131.201.120) |
2020-11-17 07:36:38 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-17 07:37:25 +0100 | mrbentarikau | (~mrbentari@207.246.80.112) |
2020-11-17 07:38:08 +0100 | mrbentarikau | caubert |
2020-11-17 07:38:25 +0100 | christo | (~chris@81.96.113.213) |
2020-11-17 07:39:29 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:5d4c:3718:c0a8:9f94) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 07:39:37 +0100 | noecho | (~noecho@static.143.42.203.116.clients.your-server.de) (Quit: ZNC - http://znc.in) |
2020-11-17 07:40:10 +0100 | noecho | (~noecho@2a01:4f8:1c0c:80ee::4223) |
2020-11-17 07:42:26 +0100 | Shadowraith | (~user@192.12.149.141) (Ping timeout: 272 seconds) |
2020-11-17 07:44:01 +0100 | drbean | (~drbean@TC210-63-209-59.static.apol.com.tw) (Ping timeout: 256 seconds) |
2020-11-17 07:44:26 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@ppp-27-55-77-167.revip3.asianet.co.th) |
2020-11-17 07:44:51 +0100 | tnks | (sid412124@gateway/web/irccloud.com/x-foyfefzalmzctfnv) (Ping timeout: 272 seconds) |
2020-11-17 07:45:00 +0100 | tnks | (sid412124@gateway/web/irccloud.com/x-zbyszpuhbbhjdzks) |
2020-11-17 07:45:23 +0100 | Shadorain | (uid453914@gateway/web/irccloud.com/x-gzynpbjvpqrgaqml) (Quit: Connection closed for inactivity) |
2020-11-17 07:51:07 +0100 | xff0x | (~fox@2001:1a81:52d5:6a00:5952:5bb0:2bc9:4930) (Ping timeout: 260 seconds) |
2020-11-17 07:51:43 +0100 | xff0x | (~fox@2001:1a81:52d5:6a00:633e:9aec:a495:3349) |
2020-11-17 07:55:33 +0100 | afb | (~afb@185.163.110.116) |
2020-11-17 07:55:47 +0100 | falafel | (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds) |
2020-11-17 07:58:09 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
2020-11-17 07:59:05 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@ppp-27-55-77-167.revip3.asianet.co.th) (Ping timeout: 240 seconds) |
2020-11-17 08:01:18 +0100 | Sanchayan | (~Sanchayan@122.178.226.239) |
2020-11-17 08:04:10 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-17 08:08:55 +0100 | yogani | (sid42623@gateway/web/irccloud.com/x-xmbuoxasmdpiyyri) (Ping timeout: 272 seconds) |
2020-11-17 08:09:46 +0100 | yogani | (sid42623@gateway/web/irccloud.com/x-rolajygghowodpbd) |
2020-11-17 08:10:05 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 256 seconds) |
2020-11-17 08:10:15 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-17 08:12:19 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2020-11-17 08:15:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-17 08:15:15 +0100 | alp | (~alp@2a01:e0a:58b:4920:814b:3b2:301a:4777) (Ping timeout: 272 seconds) |
2020-11-17 08:16:38 +0100 | idhugo__ | (~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) (Ping timeout: 272 seconds) |
2020-11-17 08:16:47 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de) |
2020-11-17 08:17:25 +0100 | alx741 | (~alx741@186.178.110.6) (Ping timeout: 240 seconds) |
2020-11-17 08:17:46 +0100 | stree_ | (~stree@50-108-91-191.adr01.mskg.mi.frontiernet.net) |
2020-11-17 08:18:45 +0100 | lpy | (~nyd@unaffiliated/elysian) (Quit: lpy) |
2020-11-17 08:18:48 +0100 | stree | (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Ping timeout: 260 seconds) |
2020-11-17 08:18:49 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-17 08:19:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-17 08:22:31 +0100 | hiroaki | (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) |
2020-11-17 08:23:14 +0100 | dhouthoo | (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
2020-11-17 08:27:24 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-pvtzxvglhmvabpwf) (Quit: Connection closed for inactivity) |
2020-11-17 08:29:28 +0100 | drbean | (~drbean@TC210-63-209-182.static.apol.com.tw) |
2020-11-17 08:29:41 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) |
2020-11-17 08:30:16 +0100 | Ariakenom | (~Ariakenom@h-82-196-111-82.NA.cust.bahnhof.se) |
2020-11-17 08:31:43 +0100 | Amras | (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
2020-11-17 08:32:07 +0100 | alx741 | (~alx741@181.196.68.148) |
2020-11-17 08:34:28 +0100 | bitmagie | (~Thunderbi@200116b80683a800c96883fdde0ec4cc.dip.versatel-1u1.de) (Quit: bitmagie) |
2020-11-17 08:36:09 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 272 seconds) |
2020-11-17 08:39:01 +0100 | hackage | telegram-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 +0100 | Sanchayan | (~Sanchayan@122.178.226.239) (Quit: leaving) |
2020-11-17 08:45:48 +0100 | invaser | (~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 +0100 | chele | (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
2020-11-17 08:49:43 +0100 | darjeeling_ | (~darjeelin@122.245.208.31) (Ping timeout: 260 seconds) |
2020-11-17 08:50:24 +0100 | nineonine | (~textual@50.216.62.2) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 08:50:57 +0100 | nineonine | (~textual@50.216.62.2) |
2020-11-17 08:52:10 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2020-11-17 08:52:41 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-17 08:55:34 +0100 | andreabedini[m] | (andreabedi@gateway/shell/matrix.org/x-mbuhwpnbmozobgqs) |
2020-11-17 08:55:47 +0100 | nineonine | (~textual@50.216.62.2) (Ping timeout: 272 seconds) |
2020-11-17 08:57:58 +0100 | grimgnr | (~user@94.19.246.43) (Remote host closed the connection) |
2020-11-17 08:58:14 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-17 09:00:09 +0100 | Franciman | (~francesco@host-82-56-223-169.retail.telecomitalia.it) |
2020-11-17 09:02:08 +0100 | Martinsos | (~user@cpe-188-129-116-164.dynamic.amis.hr) |
2020-11-17 09:03:23 +0100 | PacoV | (~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 +0100 | hidedagger | (~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 +0100 | oish | (~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 +0100 | darjeeling_ | (~darjeelin@122.245.208.31) |
2020-11-17 09:06:13 +0100 | cole-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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-17 09:10:18 +0100 | alp | (~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 +0100 | tolt | (~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 +0100 | hyperfekt | (end@bnc.hyperfekt.net) (Ping timeout: 265 seconds) |
2020-11-17 09:15:30 +0100 | motte | (~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 +0100 | shachaf | (~shachaf@unaffiliated/shachaf) (Remote host closed the connection) |
2020-11-17 09:16:47 +0100 | motte | (~weechat@unaffiliated/motte) |
2020-11-17 09:16:53 +0100 | shachaf | (~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 +0100 | tolt | (~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 +0100 | cfricke | (~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 +0100 | hyperfekt | (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 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2020-11-17 09:20:54 +0100 | iteratee | (~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 +0100 | iteratee | (~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 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-17 09:22:41 +0100 | ocamler | (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 +0100 | britva | (~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 +0100 | britva | (~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 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2020-11-17 09:26:38 +0100 | britva | (~britva@2a02:aa13:7240:2980:7da5:a1a0:c038:90b4) |
2020-11-17 09:26:40 +0100 | ocamler | (3263cbdb@50.99.203.219) (Remote host closed the connection) |
2020-11-17 09:27:02 +0100 | britva | (~britva@2a02:aa13:7240:2980:7da5:a1a0:c038:90b4) (Client Quit) |
2020-11-17 09:27:07 +0100 | ocamler | (3263cbdb@50.99.203.219) |
2020-11-17 09:27:40 +0100 | mputz | (~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 +0100 | ocamler | (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 +0100 | drbean | (~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 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2020-11-17 09:31:07 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Remote host closed the connection) |
2020-11-17 09:31:27 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2020-11-17 09:32:00 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Client Quit) |
2020-11-17 09:32:29 +0100 | cinimod_ | (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 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2020-11-17 09:32:47 +0100 | Boomerang_ | (~Boomerang@xd520f68c.cust.hiper.dk) |
2020-11-17 09:32:55 +0100 | Boomerang_ | (~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 +0100 | ulidtko | (~ulidtko@193.111.48.79) (Read error: Connection reset by peer) |
2020-11-17 09:35:03 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-17 09:35:23 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-17 09:35:26 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Client Quit) |
2020-11-17 09:35:43 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-17 09:35:48 +0100 | nados | (~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 272 seconds) |
2020-11-17 09:36:01 +0100 | borne | (~fritjof@200116b8641c82003b6e7a122d52ed4c.dip.versatel-1u1.de) |
2020-11-17 09:37:07 +0100 | Sgeo_ | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-11-17 09:37:31 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-17 09:40:07 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:c078:1a2e:5eb7:90ae) (Ping timeout: 272 seconds) |
2020-11-17 09:40:41 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-17 09:42:06 +0100 | Feuermagier_ | (~Feuermagi@213.178.26.41) (Quit: Leaving) |
2020-11-17 09:42:16 +0100 | Feuermagier | (~Feuermagi@213.178.26.41) |
2020-11-17 09:45:33 +0100 | p3n_ | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in) |
2020-11-17 09:48:28 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2020-11-17 09:49:03 +0100 | jedws | (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 09:49:25 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-17 09:52:10 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:bab2:cd00:4d2d:7b87) |
2020-11-17 09:52:43 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) |
2020-11-17 09:52:45 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-11-17 09:54:46 +0100 | ulidtko | (~ulidtko@193.111.48.79) |
2020-11-17 09:55:35 +0100 | raichoo | (~raichoo@213.240.178.58) |
2020-11-17 09:56:01 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-17 09:56:53 +0100 | jedws | (~jedws@101.184.175.183) |
2020-11-17 09:56:57 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-zpttjkkcshfghzwp) (Quit: Connection closed for inactivity) |
2020-11-17 09:57:23 +0100 | teddpole | (~teddpole7@2404:ab80:b:19c0:19e5:eb0d:10d8:2984) |
2020-11-17 09:58:51 +0100 | teddpole | (~teddpole7@2404:ab80:b:19c0:19e5:eb0d:10d8:2984) () |
2020-11-17 10:00:01 +0100 | afb | (~afb@185.163.110.116) () |
2020-11-17 10:00:04 +0100 | Fernando-Basso[m | (fernando-b@gateway/shell/matrix.org/x-wqwrqhbwxnrfqluo) (Quit: Idle for 30+ days) |
2020-11-17 10:02:34 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-fwnbgopbizdwfbcr) |
2020-11-17 10:02:39 +0100 | Yumasi | (~guillaume@2a01cb09b06b29ead46a3aeadfb0149b.ipv6.abo.wanadoo.fr) |
2020-11-17 10:03:08 +0100 | kuribas | (~user@ptr-25vy0ia86bt3ifa9hy0.18120a2.ip6.access.telenet.be) |
2020-11-17 10:03:08 +0100 | jespada | (~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 +0100 | britva | (~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 +0100 | ashbreeze | (~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 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-11-17 10:07:47 +0100 | <opqdonut> | yeah, I wrote the class equivalent |
2020-11-17 10:07:53 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 260 seconds) |
2020-11-17 10:08:37 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-17 10:08:42 +0100 | p3n | (~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 +0100 | jedws | (~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 +0100 | Tuplanolla | (~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 +0100 | PacoV | (~pcoves@16.194.31.93.rev.sfr.net) (Quit: leaving) |
2020-11-17 10:09:54 +0100 | Netsu | (5f84a760@96-167-132-95.pool.ukrtel.net) |
2020-11-17 10:10:16 +0100 | PacoV | (~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 +0100 | christo | (~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 +0100 | Axman6 | (~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 +0100 | Axman6 | (~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 +0100 | enoq | (~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 +0100 | christo | (~chris@81.96.113.213) |
2020-11-17 10:17:09 +0100 | britva | (~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 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-17 10:19:01 +0100 | logicmoo | (~dmiles@c-73-67-179-188.hsd1.wa.comcast.net) |
2020-11-17 10:19:08 +0100 | dmiles | (dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 256 seconds) |
2020-11-17 10:19:26 +0100 | sakirious2 | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2020-11-17 10:20:34 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2020-11-17 10:21:05 +0100 | pdxleif_ | (~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com) |
2020-11-17 10:21:14 +0100 | pdxleif | (~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com) (Ping timeout: 265 seconds) |
2020-11-17 10:21:30 +0100 | pdxleif_ | pdxleif |
2020-11-17 10:21:43 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 265 seconds) |
2020-11-17 10:21:43 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Ping timeout: 265 seconds) |
2020-11-17 10:21:43 +0100 | sakirious2 | sakirious |
2020-11-17 10:22:12 +0100 | Rembane | (~Rembane@li346-36.members.linode.com) (Ping timeout: 265 seconds) |
2020-11-17 10:22:37 +0100 | Rembane | (~Rembane@li346-36.members.linode.com) |
2020-11-17 10:25:38 +0100 | PragCypher | (~cypher@li1507-98.members.linode.com) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-11-17 10:25:52 +0100 | PragCypher | (~cypher@li1507-98.members.linode.com) |
2020-11-17 10:26:19 +0100 | petersen_ | (~petersen@redhat/juhp) |
2020-11-17 10:26:49 +0100 | morbeus | (vhamalai@gateway/shell/tkk.fi/x-ufpngpdloddgzoih) (Ping timeout: 246 seconds) |
2020-11-17 10:26:56 +0100 | morbeus | (vhamalai@gateway/shell/tkk.fi/x-sygopmpjleahuvxk) |
2020-11-17 10:27:10 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 246 seconds) |
2020-11-17 10:27:46 +0100 | mniip_ | (~mniip@freenode/staff/mniip) |
2020-11-17 10:27:49 +0100 | petersen_ | petersen |
2020-11-17 10:28:04 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2020-11-17 10:31:52 +0100 | mniip | (~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 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) |
2020-11-17 10:40:34 +0100 | Varis | (~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 +0100 | ArsenArsen | (~Arsen@kshare/developer/ArsenArsen) (Changing host) |
2020-11-17 10:43:12 +0100 | ArsenArsen | (~Arsen@fsf/member/ArsenArsen) |
2020-11-17 10:43:48 +0100 | berberman | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-11-17 10:44:06 +0100 | xsperry | (~as@unaffiliated/xsperry) () |
2020-11-17 10:44:28 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-17 10:44:31 +0100 | berberman | (~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 +0100 | CindyLinz | (~cindy_utf@112.121.78.20) (Ping timeout: 264 seconds) |
2020-11-17 10:50:46 +0100 | CindyLinz | (~cindy_utf@112.121.78.20) |
2020-11-17 10:51:23 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-17 10:51:44 +0100 | <Netsu> | thanks |
2020-11-17 10:52:15 +0100 | Netsu | (5f84a760@96-167-132-95.pool.ukrtel.net) (Remote host closed the connection) |
2020-11-17 10:54:46 +0100 | codeAlways | (uid272474@gateway/web/irccloud.com/x-dbuczpztyxqztxlt) (Quit: Connection closed for inactivity) |
2020-11-17 10:55:12 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2020-11-17 10:55:38 +0100 | oldsk00l | (~znc@ec2-18-130-254-135.eu-west-2.compute.amazonaws.com) |
2020-11-17 10:56:07 +0100 | oldsk00l_ | (~znc@ec2-18-130-254-135.eu-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds) |
2020-11-17 10:56:40 +0100 | hardaker | (~hardaker@193.56.252.12) |
2020-11-17 10:56:42 +0100 | Deewiant | (~deewiant@de1.ut.deewiant.iki.fi) (Ping timeout: 256 seconds) |
2020-11-17 10:57:43 +0100 | Deewiant | (~deewiant@de1.ut.deewiant.iki.fi) |
2020-11-17 10:57:51 +0100 | jollygood2 | (~bc8165ab@217.29.117.252) |
2020-11-17 11:00:00 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-11-17 11:01:10 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-17 11:03:46 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 265 seconds) |
2020-11-17 11:04:28 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2020-11-17 11:05:23 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2020-11-17 11:10:17 +0100 | rprije | (~rprije@124.148.131.132) (Ping timeout: 256 seconds) |
2020-11-17 11:11:23 +0100 | mniip | (~mniip@freenode/staff/mniip) |
2020-11-17 11:15:22 +0100 | mniip_ | (~mniip@freenode/staff/mniip) (Ping timeout: 619 seconds) |
2020-11-17 11:18:17 +0100 | invaser | (~Thunderbi@31.148.23.125) (Ping timeout: 272 seconds) |
2020-11-17 11:18:38 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) |
2020-11-17 11:20:47 +0100 | jzl | (~jzl@unaffiliated/jzl) (Ping timeout: 260 seconds) |
2020-11-17 11:23:19 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-11-17 11:23:48 +0100 | sveit | (~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Quit: Bye) |
2020-11-17 11:24:13 +0100 | toorevitimirp | (~tooreviti@117.182.180.118) (Remote host closed the connection) |
2020-11-17 11:24:17 +0100 | sveit | (~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f) |
2020-11-17 11:26:13 +0100 | toorevitimirp | (~tooreviti@117.182.180.118) |
2020-11-17 11:27:32 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-17 11:31:50 +0100 | mananamenos | (~mananamen@84.122.202.215.dyn.user.ono.com) |
2020-11-17 11:32:20 +0100 | Kaeipi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Quit: Leaving) |
2020-11-17 11:32:22 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff874cf537f47d61e6af.dip0.t-ipconnect.de) |
2020-11-17 11:32:38 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-17 11:33:43 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
2020-11-17 11:34:33 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-17 11:34:50 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2020-11-17 11:36:33 +0100 | PacoV | (~pcoves@16.194.31.93.rev.sfr.net) (Quit: leaving) |
2020-11-17 11:45:02 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-17 11:47:06 +0100 | raichoo | (~raichoo@213.240.178.58) (Quit: Lost terminal) |
2020-11-17 11:48:46 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
2020-11-17 11:49:16 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-11-17 11:50:42 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
2020-11-17 11:55:08 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2020-11-17 11:57:54 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 265 seconds) |
2020-11-17 11:59:30 +0100 | hackage | haskoin-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 +0100 | alp | (~alp@88.126.45.36) (Ping timeout: 260 seconds) |
2020-11-17 12:03:06 +0100 | nut | (~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 +0100 | alp | (~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 +0100 | Unhammerd | Unhammer |
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 +0100 | acidjnk_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 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2020-11-17 12:15:23 +0100 | solonarv | (~solonarv@astrasbourg-653-1-156-155.w90-6.abo.wanadoo.fr) |
2020-11-17 12:15:47 +0100 | zenzike | (uid257060@gateway/web/irccloud.com/x-ekbwjbhyjbwovlhi) |
2020-11-17 12:26:41 +0100 | alp | (~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 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-11-17 12:30:28 +0100 | raichoo | (~raichoo@213.240.178.58) |
2020-11-17 12:31:07 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-17 12:33:02 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:bab2:cd00:4d2d:7b87) (Ping timeout: 264 seconds) |
2020-11-17 12:35:16 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2020-11-17 12:36:33 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-17 12:37:00 +0100 | hackage | haskoin-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 +0100 | hackage | haskoin-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 +0100 | LKoen | (~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 +0100 | chaosmasttter | (~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 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-17 12:43:38 +0100 | Guest48480 | (~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 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:d6bc:df2c:ba38:451b) |
2020-11-17 12:46:36 +0100 | tput | (~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 +0100 | hackage | microlens 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 +0100 | hackage | microlens-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 +0100 | hekkaidekapus_ | hekkaidekapus |
2020-11-17 12:50:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-17 12:52:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-17 12:52:33 +0100 | drbean | (~drbean@TC210-63-209-36.static.apol.com.tw) |
2020-11-17 12:53:55 +0100 | drbean | (~drbean@TC210-63-209-36.static.apol.com.tw) (Client Quit) |
2020-11-17 12:55:11 +0100 | Ariakenom | (~Ariakenom@h-82-196-111-82.NA.cust.bahnhof.se) (Ping timeout: 272 seconds) |
2020-11-17 12:55:28 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds) |
2020-11-17 13:00:02 +0100 | hardaker | (~hardaker@193.56.252.12) () |
2020-11-17 13:00:50 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-11-17 13:01:46 +0100 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds) |
2020-11-17 13:04:17 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
2020-11-17 13:04:50 +0100 | Alleria_ | (~AllahuAkb@2604:2000:1484:26:b962:7f95:ab02:6d5a) (Ping timeout: 264 seconds) |
2020-11-17 13:05:22 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) (Ping timeout: 246 seconds) |
2020-11-17 13:08:01 +0100 | Ariakenom | (~Ariakenom@h-158-174-22-49.NA.cust.bahnhof.se) |
2020-11-17 13:08:10 +0100 | sdx32 | (~sdx23@unaffiliated/sdx23) (Ping timeout: 256 seconds) |
2020-11-17 13:14:03 +0100 | Alleria_ | (~AllahuAkb@2604:2000:1484:26:217f:16b3:ceaa:d387) |
2020-11-17 13:15:34 +0100 | p0a | (~user@unaffiliated/p0a) |
2020-11-17 13:21:54 +0100 | plutoniix | (~q@175.176.222.7) (Quit: Leaving) |
2020-11-17 13:22:20 +0100 | lahwran | (~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 +0100 | lahwran | (~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 +0100 | sphalerite | LinuxHackerman |
2020-11-17 13:26:51 +0100 | LinuxHackerman | sphalerite |
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 +0100 | idhugo | (~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 +0100 | Guest92179 | (~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 +0100 | hackage | hmatrix 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 +0100 | danvet_ | (~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 +0100 | Amras | (~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 +0100 | mputz | (~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 +0100 | Ariakenom | (~Ariakenom@h-158-174-22-49.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
2020-11-17 13:44:04 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Client Quit) |
2020-11-17 13:44:54 +0100 | Ariakenom | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) |
2020-11-17 13:46:32 +0100 | heatsink | (~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 +0100 | heatsink | (~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 +0100 | Lord_of_Life_ | Lord_of_Life |
2020-11-17 13:57:43 +0100 | raichoo | (~raichoo@213.240.178.58) (Read error: Connection reset by peer) |
2020-11-17 13:58:17 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) |
2020-11-17 13:59:09 +0100 | xff0x | (~fox@2001:1a81:52d5:6a00:633e:9aec:a495:3349) (Ping timeout: 272 seconds) |
2020-11-17 13:59:54 +0100 | xff0x | (~fox@2001:1a81:52d5:6a00:7dc4:a65f:e69e:5679) |
2020-11-17 13:59:59 +0100 | raichoo | (~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 +0100 | texasmynsted | (~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 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2020-11-17 14:05:39 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-11-17 14:05:40 +0100 | nbloomf | (~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 +0100 | Rudd0 | (~Rudd0@185.189.115.108) (Ping timeout: 265 seconds) |
2020-11-17 14:09:07 +0100 | raichoo | (~raichoo@213.240.178.58) (Read error: Connection reset by peer) |
2020-11-17 14:09:21 +0100 | raichoo | (~raichoo@213.240.178.58) |
2020-11-17 14:10:52 +0100 | m0b10s | (53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203) |
2020-11-17 14:12:45 +0100 | supercoven | (~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 +0100 | idhugo | (~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 +0100 | m0b10s | (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 +0100 | m0b10s | (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 +0100 | PacoV | (~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 +0100 | kritzefitz | (~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 +0100 | prez | (~prez@unaffiliated/prez) |
2020-11-17 14:24:57 +0100 | kritzefitz | (~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 +0100 | enoq | (~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 +0100 | LaserShark | (~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 +0100 | enoq | (~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 +0100 | nbloomf | (~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 +0100 | Sanchayan | (~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 +0100 | Sanchayan | (~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 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-17 14:35:15 +0100 | brodie_ | (~brodie@207.53.253.137) |
2020-11-17 14:35:35 +0100 | son0p | (~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 +0100 | brodie_ | 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 +0100 | acarrico | (~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 +0100 | brodie | (~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 +0100 | m0b10s | (53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203) (Quit: Connection closed) |
2020-11-17 14:39:16 +0100 | vacm | (~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 +0100 | nbloomf | (~nbloomf@76.217.43.73) |
2020-11-17 14:39:54 +0100 | p0a | (~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 +0100 | m0b10s | (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 +0100 | tromp_ | (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
2020-11-17 14:42:11 +0100 | tromp | (~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 +0100 | da39a3ee5e6b4b0d | (~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 +0100 | m0b10s | (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 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-17 14:45:00 +0100 | m0b10s | (53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203) |
2020-11-17 14:45:18 +0100 | m0b10s | (53dff9cb@gateway/web/cgi-irc/kiwiirc.com/ip.83.223.249.203) (Client Quit) |
2020-11-17 14:48:31 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) |
2020-11-17 14:48:54 +0100 | invaser | (~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds) |
2020-11-17 14:50:11 +0100 | is_null | (~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection) |
2020-11-17 14:50:33 +0100 | nbloomf | (~nbloomf@76.217.43.73) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 14:50:45 +0100 | fendor | (~fendor@178.115.128.157.wireless.dyn.drei.com) |
2020-11-17 14:51:05 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds) |
2020-11-17 14:53:27 +0100 | LaserShark | (~LaserShar@s91904426.blix.com) (Remote host closed the connection) |
2020-11-17 14:55:11 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-11-17 14:55:30 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2020-11-17 14:56:00 +0100 | hackage | ghc-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 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 14:57:23 +0100 | Suigintou | (~Suigintou@92.223.89.101) |
2020-11-17 14:57:35 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2020-11-17 14:57:39 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-11-17 14:58:38 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-17 14:58:54 +0100 | christo | (~chris@81.96.113.213) |
2020-11-17 14:59:53 +0100 | vacm | (~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 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-17 15:02:24 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2020-11-17 15:04:07 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-11-17 15:05:31 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-17 15:10:00 +0100 | hackage | require 0.4.10 - Scrap your qualified import clutter https://hackage.haskell.org/package/require-0.4.10 (NickSeagull) |
2020-11-17 15:12:09 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-17 15:14:04 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-17 15:15:45 +0100 | enoq | (~textual@194-208-146-143.lampert.tv) (Ping timeout: 240 seconds) |
2020-11-17 15:17:19 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-17 15:18:36 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2020-11-17 15:18:48 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-11-17 15:18:55 +0100 | brodie | (~brodie@207.53.253.137) |
2020-11-17 15:21:03 +0100 | mlugg | (c3c2162d@195.194.22.45) |
2020-11-17 15:22:34 +0100 | Tario | (~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 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff874cf537f47d61e6af.dip0.t-ipconnect.de) |
2020-11-17 15:23:36 +0100 | cole-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 +0100 | bitmapper | (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 +0100 | sebben | (~sebastian@dslb-092-076-026-123.092.076.pools.vodafone-ip.de) |
2020-11-17 15:27:18 +0100 | sebben | (~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 +0100 | acarrico | (~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 +0100 | enoq | (~textual@194-208-146-143.lampert.tv) |
2020-11-17 15:35:31 +0100 | hackage | criterion 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 +0100 | darjeeling_ | (~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 +0100 | geekosaur | (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 +0100 | oish | (~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 +0100 | mr_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 +0100 | mlugg | (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 +0100 | christo | (~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 +0100 | mr_yogurt | (~mr_yogurt@5.61.211.35.bc.googleusercontent.com) |
2020-11-17 15:52:50 +0100 | darjeeling_ | (~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 +0100 | bjobjo | (~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 +0100 | bjobjo | (~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 +0100 | cfricke | (~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 +0100 | acarrico | (~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 +0100 | nbloomf | (~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 +0100 | brodie | (~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 +0100 | Suigintou | (~Suigintou@92.223.89.101) () |
2020-11-17 16:00:12 +0100 | <fendor> | right. |
2020-11-17 16:00:51 +0100 | brodie | (~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 +0100 | vicfred | (~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 +0100 | christo | (~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 +0100 | vicfred | (~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 +0100 | jollygood2 | (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2020-11-17 16:02:56 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-17 16:03:06 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds) |
2020-11-17 16:03:12 +0100 | renzhi | (~renzhi@2607:fa49:655f:e600::28da) |
2020-11-17 16:04:06 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-17 16:04:08 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-11-17 16:04:37 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-17 16:05:02 +0100 | acarrico | (~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 +0100 | SanchayanMaity | (~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 +0100 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2020-11-17 16:08:00 +0100 | hackage | http-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 +0100 | hackage | http-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 +0100 | SanchayanMaity | (~Sanchayan@106.201.35.233) (Client Quit) |
2020-11-17 16:09:44 +0100 | da39a3ee5e6b4b0d | (~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 +0100 | SanchayanMaity | (~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 +0100 | da39a3ee5e6b4b0d | (~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 +0100 | Lycurgus | (~niemand@cpe-45-46-134-163.buffalo.res.rr.com) |
2020-11-17 16:16:25 +0100 | darjeeling_ | (~darjeelin@122.245.211.11) (Ping timeout: 264 seconds) |
2020-11-17 16:16:29 +0100 | brodie | (~brodie@207.53.253.137) (Quit: brodie) |
2020-11-17 16:18:33 +0100 | invaser | (~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 +0100 | mputz | (~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 +0100 | cosimone | (~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 +0100 | Entertainment | (~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 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 16:25:22 +0100 | nados | (~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 +0100 | SanchayanMaity | (~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 +0100 | SanchayanMaity | (~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 +0100 | Deide | (~Deide@217.155.19.23) |
2020-11-17 16:26:59 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-17 16:27:02 +0100 | conal | (~conal@64.71.133.70) (Read error: Connection reset by peer) |
2020-11-17 16:27:15 +0100 | is_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 +0100 | SanchayanMaity | (~Sanchayan@106.201.35.233) (Client Quit) |
2020-11-17 16:27:45 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 16:27:50 +0100 | SanchayanMaity | (~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 +0100 | SanchayanMaity | (~Sanchayan@106.201.35.233) (Client Quit) |
2020-11-17 16:29:03 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@cm-171-98-79-192.revip7.asianet.co.th) (Ping timeout: 265 seconds) |
2020-11-17 16:29:12 +0100 | SanchayanMaity | (~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 +0100 | Guest_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 +0100 | bitmapper | (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 +0100 | SanchayanMaity | (~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 +0100 | darjeeling_ | (~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 +0100 | SanchayanMaity | (~Sanchayan@106.201.35.233) |
2020-11-17 16:34:39 +0100 | toorevitimirp | (~tooreviti@117.182.180.118) (Remote host closed the connection) |
2020-11-17 16:34:57 +0100 | morbeus | (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 +0100 | SanchayanMaity | (~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 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Read error: Connection timed out) |
2020-11-17 16:43:22 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:d6bc:df2c:ba38:451b) (Ping timeout: 260 seconds) |
2020-11-17 16:44:15 +0100 | Guest_85 | (5181d645@host81-129-214-69.range81-129.btcentralplus.com) (Remote host closed the connection) |
2020-11-17 16:44:30 +0100 | hackage | hedn 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 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-17 16:45:17 +0100 | idhugo | (~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) |
2020-11-17 16:46:37 +0100 | MarcelineVQ | (~anja@198.254.202.72) (Ping timeout: 260 seconds) |
2020-11-17 16:48:16 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-17 16:50:09 +0100 | MarcelineVQ | (~anja@198.254.202.72) |
2020-11-17 16:51:33 +0100 | Franciman | (~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 +0100 | knupfer | (~Thunderbi@i59F7FFD9.versanet.de) |
2020-11-17 16:55:24 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:9c16:5b76:e160:ad6d) |
2020-11-17 16:55:41 +0100 | jfredett | (~jfredett@178.162.212.214) |
2020-11-17 16:56:34 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) |
2020-11-17 16:56:46 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-17 16:57:14 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-17 16:58:51 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-89-20.w86-212.abo.wanadoo.fr) |
2020-11-17 17:00:03 +0100 | carlomagno1 | (~cararell@148.87.23.11) |
2020-11-17 17:00:03 +0100 | carlomagno | (~cararell@148.87.23.10) (Remote host closed the connection) |
2020-11-17 17:00:26 +0100 | Rudd0 | (~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 +0100 | nuncanada | (~dude@179.235.160.168) |
2020-11-17 17:05:01 +0100 | christo | (~chris@81.96.113.213) |
2020-11-17 17:05:12 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-11-17 17:05:38 +0100 | asthasr | (~asthasr@162.210.29.120) |
2020-11-17 17:07:30 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2020-11-17 17:07:40 +0100 | christo_ | (~chris@81.96.113.213) |
2020-11-17 17:07:42 +0100 | christo | (~chris@81.96.113.213) (Read error: Connection reset by peer) |
2020-11-17 17:08:16 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2020-11-17 17:08:49 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-17 17:09:16 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds) |
2020-11-17 17:10:13 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2020-11-17 17:10:21 +0100 | christo_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-17 17:10:47 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff874cf537f47d61e6af.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-17 17:11:07 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-17 17:11:41 +0100 | hseg | (~gesh@185.120.126.113) |
2020-11-17 17:13:16 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-17 17:13:35 +0100 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
2020-11-17 17:13:39 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-17 17:14:25 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-17 17:15:13 +0100 | nineonine | (~textual@S01061cabc0b095f3.vf.shawcable.net) |
2020-11-17 17:16:14 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 17:16:39 +0100 | nineonine | (~textual@S01061cabc0b095f3.vf.shawcable.net) (Client Quit) |
2020-11-17 17:17:23 +0100 | royal_screwup219 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2020-11-17 17:26:09 +0100 | bitmagie | (~Thunderbi@200116b80683a800c96883fdde0ec4cc.dip.versatel-1u1.de) |
2020-11-17 17:28:10 +0100 | hseg | (~gesh@185.120.126.113) ("WeeChat 2.9") |
2020-11-17 17:28:31 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-17 17:29:48 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-17 17:32:47 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-17 17:33:51 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-17 17:34:14 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-17 17:34:41 +0100 | bitmagie | (~Thunderbi@200116b80683a800c96883fdde0ec4cc.dip.versatel-1u1.de) (Quit: bitmagie) |
2020-11-17 17:35:40 +0100 | Sose__ | (sid429738@gateway/web/irccloud.com/x-vdewfreqbfmetfxe) |
2020-11-17 17:36:45 +0100 | Sose__ | Sose |
2020-11-17 17:39:30 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-17 17:39:52 +0100 | cosimone | (~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 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
2020-11-17 17:43:58 +0100 | Lycurgus | (~niemand@cpe-45-46-134-163.buffalo.res.rr.com) (Quit: Exeunt) |
2020-11-17 17:43:59 +0100 | incertia | (~incertia@d60-65-215-180.col.wideopenwest.com) (Ping timeout: 272 seconds) |
2020-11-17 17:46:29 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
2020-11-17 17:47:54 +0100 | incertia | (~incertia@d60-65-215-180.col.wideopenwest.com) |
2020-11-17 17:50:07 +0100 | kritzefitz | (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
2020-11-17 17:51:02 +0100 | nineonine | (~textual@S01061cabc0b095f3.vf.shawcable.net) |
2020-11-17 17:52:20 +0100 | idhugo | (~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 +0100 | idhugo | (~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) |
2020-11-17 17:53:33 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-11-17 17:55:23 +0100 | codeAlways | (uid272474@gateway/web/irccloud.com/x-twiappljqzzzwfyb) |
2020-11-17 17:55:23 +0100 | v_m_v_ | (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) |
2020-11-17 17:56:00 +0100 | j12866 | (~j12866@cpe-45-47-128-180.nycap.res.rr.com) |
2020-11-17 17:56:14 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-17 17:56:16 +0100 | nineonine | (~textual@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds) |
2020-11-17 17:58:20 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) |
2020-11-17 17:59:23 +0100 | chele | (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2020-11-17 18:01:08 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 18:02:19 +0100 | borne | (~fritjof@200116b8641c82003b6e7a122d52ed4c.dip.versatel-1u1.de) (Quit: WeeChat 2.9) |
2020-11-17 18:05:41 +0100 | sszark | (~sszark@h-213-180.A392.priv.bahnhof.se) |
2020-11-17 18:05:55 +0100 | lucasb | (uid333435@gateway/web/irccloud.com/x-gwvbkmucegxpihno) |
2020-11-17 18:06:07 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-eaonyjbsdauymoqz) |
2020-11-17 18:06:12 +0100 | valdyn | (~valdyn@host-88-217-143-53.customer.m-online.net) (Ping timeout: 265 seconds) |
2020-11-17 18:06:22 +0100 | raichoo | (~raichoo@213.240.178.58) (Quit: Lost terminal) |
2020-11-17 18:11:22 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-11-17 18:12:25 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
2020-11-17 18:16:29 +0100 | crdrost | (~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 +0100 | ddellacosta | (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 +0100 | Hanma[m] | (hanmamatri@gateway/shell/matrix.org/x-okkoowimutlrlfkb) |
2020-11-17 18:20:01 +0100 | hackage | microlens-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 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 272 seconds) |
2020-11-17 18:31:36 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-17 18:32:49 +0100 | j12866 | (~j12866@cpe-45-47-128-180.nycap.res.rr.com) (Quit: WeeChat 2.8) |
2020-11-17 18:33:20 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-17 18:36:10 +0100 | incertia | (~incertia@d60-65-215-180.col.wideopenwest.com) (Ping timeout: 265 seconds) |
2020-11-17 18:37:53 +0100 | enoq | (~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com) |
2020-11-17 18:38:18 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-11-17 18:39:15 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-17 18:40:24 +0100 | ggole | (~ggole@2001:8003:8119:7200:c9ed:f9f6:bc08:34bd) (Quit: Leaving) |
2020-11-17 18:41:30 +0100 | hackage | ngx-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 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-17 18:44:03 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) (Remote host closed the connection) |
2020-11-17 18:44:22 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-11-17 18:44:24 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) (Read error: Connection reset by peer) |
2020-11-17 18:44:26 +0100 | royal_screwup219 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-17 18:44:34 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-17 18:44:42 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-11-17 18:44:44 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) (Read error: Connection reset by peer) |
2020-11-17 18:45:04 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-11-17 18:45:05 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) (Read error: Connection reset by peer) |
2020-11-17 18:45:23 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-11-17 18:45:25 +0100 | Yumasi | (~guillaume@2a01cb09b06b29ead46a3aeadfb0149b.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
2020-11-17 18:45:26 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) (Remote host closed the connection) |
2020-11-17 18:45:46 +0100 | stackdimes | (~stackdime@85.203.46.103) |
2020-11-17 18:46:26 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2020-11-17 18:47:21 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2020-11-17 18:48:16 +0100 | dusty_pacer | (~pi@2600:6c50:80:2f4a:e9d0:6569:1cea:d1d4) (Remote host closed the connection) |
2020-11-17 18:48:16 +0100 | dustypacer | (~pi@137-025-112-171.res.spectrum.com) (Remote host closed the connection) |
2020-11-17 18:48:43 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Client Quit) |
2020-11-17 18:48:46 +0100 | sdrodge | (~sdrodge@unaffiliated/sdrodge) (Ping timeout: 260 seconds) |
2020-11-17 18:48:56 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2020-11-17 18:50:57 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-17 18:52:19 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-11-17 18:52:27 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection) |
2020-11-17 18:53:31 +0100 | idhugo | (~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) (Quit: Leaving) |
2020-11-17 18:54:13 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-17 18:55:00 +0100 | hackage | easy-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 +0100 | klardotsh | (~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net) (Ping timeout: 260 seconds) |
2020-11-17 19:00:01 +0100 | jfredett | (~jfredett@178.162.212.214) () |
2020-11-17 19:00:30 +0100 | knupfer1 | (~Thunderbi@200116b8248c3e001dd00f63aeb782c8.dip.versatel-1u1.de) |
2020-11-17 19:00:30 +0100 | knupfer | (~Thunderbi@i59F7FFD9.versanet.de) (Read error: Connection reset by peer) |
2020-11-17 19:00:31 +0100 | knupfer1 | knupfer |
2020-11-17 19:01:00 +0100 | knupfer | (~Thunderbi@200116b8248c3e001dd00f63aeb782c8.dip.versatel-1u1.de) (Read error: Connection reset by peer) |
2020-11-17 19:01:10 +0100 | knupfer | (~Thunderbi@200116b8248c3e001cba42276e90907c.dip.versatel-1u1.de) |
2020-11-17 19:02:55 +0100 | klardotsh | (~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net) |
2020-11-17 19:03:28 +0100 | carlomagno1 | (~cararell@148.87.23.11) (Remote host closed the connection) |
2020-11-17 19:07:16 +0100 | raehik | (~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 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2020-11-17 19:09:25 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
2020-11-17 19:10:15 +0100 | juuandyy | (~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 +0100 | xff0x | (~fox@2001:1a81:52d5:6a00:7dc4:a65f:e69e:5679) (Ping timeout: 272 seconds) |
2020-11-17 19:16:08 +0100 | xff0x | (~fox@2001:1a81:52d5:6a00:7dc4:a65f:e69e:5679) |
2020-11-17 19:18:03 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-17 19:18:28 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) |
2020-11-17 19:19:31 +0100 | carlomagno | (~cararell@148.87.23.11) |
2020-11-17 19:20:16 +0100 | kuribas | (~user@ptr-25vy0ia86bt3ifa9hy0.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2020-11-17 19:21:02 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-11-17 19:21:58 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-17 19:22:31 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-hhaciizupxxisicz) |
2020-11-17 19:26:20 +0100 | dead10cc | (~rg@2607:fea8:2c40:307:7a35:e25c:842c:6c52) |
2020-11-17 19:29:27 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-17 19:29:37 +0100 | knupfer | (~Thunderbi@200116b8248c3e001cba42276e90907c.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-17 19:30:18 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 260 seconds) |
2020-11-17 19:30:38 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2020-11-17 19:31:56 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection) |
2020-11-17 19:32:44 +0100 | v_m_v_ | (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Remote host closed the connection) |
2020-11-17 19:32:48 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-17 19:36:01 +0100 | hackage | haskoin-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 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-17 19:40:05 +0100 | falafel | (~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 +0100 | geekosaur | (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 +0100 | dead10cc | (~rg@2607:fea8:2c40:307:7a35:e25c:842c:6c52) (Ping timeout: 264 seconds) |
2020-11-17 19:44:06 +0100 | bliminse | (~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 +0100 | bliminse | (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) |
2020-11-17 19:50:31 +0100 | hackage | haskoin-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 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 19:52:46 +0100 | stackdimes | (~stackdime@85.203.46.103) (Quit: WeeChat 2.9) |
2020-11-17 19:53:29 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 19:54:26 +0100 | foursaph | (~sergiu@dynamic-077-008-009-052.77.8.pool.telefonica.de) |
2020-11-17 19:54:42 +0100 | dead10cc | (~rg@2607:fea8:2c40:307:1703:4aa6:d428:f7e7) |
2020-11-17 19:54:42 +0100 | chaosmasttter | (~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 +0100 | doitux|mob | (~doitux|mo@195.206.169.184) |
2020-11-17 19:55:58 +0100 | bliminse | (~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 +0100 | bliminse | (~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 +0100 | cosimone | (~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 +0100 | elfets | (~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 +0100 | hackage | hakyll-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 +0100 | Boomerang | (~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 +0100 | tomjaguarpaw | is 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 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-11-17 20:02:52 +0100 | tomboy64 | (~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 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
2020-11-17 20:03:20 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-17 20:03:21 +0100 | berberman_ | (~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 +0100 | Ariakenom | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Quit: Leaving) |
2020-11-17 20:10:20 +0100 | foursaph | (~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 +0100 | Boomerang | (~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 +0100 | Ariakenom | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) |
2020-11-17 20:19:27 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de) |
2020-11-17 20:19:50 +0100 | monochrom | cries |
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 +0100 | spatchkaa | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Ping timeout: 240 seconds) |
2020-11-17 20:21:10 +0100 | nuncanada | (~dude@179.235.160.168) (Read error: Connection reset by peer) |
2020-11-17 20:22:36 +0100 | britva | (~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 +0100 | britva | (~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 +0100 | servo | (servo@41.141.56.25) |
2020-11-17 20:26:15 +0100 | carlomagno | (~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 +0100 | foursaph_ | (~foursaph@dynamic-077-008-009-052.77.8.pool.telefonica.de) |
2020-11-17 20:27:16 +0100 | invaser | (~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 +0100 | christo | (~chris@81.96.113.213) |
2020-11-17 20:29:22 +0100 | cosimone | (~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 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-17 20:30:04 +0100 | foursaph_ | (~foursaph@dynamic-077-008-009-052.77.8.pool.telefonica.de) (Client Quit) |
2020-11-17 20:30:19 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Read error: Connection reset by peer) |
2020-11-17 20:31:47 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff874cf537f47d61e6af.dip0.t-ipconnect.de) |
2020-11-17 20:32:21 +0100 | Takumo | (takumo@unaffiliated/takumokatekari) (Quit: WeeChat 2.8) |
2020-11-17 20:33:20 +0100 | nuncanada | (~dude@179.235.160.168) |
2020-11-17 20:34:04 +0100 | foursaph | (4d080934@dynamic-077-008-009-052.77.8.pool.telefonica.de) |
2020-11-17 20:34:12 +0100 | foursaph | (4d080934@dynamic-077-008-009-052.77.8.pool.telefonica.de) (Remote host closed the connection) |
2020-11-17 20:34:25 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-11-17 20:34:38 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-17 20:35:14 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-17 20:35:43 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
2020-11-17 20:36:35 +0100 | Guest92179 | (~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 +0100 | son0p | (~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 +0100 | hackage | haskoin-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 +0100 | hackage | arxiv 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 +0100 | st8less | (~st8less@2603:a060:11fd:0:68fe:5aed:dd91:2111) |
2020-11-17 20:46:35 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-11-17 20:46:38 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-17 20:47:36 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-17 20:48:53 +0100 | v_m_v_ | (~vm_v@31-10-157-87.cgn.dynamic.upc.ch) |
2020-11-17 20:49:15 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-17 20:50:07 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:9c16:5b76:e160:ad6d) (Ping timeout: 260 seconds) |
2020-11-17 20:50:53 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2020-11-17 20:51:55 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-17 20:52:06 +0100 | nineonine | (~textual@50.216.62.2) |
2020-11-17 20:52:49 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 20:55:50 +0100 | dead10cc | (~rg@2607:fea8:2c40:307:1703:4aa6:d428:f7e7) (Ping timeout: 264 seconds) |
2020-11-17 20:56:44 +0100 | kaeru | (~kaeru@185.163.110.116) |
2020-11-17 20:58:24 +0100 | spatchkaa | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) |
2020-11-17 20:58:25 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
2020-11-17 21:01:46 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds) |
2020-11-17 21:02:11 +0100 | ericsagn1 | (~ericsagne@2405:6580:0:5100:94c2:72b2:8a99:7096) |
2020-11-17 21:03:34 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 21:04:31 +0100 | invaser | (~Thunderbi@31.148.23.125) |
2020-11-17 21:04:35 +0100 | raichoo | (~raichoo@dslb-178-009-065-096.178.009.pools.vodafone-ip.de) |
2020-11-17 21:07:18 +0100 | dead10cc | (~rg@2607:fea8:2c40:307:78ba:7ae3:3565:1092) |
2020-11-17 21:08:36 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2020-11-17 21:12:47 +0100 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2020-11-17 21:12:48 +0100 | v_m_v_ | (~vm_v@31-10-157-87.cgn.dynamic.upc.ch) (Remote host closed the connection) |
2020-11-17 21:14:25 +0100 | servo | (servo@41.141.56.25) (Ping timeout: 240 seconds) |
2020-11-17 21:15:50 +0100 | v_m_v_ | (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) |
2020-11-17 21:15:51 +0100 | ntqz | (ntqz@75.175.141.156) |
2020-11-17 21:17:28 +0100 | bgamari_ | (~bgamari@2001:470:e438::1) |
2020-11-17 21:18:27 +0100 | doitux|mob | (~doitux|mo@195.206.169.184) (Remote host closed the connection) |
2020-11-17 21:18:41 +0100 | dead10cc | (~rg@2607:fea8:2c40:307:78ba:7ae3:3565:1092) ("Konversation terminated!") |
2020-11-17 21:19:19 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-11-17 21:21:46 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2020-11-17 21:23:36 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-17 21:26:40 +0100 | Franciman | (~francesco@host-82-56-223-169.retail.telecomitalia.it) |
2020-11-17 21:28:01 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-17 21:29:45 +0100 | jamestmartin | (~james@jtmar.me) (Quit: ZNC 1.8.1+deb1 - https://znc.in) |
2020-11-17 21:30:27 +0100 | nados | (~dan@69-165-210-185.cable.teksavvy.com) (Remote host closed the connection) |
2020-11-17 21:30:51 +0100 | nados | (~dan@69-165-210-185.cable.teksavvy.com) |
2020-11-17 21:30:55 +0100 | knupfer | (~Thunderbi@200116b8248c3e000ccc3cfffed69552.dip.versatel-1u1.de) |
2020-11-17 21:30:55 +0100 | knupfer | (~Thunderbi@200116b8248c3e000ccc3cfffed69552.dip.versatel-1u1.de) (Client Quit) |
2020-11-17 21:31:13 +0100 | knupfer | (~Thunderbi@200116b8248c3e00587246ff6e545e09.dip.versatel-1u1.de) |
2020-11-17 21:31:29 +0100 | u0_a298 | (~user@47.206.148.226) |
2020-11-17 21:32:51 +0100 | Alex1 | (~Alex@185.163.110.116) |
2020-11-17 21:33:03 +0100 | v_m_v_ | (~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Remote host closed the connection) |
2020-11-17 21:34:18 +0100 | jamestmartin | (james@jtmar.me) |
2020-11-17 21:35:23 +0100 | vacm | (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-17 21:36:46 +0100 | zephyz | (~zephyz@4e69715d.skybroadband.com) |
2020-11-17 21:36:55 +0100 | jamestmartin | (james@jtmar.me) (Client Quit) |
2020-11-17 21:37:11 +0100 | jamestmartin | (james@jtmar.me) |
2020-11-17 21:40:03 +0100 | sdx23 | (~sdx23@unaffiliated/sdx23) |
2020-11-17 21:41:13 +0100 | britva | (~britva@2a02:aa13:7240:2980:7da5:a1a0:c038:90b4) (Quit: This computer has gone to sleep) |
2020-11-17 21:42:37 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-11-17 21:43:23 +0100 | justanotheruser | (~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 +0100 | jamestmartin | (james@jtmar.me) (Quit: ZNC 1.8.2+deb1 - https://znc.in) |
2020-11-17 21:44:41 +0100 | jamestmartin | (~james@jtmar.me) |
2020-11-17 21:45:03 +0100 | acarrico | (~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 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-17 21:46:13 +0100 | britva | (~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 +0100 | britva | (~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 +0100 | jamestmartin | (~james@jtmar.me) (Client Quit) |
2020-11-17 21:48:24 +0100 | jamestmartin | (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 +0100 | knupfer | (~Thunderbi@200116b8248c3e00587246ff6e545e09.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-17 21:49:40 +0100 | jamestmartin | (james@jtmar.me) (Client Quit) |
2020-11-17 21:49:56 +0100 | jamestmartin | (~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 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 260 seconds) |
2020-11-17 21:51:08 +0100 | jamestmartin | (~james@jtmar.me) (Client Quit) |
2020-11-17 21:51:09 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2020-11-17 21:51:19 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
2020-11-17 21:51:25 +0100 | jamestmartin | (~james@jtmar.me) |
2020-11-17 21:51:42 +0100 | Alleria_ | (~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 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 21:55:30 +0100 | u0_a298 | (~user@47.206.148.226) (Read error: Connection reset by peer) |
2020-11-17 21:55:31 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2020-11-17 21:55:45 +0100 | u0_a298 | (~user@47.206.148.226) |
2020-11-17 21:56:04 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) |
2020-11-17 21:56:16 +0100 | ntqz | (ntqz@75.175.141.156) (Remote host closed the connection) |
2020-11-17 21:59:28 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-11-17 22:00:01 +0100 | Alex1 | (~Alex@185.163.110.116) () |
2020-11-17 22:02:38 +0100 | jamestmartin | (~james@jtmar.me) (Quit: ZNC 1.8.2+deb1 - https://znc.in) |
2020-11-17 22:02:54 +0100 | jamestmartin | (james@jtmar.me) |
2020-11-17 22:04:36 +0100 | bliminse | (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 240 seconds) |
2020-11-17 22:06:21 +0100 | vacm | (~vacwm@70.23.92.191) |
2020-11-17 22:07:31 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-17 22:09:57 +0100 | knupfer | (~Thunderbi@i59F7FFD9.versanet.de) |
2020-11-17 22:12:01 +0100 | u0_a298 | (~user@47.206.148.226) (Remote host closed the connection) |
2020-11-17 22:12:28 +0100 | u0_a298 | (~user@47.206.148.226) |
2020-11-17 22:12:29 +0100 | mirrorbird | (~psutcliff@89.40.182.158) |
2020-11-17 22:14:37 +0100 | chaosmasttter | (~chaosmast@p200300c4a73c52013d9d8982c174fa36.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
2020-11-17 22:14:37 +0100 | u0_a298 | (~user@47.206.148.226) (Read error: Connection reset by peer) |
2020-11-17 22:14:45 +0100 | abrar | (~abrar@static-108-30-103-121.nycmny.fios.verizon.net) |
2020-11-17 22:14:54 +0100 | u0_a298 | (~user@47.206.148.226) |
2020-11-17 22:16:56 +0100 | u0_a298 | (~user@47.206.148.226) (Read error: Connection reset by peer) |
2020-11-17 22:17:02 +0100 | abrar | (~abrar@static-108-30-103-121.nycmny.fios.verizon.net) (Client Quit) |
2020-11-17 22:17:14 +0100 | u0_a298 | (~user@47.206.148.226) |
2020-11-17 22:18:30 +0100 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 265 seconds) |
2020-11-17 22:19:06 +0100 | dhouthoo | (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
2020-11-17 22:19:45 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
2020-11-17 22:19:55 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-17 22:21:56 +0100 | u0_a298 | (~user@47.206.148.226) (Read error: Connection reset by peer) |
2020-11-17 22:21:56 +0100 | havenwood1 | (~havenwood@185.204.1.185) |
2020-11-17 22:22:13 +0100 | u0_a298 | (~user@47.206.148.226) |
2020-11-17 22:24:51 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-17 22:28:28 +0100 | invaser | (~Thunderbi@31.148.23.125) (Ping timeout: 272 seconds) |
2020-11-17 22:28:43 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
2020-11-17 22:29:03 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-17 22:34:54 +0100 | crdrost | (~crdrost@2601:646:8280:85f0:7445:34ce:4342:d2eb) (Quit: This computer has gone to sleep) |
2020-11-17 22:36:04 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2020-11-17 22:36:23 +0100 | britva | (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep) |
2020-11-17 22:38:28 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-17 22:38:29 +0100 | u0_a298 | (~user@47.206.148.226) (Read error: Connection reset by peer) |
2020-11-17 22:38:50 +0100 | u0_a298 | (~user@47.206.148.226) |
2020-11-17 22:38:57 +0100 | sdrodge | (~sdrodge@unaffiliated/sdrodge) |
2020-11-17 22:39:13 +0100 | mirrorbird | (~psutcliff@89.40.182.158) (Ping timeout: 264 seconds) |
2020-11-17 22:39:17 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-17 22:40:13 +0100 | abrar | (~abrar@static-108-30-103-121.nycmny.fios.verizon.net) |
2020-11-17 22:40:14 +0100 | bgamari_ | (~bgamari@2001:470:e438::1) (Ping timeout: 264 seconds) |
2020-11-17 22:40:16 +0100 | bgamari | (~bgamari@72.65.101.76) |
2020-11-17 22:40:24 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 22:40:24 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-17 22:40:32 +0100 | nuncanada | (~dude@179.235.160.168) (Read error: Connection reset by peer) |
2020-11-17 22:40:34 +0100 | abrar | (~abrar@static-108-30-103-121.nycmny.fios.verizon.net) (Client Quit) |
2020-11-17 22:40:50 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 22:41:11 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-17 22:42:08 +0100 | nut | (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds) |
2020-11-17 22:42:20 +0100 | sord937 | (~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 +0100 | u0_a298 | (~user@47.206.148.226) (Read error: Connection reset by peer) |
2020-11-17 22:47:45 +0100 | u0_a298 | (~user@47.206.148.226) |
2020-11-17 22:49:18 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) |
2020-11-17 22:49:27 +0100 | falafel | (~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 +0100 | FreeBirdLjj | (~freebirdl@101.228.42.108) (Ping timeout: 272 seconds) |
2020-11-17 22:55:31 +0100 | tdhttt | (~tdhttt@2600:8802:2203:2500:24c4:3660:b516:981e) (Remote host closed the connection) |
2020-11-17 22:55:32 +0100 | zephyz | (~zephyz@4e69715d.skybroadband.com) (Read error: Connection reset by peer) |
2020-11-17 22:55:32 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-17 22:57:29 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-17 22:57:30 +0100 | knupfer | (~Thunderbi@i59F7FFD9.versanet.de) (Ping timeout: 260 seconds) |
2020-11-17 22:58:32 +0100 | rprije | (~rprije@124.148.131.132) |
2020-11-17 22:59:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-17 23:00:36 +0100 | nuncanada | (~dude@179.235.160.168) |
2020-11-17 23:02:19 +0100 | alp | (~alp@2a01:e0a:58b:4920:ac08:1079:c3a9:84b6) |
2020-11-17 23:04:29 +0100 | bliminse | (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) |
2020-11-17 23:05:43 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2020-11-17 23:06:01 +0100 | hackage | j 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 +0100 | conal | (~conal@64.71.133.70) |
2020-11-17 23:09:31 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2020-11-17 23:09:58 +0100 | falafel | (~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 +0100 | iqubic | (~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 +0100 | raichoo | (~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 +0100 | codeAlways | (uid272474@gateway/web/irccloud.com/x-twiappljqzzzwfyb) (Quit: Connection closed for inactivity) |
2020-11-17 23:12:56 +0100 | mananamenos | (~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 +0100 | livvy | (~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 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-17 23:18:41 +0100 | crdrost | (~crdrost@c-98-207-102-156.hsd1.ca.comcast.net) |
2020-11-17 23:20:17 +0100 | u0_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 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-17 23:23:08 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-17 23:23:58 +0100 | conal | (~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 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-17 23:26:43 +0100 | zephyz | (~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 +0100 | hackage | subG 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 +0100 | nut | (~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 +0100 | Franciman | (~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 +0100 | asthasr | (~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 +0100 | Ariakenom | (~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 +0100 | spatchkaa | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Ping timeout: 240 seconds) |
2020-11-17 23:44:38 +0100 | m4lvin | (~m4lvin@w4eg.de) (Quit: m4lvin) |
2020-11-17 23:44:47 +0100 | Deide | (~Deide@217.155.19.23) |
2020-11-17 23:44:59 +0100 | m4lvin | (~m4lvin@w4eg.de) |
2020-11-17 23:45:37 +0100 | cr3 | (~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 +0100 | Chi1thangoo | (~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) |