2020-11-30 00:00:23 +0100 | <maerwald> | Such discussions have a tendency to derail into gibberish... (are we there yet?), but formal discussions have their own as well: bikeshedding. |
2020-11-30 00:00:24 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-30 00:00:52 +0100 | <erisco> | oh there is nothing like a perfectly rational, coherent, formal discussion about absolutely nothing significant |
2020-11-30 00:01:00 +0100 | <monochrom> | Yes, we have long understood PEBKAC |
2020-11-30 00:01:05 +0100 | <MarcelineVQ> | re: feeling. haskell's use of whitespace has ruined me for other languages |
2020-11-30 00:01:07 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 00:01:40 +0100 | <erisco> | but on the other hand, I feel like these feelings (hah) need to be put in their place |
2020-11-30 00:01:42 +0100 | <MarcelineVQ> | all I can use now is haskell-like things |
2020-11-30 00:02:10 +0100 | <erisco> | because it seems to be, and I've encountered this, that some project their preferences as matters of fact |
2020-11-30 00:02:38 +0100 | <erisco> | like where you ought to put your commas and braces and whether it is okay to have single-letter variable names and how many lines per file and on and one |
2020-11-30 00:02:57 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-ubahtloahdzifjhq) (Quit: Connection closed for inactivity) |
2020-11-30 00:02:57 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-30 00:03:27 +0100 | <erisco> | if I like putting my commas first rather than last on a line and someone says it is unreadable, that is their experience of it |
2020-11-30 00:03:39 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 260 seconds) |
2020-11-30 00:04:05 +0100 | <maerwald> | yes, commas have caused engineering teams to split up :D |
2020-11-30 00:04:23 +0100 | <erisco> | are you leading or trailing? |
2020-11-30 00:04:38 +0100 | <monochrom> | This is why SPJ is leading. >:) |
2020-11-30 00:05:24 +0100 | <ski> | i think i always did leading, because of the aesthetics |
2020-11-30 00:05:32 +0100 | <ski> | (i like to line things up) |
2020-11-30 00:05:40 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-30 00:05:41 +0100 | <maerwald> | My policy wrt formatting is similar to the WTFPL license text |
2020-11-30 00:06:07 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 00:06:42 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 00:07:18 +0100 | <maerwald> | I barely even care what formatting ppl use in PRs... I mean. If you're an open source project and someone contributes... it's time for celebration, screw formatting :p |
2020-11-30 00:07:26 +0100 | <monochrom> | Is that basically centre-align every line, except left-align for the last line? |
2020-11-30 00:07:54 +0100 | <erisco> | my first foray into programming didn't involve whitespace |
2020-11-30 00:07:56 +0100 | <ski> | erisco : "when A and not A are both true, what do you have" -- linear logic ? |
2020-11-30 00:07:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 00:08:27 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 00:08:29 +0100 | <MarcelineVQ> | human involvement |
2020-11-30 00:09:35 +0100 | <erisco> | then a mentor showed me how to format my html elements and boy was web development so much easier |
2020-11-30 00:09:38 +0100 | <maerwald> | if you calculated the times engineering teams have discussed non-sente topics like formatting, maybe you could calculate the wasted time or the economical damage :p |
2020-11-30 00:09:43 +0100 | <erisco> | practically took all the challenge out! |
2020-11-30 00:12:21 +0100 | hackage | pg-extras 0.0.1 - PostgreSQL database performance insights. https://hackage.haskell.org/package/pg-extras-0.0.1 (pawurb) |
2020-11-30 00:13:29 +0100 | <monochrom> | https://twitter.com/HisCursedness/status/788690145822306304 |
2020-11-30 00:14:00 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-30 00:14:44 +0100 | <xerox_> | that's beautiful modulo a couple columns |
2020-11-30 00:15:56 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 00:16:27 +0100 | <maerwald> | monochrom: lol, ok... I guess I do care about it *somewhat* |
2020-11-30 00:16:28 +0100 | <erisco> | when you take leading delimiters to their ultimate conclusion you also lead with semicolons |
2020-11-30 00:16:36 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 00:16:41 +0100 | <erisco> | I had a hard time seriously staying on board with that, though I tried :P |
2020-11-30 00:16:44 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 00:17:29 +0100 | <monochrom> | That's what SPJ does. Lead with semicolons. And the leading semicolons are vertically aligned with { and } |
2020-11-30 00:17:30 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2020-11-30 00:17:49 +0100 | <monochrom> | <pun>Follow the lead of SPJ!</pun> |
2020-11-30 00:18:12 +0100 | <erisco> | really? well great minds and all that |
2020-11-30 00:18:27 +0100 | <maerwald> | there should be a haskell formatter that turns your code into SPJ style |
2020-11-30 00:18:42 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-11-30 00:19:09 +0100 | <monochrom> | The trouble is that only SPJ does it, in all of the Haskell community. So yeah we simply call it the SPJ style. |
2020-11-30 00:19:47 +0100 | <xerox_> | always liked that style |
2020-11-30 00:19:54 +0100 | <monochrom> | I used to do that a bit, but only because an old generation of auto-indentation editor plugin was dumb. |
2020-11-30 00:19:59 +0100 | <erisco> | I have a style I don't see others using |
2020-11-30 00:19:59 +0100 | contiver__ | (~contiver@84-115-64-108.wifi.dynamic.surfer.at) (Ping timeout: 260 seconds) |
2020-11-30 00:20:24 +0100 | <erisco> | it is kind of regressive, but it started with whatever editor I was using at the time as a workaround |
2020-11-30 00:20:25 +0100 | <maerwald> | we need AI in formatters |
2020-11-30 00:20:34 +0100 | <erisco> | now I just like it |
2020-11-30 00:21:07 +0100 | <erisco> | here you can see by example https://hackage.haskell.org/package/control-dotdotdot-0.1.0.1/docs/src/Control-DotDotDot.html#DotD… |
2020-11-30 00:21:37 +0100 | <dolio> | Dissapointing that almost no one replying to that tweet recognized that the problem is that the compiler requires all that extra garbage to be added to the code that is already easy to understand. |
2020-11-30 00:21:42 +0100 | <monochrom> | Yes please Markov chain that tells me how many leading spaces I need for the next line. :) |
2020-11-30 00:22:03 +0100 | <xerox_> | yuck |
2020-11-30 00:22:44 +0100 | <monochrom> | dolio, that's a doctrine of the layout-insensitive religion. |
2020-11-30 00:23:29 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 00:23:29 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit) |
2020-11-30 00:23:35 +0100 | <monochrom> | Either that, or layout parsing is really tricky. |
2020-11-30 00:23:36 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 00:24:06 +0100 | <dolio> | It probably is when you write your parsers in C like most people do. |
2020-11-30 00:24:16 +0100 | <dolio> | That's why they have compiler books that are like 70% parsing. |
2020-11-30 00:24:18 +0100 | <hekkaidekapus> | The code in that tweet is fine. The right margin should be the place to stuff boilerplate; if you don’t like boilerplate, increase the column count where the margin starts. By the way, 80 or 120? :p |
2020-11-30 00:24:22 +0100 | <maerwald> | ok, I'm a believer in inconsistent formatting... I don't mind if ppl exercise different styles in one codebase. Because it's all *information*. Why would you hide it? Scared your pattern recognition apparatus overloads? That's more likely to happen due to the actual code |
2020-11-30 00:25:02 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-30 00:25:23 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 272 seconds) |
2020-11-30 00:25:28 +0100 | <erisco> | my elitism is saying it is people who have only experienced one style, either because they are new or stubborn |
2020-11-30 00:25:47 +0100 | <monochrom> | newborn or stubborn \∩/ |
2020-11-30 00:25:59 +0100 | <hekkaidekapus> | :d |
2020-11-30 00:26:16 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 00:26:39 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2020-11-30 00:26:42 +0100 | <erisco> | I don't know how you can care that much once you have some practice in a variety of different syntax styles |
2020-11-30 00:26:56 +0100 | <erisco> | and, lord help you, mathematics |
2020-11-30 00:27:15 +0100 | <alx741> | hello all, I think some months ago I read about a framework (new one?) that advocates for server-side rendering but also provides a list of principles of what it believes makes for good modern web frameworks (server side rendering being one of them), does anyone knows which framework that would be? I'm really after that list of principles but can't recall its name :/ |
2020-11-30 00:27:40 +0100 | <maerwald> | I think it's the hope that consistent formatting will somehow make the team more productive... |
2020-11-30 00:27:42 +0100 | <monochrom> | I say that layout parsing is tricky because the rules in the Haskell Report are almost as long as C++ rules for disambiguating multiple inheritance of a comon field, which is infamous for being tricky and complex and "no one actually understands in full". |
2020-11-30 00:27:53 +0100 | <sondr3> | alx741: IHP maybe? |
2020-11-30 00:27:56 +0100 | <Axman6> | alx741: maybe miso? |
2020-11-30 00:28:04 +0100 | <Axman6> | maybe Maybe? |
2020-11-30 00:28:05 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-11-30 00:28:17 +0100 | <sondr3> | Either maybe |
2020-11-30 00:28:44 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 00:29:27 +0100 | <alx741> | sondr3: I remember the web page of it had such a list's name, but IHP doesn't so perhaps they've changed it? |
2020-11-30 00:29:59 +0100 | <alx741> | Axman6: I've checked but there is no mention of such a list |
2020-11-30 00:30:18 +0100 | <maerwald> | so the language is sound, but the parser not? :D |
2020-11-30 00:30:51 +0100 | <maerwald> | purely functional programming language, that should parse... mostly |
2020-11-30 00:30:53 +0100 | <alx741> | I remember it had a name, similar to how OOP has the 'SOLID' principles (it was a nice sounding name), I can't remember and it's driving me crazy :p |
2020-11-30 00:31:07 +0100 | <erisco> | is the list longer or shorter than the list of physicists who truly understand quantum mechanics? |
2020-11-30 00:31:29 +0100 | <dolio> | Haskell's layout sensitivity is a lot more complicated than the sensitivity in that tweet. |
2020-11-30 00:31:51 +0100 | <erisco> | oh wait, I merged conversations |
2020-11-30 00:31:54 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 256 seconds) |
2020-11-30 00:32:17 +0100 | <Axman6> | alx741: was it PHP, Purescript, Haskell, Postgresql? |
2020-11-30 00:32:21 +0100 | <erisco> | thought that was a list of people who fully understood C++ parsing |
2020-11-30 00:32:55 +0100 | <monochrom> | Ah OK fair, dolio. |
2020-11-30 00:33:03 +0100 | <sondr3> | Axman6: lol, nice acronym |
2020-11-30 00:33:17 +0100 | <dolio> | I guess a problem is people only knowing Python as an example. If they did know Haskell, they could realize that languages could adopt optional layout sensitivity to avoid breaking existing code, so there's no excuse for perpetuating the braces and semicolons. |
2020-11-30 00:33:26 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 00:33:29 +0100 | <Axman6> | MPHPGA - Make PHP GReat Again |
2020-11-30 00:33:38 +0100 | <dolio> | The requirement, that is. |
2020-11-30 00:34:40 +0100 | <alx741> | Axman6: I believe it was a Haskell web framework, hence I'm asking here... but I do realize that could also be a memory fluke |
2020-11-30 00:35:03 +0100 | <Axman6> | it wasn't yesod? |
2020-11-30 00:35:43 +0100 | <alx741> | Axman6: pretty sure it wasn't because that's what I currently use |
2020-11-30 00:36:16 +0100 | <alx741> | Oh well maybe I remember on my sleep :) |
2020-11-30 00:36:27 +0100 | <alx741> | *I'll |
2020-11-30 00:38:24 +0100 | irc_user | (uid423822@gateway/web/irccloud.com/x-qjzncdzdidsoxfjl) (Quit: Connection closed for inactivity) |
2020-11-30 00:38:45 +0100 | <monochrom> | Yes, I wish Python supported {;] so I could write one-liners on the REPL when it's a really short one-liner. The advantage of one-liners on the REPL, when it's short, is that I can actually edit any of it before I press enter. |
2020-11-30 00:38:59 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) |
2020-11-30 00:39:43 +0100 | <monochrom> | If the REPL forces you to press enter 5 times, it means you're screwed whenever you realize you made a typo before the 1st enter. |
2020-11-30 00:39:56 +0100 | <Axman6> | need more heredocs |
2020-11-30 00:41:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-30 00:41:59 +0100 | <erisco> | just deconflict the keys |
2020-11-30 00:42:17 +0100 | <erisco> | shift+enter has been a way to put newlines in text fields |
2020-11-30 00:42:17 +0100 | <sondr3> | Anyone know of a good way to go from a char to its UTF8 symbol? E.g. '\955' to λ |
2020-11-30 00:42:27 +0100 | <shachaf> | monochrom: The other option would be an environment that supports multiple-line inputs and still has the advantages of a REPL. |
2020-11-30 00:42:39 +0100 | <shachaf> | sondr3: UTF-8 as in the encoding in bytes? |
2020-11-30 00:42:45 +0100 | <Axman6> | sondr3: I don't understand the question |
2020-11-30 00:43:10 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) (Client Quit) |
2020-11-30 00:43:29 +0100 | <erisco> | "UTF8 symbol" isn't a thing I have heard of |
2020-11-30 00:43:43 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2020-11-30 00:43:46 +0100 | <sondr3> | Uh, so I have a bunch of characters that I'm reading, and I want to go from their decimal value to its glyph |
2020-11-30 00:44:06 +0100 | <Axman6> | how are you reading them? |
2020-11-30 00:44:10 +0100 | <erisco> | so you have a ttf or something? |
2020-11-30 00:44:12 +0100 | <sondr3> | Megaparsec :D |
2020-11-30 00:44:21 +0100 | <monochrom> | You know what, show actual code. |
2020-11-30 00:44:35 +0100 | <monochrom> | @where paste |
2020-11-30 00:44:35 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
2020-11-30 00:45:01 +0100 | Amras | (~Amras@unaffiliated/amras) (Ping timeout: 272 seconds) |
2020-11-30 00:45:13 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2020-11-30 00:45:19 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-39-70-27-244-102.dsl.bell.ca) |
2020-11-30 00:45:50 +0100 | <monochrom> | But I guess a possible short answer is that if you use putChar or putStr or putStrLn you will see your λ alright, if you use print you don't, and that's by design. |
2020-11-30 00:46:19 +0100 | <sondr3> | I'm writing a Scheme implementation and it writes characters as `\#VAL` (or `\#xHEX`) and uses this as an example: `#\x03BB ;λ(if character is supported)` |
2020-11-30 00:46:27 +0100 | <monochrom> | If you use show you don't either, and print uses show, that's why. |
2020-11-30 00:47:07 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-30 00:47:07 +0100 | <monochrom> | Actually I think I can use yahb to show you. But you should also do your experiment in ghci to confirm. |
2020-11-30 00:47:18 +0100 | <monochrom> | % print '\955' |
2020-11-30 00:47:18 +0100 | <yahb> | monochrom: '\955' |
2020-11-30 00:47:23 +0100 | <monochrom> | % putChar '\955' |
2020-11-30 00:47:23 +0100 | <yahb> | monochrom: λ |
2020-11-30 00:47:24 +0100 | <erisco> | it just sounds like there is confusion on encodings versus code points versus glyphs |
2020-11-30 00:47:40 +0100 | <monochrom> | Yeah there's also that. But that would be a 1-hour lecture. |
2020-11-30 00:47:42 +0100 | <erisco> | and maybe the answer can be found in understanding what each of those are |
2020-11-30 00:47:57 +0100 | <erisco> | there is that Joel Spolsky article |
2020-11-30 00:48:12 +0100 | <monochrom> | a 1-hour lecture that could be saved by reading joeysoftware's article on this topic, but who still remembers there is such a thing |
2020-11-30 00:48:15 +0100 | <sondr3> | ¯\_(ツ)_/¯ |
2020-11-30 00:48:29 +0100 | <nitrix> | Not very Haskell-y but I can't think of a better place to ask: Is there terminology to distinguish whether two things compare equal after evaluation vs. them being actually the same expression? |
2020-11-30 00:48:41 +0100 | <monochrom> | People now only know that emojies "just work" |
2020-11-30 00:49:25 +0100 | <erisco> | they got added to computers about a decade ago, weren't you aware? |
2020-11-30 00:49:47 +0100 | <nitrix> | As in, `1 + 1 = 2`. Clearly there's "equality" but these two things isn't the same. I don't know if mathematics/logic cares to name those? |
2020-11-30 00:49:50 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) |
2020-11-30 00:49:53 +0100 | <erisco> | that was roughly my experience when I first saw one on a mobile phone :P |
2020-11-30 00:50:02 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-30 00:50:15 +0100 | alice_ | (~alice@209.131.251.182) |
2020-11-30 00:50:31 +0100 | <nitrix> | I guess I'm asking for something beta-reduction related. |
2020-11-30 00:50:39 +0100 | <alice_> | how does ghc garbage collection work |
2020-11-30 00:50:53 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
2020-11-30 00:51:21 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-30 00:51:49 +0100 | <hekkaidekapus_> | > chr 955 -- sondr3 |
2020-11-30 00:51:51 +0100 | <lambdabot> | '\955' |
2020-11-30 00:51:59 +0100 | <hekkaidekapus_> | > ord 'λ' |
2020-11-30 00:52:02 +0100 | <lambdabot> | 955 |
2020-11-30 00:52:03 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-11-30 00:52:06 +0100 | <erisco> | nitrix, there definitional equality which would say 2 = 1 + 1 only when 2 is defined by 1 + 1 |
2020-11-30 00:53:17 +0100 | <erisco> | and a common name for the other sort is slipping my mind |
2020-11-30 00:53:28 +0100 | <nitrix> | erisco, So the terminology I'm after is "definitional equality"? What are the other options, judgmental equality? |
2020-11-30 00:53:30 +0100 | <MarcelineVQ> | nitrix: extentional equality |
2020-11-30 00:53:57 +0100 | <nitrix> | erisco, And, Google just happily told me what I'm after. Apparently I want to look into "homotopy theory" :D |
2020-11-30 00:54:08 +0100 | <MarcelineVQ> | Though that's not specifically about if they're evaluated first |
2020-11-30 00:54:11 +0100 | <erisco> | well there are all sorts of equalities |
2020-11-30 00:54:37 +0100 | <MarcelineVQ> | nitrix: https://en.wikipedia.org/wiki/Extensionality would be my first stop |
2020-11-30 00:54:37 +0100 | <sondr3> | hekkaidekapus_: Is there a way to do that in reverse? I haven't been able to find anything/figure it out |
2020-11-30 00:54:42 +0100 | <nitrix> | MarcelineVQ, I think you're closer. I'm doing predicate logic. |
2020-11-30 00:55:16 +0100 | <hekkaidekapus_> | sondr3: What reversal? |
2020-11-30 00:55:41 +0100 | <Axman6> | alice_: that's a fairly broad question, do you have a more specific question? |
2020-11-30 00:57:03 +0100 | <erisco> | I find univalence particularly mind-bending and pray one day I have the motivation to learn more |
2020-11-30 00:57:29 +0100 | <MarcelineVQ> | erisco: try cubical agda :> |
2020-11-30 00:57:52 +0100 | <MarcelineVQ> | https://gallais.github.io/blog/first-cubical-experiment.html |
2020-11-30 00:57:55 +0100 | <sondr3> | hekkaidekapus_: How do I do what putChar does only `Char -> String` instead of `IO ()`. I want to use this in my Show instance for characters |
2020-11-30 00:58:02 +0100 | <erisco> | well I'd want to understand more basically what role cubical type theory is playing |
2020-11-30 00:58:07 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2020-11-30 00:58:14 +0100 | <MarcelineVQ> | it's like regular type theory but it's a cube |
2020-11-30 00:58:15 +0100 | <Axman6> | :t (:"") |
2020-11-30 00:58:17 +0100 | <lambdabot> | Char -> [Char] |
2020-11-30 00:58:31 +0100 | <erisco> | ah, can't believe I didn't think of it! |
2020-11-30 00:58:45 +0100 | <MarcelineVQ> | yes the tough things are sometimes obvious in retrospect |
2020-11-30 00:59:07 +0100 | <nitrix> | MarcelineVQ, Yeah, I think you nailed it. Extensional vs Intentional equality. Thank you sir :) |
2020-11-30 00:59:33 +0100 | <erisco> | it seems like, just from looking at univalence, that that really is the fundamental equality worth concern over, as programmers |
2020-11-30 01:00:01 +0100 | <erisco> | and sure there is room to do the same thing differently, but univalence says that isn't making anything new |
2020-11-30 01:00:03 +0100 | <hekkaidekapus_> | > 'λ' : "" -- sondr3: In case you didn’t see that Axman6 is replying to you. |
2020-11-30 01:00:09 +0100 | <lambdabot> | "\955" |
2020-11-30 01:00:16 +0100 | atk | (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.) |
2020-11-30 01:00:36 +0100 | atk | (~Arch-TK@ircpuzzles/staff/Arch-TK) |
2020-11-30 01:00:46 +0100 | <hekkaidekapus_> | > pure 'λ' :: String |
2020-11-30 01:00:48 +0100 | <lambdabot> | "\955" |
2020-11-30 01:00:52 +0100 | <monochrom> | This is devolving into more and more XY problems piled upon each other. |
2020-11-30 01:00:52 +0100 | awk | ragemnaugh |
2020-11-30 01:01:17 +0100 | <monochrom> | This is what's wrong with not posting actual code. |
2020-11-30 01:01:18 +0100 | <Axman6> | and that String, when printed, will produce a string with the lambda in it |
2020-11-30 01:01:40 +0100 | <monochrom> | As a beginner, you realize that everything you say about your code has nothing to do with your code. |
2020-11-30 01:01:44 +0100 | <Axman6> | uh, will print a lambda, is probably a better way to say it |
2020-11-30 01:02:00 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2020-11-30 01:02:41 +0100 | <Axman6> | % let representChar c = showe c ++ ": " [c] in putStrLn % representChar '\955' |
2020-11-30 01:02:41 +0100 | <yahb> | Axman6: ; <interactive>:16:23: error:; * Variable not in scope: showe :: a -> [a1]; * Perhaps you meant one of these: `show' (imported from Prelude), `shows' (imported from Prelude); <interactive>:16:57: error:; * Couldn't match expected type `String -> IO ()' with actual type `[a0]'; * Possible cause: `representChar' is applied to too many arguments; In the second argument of `(%)', namel |
2020-11-30 01:02:46 +0100 | <erisco> | I'd take a univalence t-shirt, is all I'm saying, if someone was looking to raise money for some Haskell community project ;) |
2020-11-30 01:02:48 +0100 | <Axman6> | % let representChar c = show c ++ ": " [c] in putStrLn % representChar '\955' |
2020-11-30 01:02:48 +0100 | <yahb> | Axman6: ; <interactive>:17:33: error:; * Couldn't match expected type `[a] -> [Char]' with actual type `[Char]'; * The function `": "' is applied to one argument,; but its type `[Char]' has none; In the second argument of `(++)', namely `": " [c]'; In the expression: show c ++ ": " [c]; * Relevant bindings include; c :: a (bound at <interactive>:17:19); representChar : |
2020-11-30 01:02:56 +0100 | <Axman6> | % let representChar c = show c ++ ": " ++ [c] in putStrLn % representChar '\955' |
2020-11-30 01:02:56 +0100 | <yahb> | Axman6: ; <interactive>:18:59: error:; * Couldn't match expected type `String -> IO ()' with actual type `[Char]'; * Possible cause: `representChar' is applied to too many arguments; In the second argument of `(%)', namely representChar '\955'; In the expression: putStrLn % representChar '\955'; In the expression: let representChar c = show c ++ ": " ++ [...] in putStrLn % representCha |
2020-11-30 01:03:28 +0100 | <sondr3> | I mean, my code is `show (Character a) = show a`, not sure how useful that is |
2020-11-30 01:03:30 +0100 | <monochrom> | I don't think multiple % on the same line means multiple lines. |
2020-11-30 01:03:34 +0100 | <Axman6> | % let representChar c = show c ++ ": " ++ [c] in putStrLn $ representChar '\955' |
2020-11-30 01:03:34 +0100 | <yahb> | Axman6: '\955': λ |
2020-11-30 01:03:39 +0100 | <Axman6> | I'm bad at this |
2020-11-30 01:04:15 +0100 | <monochrom> | And this is what's wrong with $ too :) |
2020-11-30 01:04:33 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) |
2020-11-30 01:05:46 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-11-30 01:05:47 +0100 | <hekkaidekapus_> | (And that’s a contrived putChar…) |
2020-11-30 01:06:13 +0100 | solonarv | (~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
2020-11-30 01:06:37 +0100 | hekkaidekapus_ | hekkaidekapus |
2020-11-30 01:06:46 +0100 | <Axman6> | % let representChar c = show c ++ ": " ++ [c] in representChar '\955' |
2020-11-30 01:06:46 +0100 | <yahb> | Axman6: "'\\955': \955" |
2020-11-30 01:08:16 +0100 | hexfive | (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
2020-11-30 01:08:17 +0100 | exlipse | (~exlipse@4e69b241.skybroadband.com) (Ping timeout: 265 seconds) |
2020-11-30 01:08:28 +0100 | <Axman6> | % let representChar c = show c ++ ": " ++ [c] in representChar '\DEL' |
2020-11-30 01:08:28 +0100 | <yahb> | Axman6: "'\\DEL': \DEL" |
2020-11-30 01:08:36 +0100 | <Axman6> | % let representChar c = show c ++ ": " ++ [c] in putStrLn $ representChar '\DEL' |
2020-11-30 01:08:36 +0100 | <yahb> | Axman6: '\DEL': |
2020-11-30 01:08:42 +0100 | <Axman6> | :o |
2020-11-30 01:09:15 +0100 | <hekkaidekapus> | Better to take the 1 hour lecture, I’d say :p |
2020-11-30 01:10:46 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2020-11-30 01:10:47 +0100 | <hekkaidekapus> | (Next instalment: how to write ‘real’ Show instances…) |
2020-11-30 01:10:59 +0100 | <Axman6> | deriving Show |
2020-11-30 01:11:07 +0100 | <Axman6> | NEXT! |
2020-11-30 01:11:13 +0100 | <hekkaidekapus> | lol |
2020-11-30 01:11:39 +0100 | <JavaSucksMan> | that maintain read and show being inverses ;-) |
2020-11-30 01:12:02 +0100 | <Axman6> | or, deriving Show via Hex Foo because DerivingVia is the best |
2020-11-30 01:12:04 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds) |
2020-11-30 01:13:52 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff21c162f6267ce4f02c.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-30 01:15:14 +0100 | jollygood2 | (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2020-11-30 01:16:56 +0100 | <sondr3> | `parseTest pExpr "#\\x03BB"` -> `#\λ`, yey, thanks all for helping |
2020-11-30 01:17:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 01:18:05 +0100 | <nitrix> | FYI for the channel, Advent of Code 2020 starts soon :) |
2020-11-30 01:19:13 +0100 | <hekkaidekapus> | sondr3: In short, Show ought to be used for producing actual Haskell values. If you want to format values for pretty looking-and-feeling, use a formatter or a pretty printer. For instance, <https://hackage.haskell.org/package/prettyprinter-1.7.0/docs/Prettyprinter.html>. |
2020-11-30 01:19:39 +0100 | <Axman6> | yeah don't misuse show please |
2020-11-30 01:20:50 +0100 | <erisco> | else you'll get pulled over and have to do a read test |
2020-11-30 01:22:36 +0100 | jmchael | (~Chi1thang@87.112.60.168) (Ping timeout: 240 seconds) |
2020-11-30 01:22:53 +0100 | <Axman6> | we don't like law breakers around 'ere |
2020-11-30 01:23:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-30 01:23:42 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 01:23:46 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-30 01:24:46 +0100 | <sondr3> | Fair points, I guess that makes a lot of sense. Coming from Rust I miss Debug/Display, I didn't realize that Show wasn't the same as Display |
2020-11-30 01:25:30 +0100 | <Axman6> | Show is sort of more about serialisation than printing, but is usually used for the latter |
2020-11-30 01:27:35 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 256 seconds) |
2020-11-30 01:28:01 +0100 | SeMas | (uid32977@gateway/web/irccloud.com/x-taxggkdzpxqpcjih) (Quit: Connection closed for inactivity) |
2020-11-30 01:28:42 +0100 | christo | (~chris@81.96.113.213) |
2020-11-30 01:30:33 +0100 | <monochrom> | The conflation all began with "42" being a suitable format for all of: serialization, dev's eyes, end-user's eyes. |
2020-11-30 01:30:56 +0100 | <Axman6> | we should just learn to read CBOR |
2020-11-30 01:31:23 +0100 | <monochrom> | You can bet that from that example people have only 33% chance of making the correct bet. |
2020-11-30 01:31:40 +0100 | alice_ | (~alice@209.131.251.182) (Quit: Leaving) |
2020-11-30 01:31:53 +0100 | urek | (~urek@2804:7f1:e10a:5ac1:8db3:3757:9c7d:4898) (Ping timeout: 272 seconds) |
2020-11-30 01:32:01 +0100 | <dolio> | I'm kind of skeptical that compositional pretty printing would actually work out well. |
2020-11-30 01:32:22 +0100 | <erisco> | so it didn't work out well in prettier printing? |
2020-11-30 01:33:01 +0100 | <dolio> | Well, what I mean is pretty printing where how it's done is cobbled together from a dozen instances written by people who don't communicate. |
2020-11-30 01:33:10 +0100 | <dolio> | Which is the point of Show. |
2020-11-30 01:33:16 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 272 seconds) |
2020-11-30 01:33:59 +0100 | jedws | (~jedws@pa49-181-235-217.pa.nsw.optusnet.com.au) |
2020-11-30 01:34:01 +0100 | <dolio> | 'Show valid Haskell for the value' is a spec you can adhere to and when you combine things, you get output that makes some sense. |
2020-11-30 01:34:06 +0100 | <monochrom> | You know, a pretty printing library is totally unnecessary unless you have an AST that you want to output in a nicely indented format. |
2020-11-30 01:34:19 +0100 | ephemient | (uid407513@gateway/web/irccloud.com/x-bhblrmwjykztmyrl) (Quit: Connection closed for inactivity) |
2020-11-30 01:34:48 +0100 | <dolio> | 'Show an easy to understand representation of the value' seems much less likely to succeed. |
2020-11-30 01:34:53 +0100 | <monochrom> | If you are just outputting to a one-line format, even if the input is an AST, all you need is your own recursive X->String function. |
2020-11-30 01:35:21 +0100 | <erisco> | the only real features of prettier printing, from what I recall, is that of indentation |
2020-11-30 01:35:29 +0100 | <monochrom> | You don't even need your own bloody class. You only need to think up one single function name. |
2020-11-30 01:37:32 +0100 | <hekkaidekapus> | printf? |
2020-11-30 01:38:17 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-30 01:38:51 +0100 | Ariakenom | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Quit: Leaving) |
2020-11-30 01:39:19 +0100 | <iqubic> | How does one make a haskell project with multiple directories? |
2020-11-30 01:39:40 +0100 | <Axman6> | mkdir foo bar |
2020-11-30 01:40:58 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-11-30 01:41:00 +0100 | <iqubic> | I'm running into this error: |
2020-11-30 01:41:01 +0100 | <iqubic> | https://dpaste.com/BCPQ2TU98 |
2020-11-30 01:41:12 +0100 | ephemient | (uid407513@gateway/web/irccloud.com/x-niqthzebbrwzruhe) |
2020-11-30 01:41:21 +0100 | <iqubic> | I have a cabal project with a src directory, and inside that I have a Lib folder. |
2020-11-30 01:41:47 +0100 | <iqubic> | And in src/Lib/ I have Parser.hs. |
2020-11-30 01:42:07 +0100 | tabemann | (~tabemann@2600:1700:7990:24e0:1a58:f55b:3d3:7cd) |
2020-11-30 01:42:11 +0100 | <koz_> | What's the module declaration in Parser.hs? |
2020-11-30 01:42:45 +0100 | <iqubic> | module Parser where .... |
2020-11-30 01:43:07 +0100 | <koz_> | iqubic: It's the issue. |
2020-11-30 01:43:08 +0100 | <Axman6> | needs to be module Lib.PArser |
2020-11-30 01:43:13 +0100 | <Axman6> | as the error says |
2020-11-30 01:43:14 +0100 | <iqubic> | Ah. |
2020-11-30 01:43:15 +0100 | <koz_> | Your module declaration has to match the folder structure. |
2020-11-30 01:43:18 +0100 | <koz_> | Exactly. |
2020-11-30 01:43:37 +0100 | <koz_> | (minus the src, because I assume your .cabal has 'hs-source-dirs: src' in it) |
2020-11-30 01:43:38 +0100 | <monochrom> | Unless you really intend the module name to be Parser |
2020-11-30 01:44:50 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 01:44:50 +0100 | <monochrom> | then play with https://cabal.readthedocs.io/en/3.4/cabal-package.html#pkg-field-hs-source-dirs |
2020-11-30 01:45:07 +0100 | <monochrom> | For best results, read the whole chapter carefully. |
2020-11-30 01:45:28 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-30 01:45:33 +0100 | <justsomeguy> | I found this reverse function that is implemented in terms of foldr “rev l = foldr (\x r -> r . (x:)) id l []”, but am having a hard time figuring out what the evaluation steps are. What happens after I get to “((((id . (4:)) . (3:)) . (2:)) . (1:)) []”? |
2020-11-30 01:46:05 +0100 | justsomeguy | thinks he misunderstands what the composition operator does. |
2020-11-30 01:46:06 +0100 | <monochrom> | id . (4 :) = (4 :) |
2020-11-30 01:46:11 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-30 01:46:22 +0100 | <koz_> | :t (2:) |
2020-11-30 01:46:24 +0100 | <lambdabot> | Num a => [a] -> [a] |
2020-11-30 01:46:25 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 01:46:27 +0100 | <monochrom> | (4 :) . (3 :) = (\r -> 4 : 3 : r) |
2020-11-30 01:46:36 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2020-11-30 01:46:36 +0100 | <monochrom> | I think you can do the rest. |
2020-11-30 01:46:39 +0100 | <iqubic> | monochrom: Are you telling me that Parser is a bad name for a module? |
2020-11-30 01:47:00 +0100 | <koz_> | iqubic: We aren't sure if the issue is that your module is misnamed or if your folder structure is not what you're after. |
2020-11-30 01:47:01 +0100 | <monochrom> | No. I am saying it is up to you. You make a decision, then either way there is a solution. |
2020-11-30 01:47:13 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-30 01:47:14 +0100 | <koz_> | I assumed the former, monochrom is presenting the solution in case of the latter. |
2020-11-30 01:47:41 +0100 | <monochrom> | But it's safe to bet if you wrote "module Parser" then that's what you want. |
2020-11-30 01:47:42 +0100 | <iqubic> | I want it to be called Lib.Parser, because it's in the Lib folder and called Parser.hs |
2020-11-30 01:47:56 +0100 | <monochrom> | OK then it's "module Lib.Parser" |
2020-11-30 01:48:01 +0100 | <koz_> | Yep. |
2020-11-30 01:48:17 +0100 | <iqubic> | No, I wrote 'module Parser', because I have no idea how to do multi-directory haskell projects. |
2020-11-30 01:48:57 +0100 | <iqubic> | When I import the module from other files, I want to write: "import Lib.Parser" |
2020-11-30 01:49:06 +0100 | <monochrom> | That's why life is a gamble. |
2020-11-30 01:49:12 +0100 | <koz_> | hs-source-dirs can contains as many directories as you like. |
2020-11-30 01:49:27 +0100 | <koz_> | You don't have to limit yourself to just one. |
2020-11-30 01:50:05 +0100 | <iqubic> | hs-sourc-dirs will only have one directory, src. This file is located at src/Lib/Parser.hs |
2020-11-30 01:50:11 +0100 | <Axman6> | needs to be module Lib.PArserbut that would be a very unusual layout for the project |
2020-11-30 01:50:28 +0100 | <Axman6> | uh, "but that would be a very unusual layout for the project" |
2020-11-30 01:51:13 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-11-30 01:51:16 +0100 | <monochrom> | btw justsomeguy what you're seeing is a special case of how to express foldl as a foldr |
2020-11-30 01:51:35 +0100 | <iqubic> | Two things: 1) I'm renaming it to from Lib to Common, and 2) This is for Advent Of Code, so I don't care how unusual the layout is. |
2020-11-30 01:52:08 +0100 | <iqubic> | I'm making my own simple library of functions to use during Advent, and I want to compartmentalize things. |
2020-11-30 01:52:11 +0100 | <monochrom> | because reverse is a special case of foldl: reverse = foldl (\a x -> x : a) [] |
2020-11-30 01:52:34 +0100 | <justsomeguy> | The foldl version is much easier to read ^_^. |
2020-11-30 01:52:47 +0100 | alp__ | (~alp@2a01:e0a:58b:4920:d15:e453:85b3:5c61) (Ping timeout: 272 seconds) |
2020-11-30 01:53:18 +0100 | <Axman6> | yes |
2020-11-30 01:53:35 +0100 | <Axman6> | > foldl (flip (:)) [] "abcd" |
2020-11-30 01:53:38 +0100 | <lambdabot> | "dcba" |
2020-11-30 01:53:43 +0100 | <monochrom> | justsomeguy: https://ertes.eu/tutorial/foldr.html >:) |
2020-11-30 01:54:08 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 01:55:35 +0100 | <iqubic> | I still can't believe Ertes is gone. |
2020-11-30 01:55:53 +0100 | <iqubic> | Also, that tutorial was how I learned to master foldr. |
2020-11-30 01:56:04 +0100 | andi- | (~andi-@NixOS/user/andi-) (Ping timeout: 240 seconds) |
2020-11-30 01:57:20 +0100 | <iqubic> | Alright. I finally managed to make multi-directory thing work properly. |
2020-11-30 01:57:30 +0100 | <iqubic> | Thanks everyone. |
2020-11-30 01:57:42 +0100 | exlipse | (~exlipse@4e69b241.skybroadband.com) |
2020-11-30 01:58:59 +0100 | <monochrom> | I wouldn't call it multi-directory cabal project. On two counts: 1. this is just one package, not even a project of 3 packages; 2. you only have "hs-source-dirs: src", not even "hs-source-dirs: src1 src2 src3 src4/part1 src4/part2" |
2020-11-30 01:59:22 +0100 | xpika | (~alan@2001:8003:5d32:1f00:a5ad:52a6:3658:edb9) (Ping timeout: 260 seconds) |
2020-11-30 02:00:20 +0100 | <iqubic> | Right. I see. |
2020-11-30 02:00:27 +0100 | <iqubic> | That makes sense. |
2020-11-30 02:02:43 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2020-11-30 02:04:03 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 260 seconds) |
2020-11-30 02:05:13 +0100 | bandali | (znc@fsf/interns/bandali) (Quit: ZNC - https://znc.in) |
2020-11-30 02:06:42 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Read error: Connection reset by peer) |
2020-11-30 02:09:53 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds) |
2020-11-30 02:10:54 +0100 | andi- | (~andi-@NixOS/user/andi-) |
2020-11-30 02:12:49 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 264 seconds) |
2020-11-30 02:13:01 +0100 | jedws | (~jedws@pa49-181-235-217.pa.nsw.optusnet.com.au) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-30 02:15:16 +0100 | shatriff_ | (~vitaliish@176.52.219.10) (Ping timeout: 240 seconds) |
2020-11-30 02:16:18 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-30 02:18:03 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds) |
2020-11-30 02:18:24 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-30 02:19:18 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
2020-11-30 02:19:18 +0100 | stree | (~stree@50-108-97-52.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2020-11-30 02:19:24 +0100 | shatriff | (~vitaliish@176.52.219.10) (Remote host closed the connection) |
2020-11-30 02:19:35 +0100 | stree | (~stree@50-108-97-52.adr01.mskg.mi.frontiernet.net) |
2020-11-30 02:19:36 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-11-30 02:21:53 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2020-11-30 02:22:19 +0100 | justsomeguy | finished typing out the reduction process for “let rev l = foldr (\x r -> r . (x:)) id l [] in rev [1,2,3,4]”, and feels like he understands it now. |
2020-11-30 02:22:22 +0100 | cheater1 | (~user@unaffiliated/cheater) |
2020-11-30 02:22:23 +0100 | <justsomeguy> | https://gist.github.com/kingparra/e5aeac3f540ef2e2172be9f16cf15b8c |
2020-11-30 02:22:24 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) (Ping timeout: 256 seconds) |
2020-11-30 02:22:43 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 260 seconds) |
2020-11-30 02:22:47 +0100 | cheater1 | cheater |
2020-11-30 02:22:50 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-30 02:22:53 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 02:23:07 +0100 | <justsomeguy> | I think I'll do that foldr tutorial now. |
2020-11-30 02:23:42 +0100 | bandali | (znc@fsf/interns/bandali) |
2020-11-30 02:24:05 +0100 | <dsal> | > foldr f a [b, c, d] :: Expr -- justsomeguy |
2020-11-30 02:24:08 +0100 | <lambdabot> | f b (f c (f d a)) |
2020-11-30 02:24:54 +0100 | <ski> | @where folds |
2020-11-30 02:24:54 +0100 | <lambdabot> | <http://en.wikipedia.org/wiki/File:Fold-diagrams.svg>,<https://cale.l5.ca/share/Folds.svg> |
2020-11-30 02:25:26 +0100 | <ski> | hm, oh. it was deleted from WP |
2020-11-30 02:25:38 +0100 | ski | looks at Cale |
2020-11-30 02:25:47 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit) |
2020-11-30 02:26:33 +0100 | <justsomeguy> | This is great; Total folding immersion time! |
2020-11-30 02:26:45 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 02:27:12 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) |
2020-11-30 02:27:28 +0100 | <ski> | @where evolution -- "Yet another senior Haskell programmer (leaned so far right he came back left again!)" |
2020-11-30 02:27:28 +0100 | <lambdabot> | http://www.willamette.edu/~fruehr/haskell/evolution.html |
2020-11-30 02:28:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-30 02:29:05 +0100 | _deepfire | (~user@80.92.100.69) |
2020-11-30 02:29:21 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2020-11-30 02:30:38 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-11-30 02:32:16 +0100 | rprije | (~rprije@194-193-174-214.tpgi.com.au) (Ping timeout: 240 seconds) |
2020-11-30 02:34:23 +0100 | Iceland_jack | (~user@31.124.48.169) (Ping timeout: 260 seconds) |
2020-11-30 02:36:46 +0100 | nehsou^ | (nehsou@ip98-184-89-2.mc.at.cox.net) () |
2020-11-30 02:37:32 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2020-11-30 02:37:42 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds) |
2020-11-30 02:38:10 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 02:39:24 +0100 | Lord_of_Life_ | (~Lord@46.217.220.24) |
2020-11-30 02:40:16 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
2020-11-30 02:41:03 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit) |
2020-11-30 02:41:37 +0100 | rprije | (~rprije@118.102.88.103) |
2020-11-30 02:41:43 +0100 | <dsal> | as justsomeguy descends deep into the catamorph |
2020-11-30 02:41:50 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 02:41:57 +0100 | <_deepfire> | Does TH have something that would allow:? reifyType :: Typeable a => Q Exp |
2020-11-30 02:42:01 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Remote host closed the connection) |
2020-11-30 02:42:53 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 02:43:57 +0100 | sondr3 | (~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving) |
2020-11-30 02:44:00 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Remote host closed the connection) |
2020-11-30 02:44:36 +0100 | cole-h | (~cole-h@73.48.197.220) |
2020-11-30 02:44:49 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 02:45:21 +0100 | conal | (~conal@64.71.133.70) (Read error: Connection reset by peer) |
2020-11-30 02:48:16 +0100 | elliott__ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-11-30 02:49:00 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo) |
2020-11-30 02:49:45 +0100 | et09 | (~et09@unaffiliated/endolphin) |
2020-11-30 02:49:49 +0100 | et09 | (~et09@unaffiliated/endolphin) () |
2020-11-30 02:50:52 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 02:51:10 +0100 | <hekkaidekapus> | ski: <https://commons.wikimedia.org/wiki/File:Foldr1-diagram.svg> |
2020-11-30 02:53:40 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 02:55:18 +0100 | <_deepfire> | Err, reifyType :: Typeable a => Q Type, of course. |
2020-11-30 02:57:48 +0100 | <ski> | oh, ty, hekkaidekapus |
2020-11-30 02:57:52 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 246 seconds) |
2020-11-30 02:57:57 +0100 | <ski> | although, it's only one of the diagrams |
2020-11-30 02:59:16 +0100 | <hekkaidekapus> | Yeah, the other link has all them. Maybe another upload to Commons is warranted. |
2020-11-30 02:59:25 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 240 seconds) |
2020-11-30 02:59:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 03:01:23 +0100 | <hekkaidekapus> | (The user name is gone, too.) |
2020-11-30 03:02:32 +0100 | jespada | (~jespada@90.254.245.49) |
2020-11-30 03:03:22 +0100 | sagax | (~sagax_nb@213.138.71.146) |
2020-11-30 03:04:01 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 03:04:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-30 03:08:38 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) |
2020-11-30 03:08:38 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2020-11-30 03:09:50 +0100 | guest1130 | (~user@49.5.6.87) |
2020-11-30 03:11:52 +0100 | <ski> | @hoogle reifyType |
2020-11-30 03:11:53 +0100 | <lambdabot> | Language.Haskell.TH reifyType :: Name -> Q Type |
2020-11-30 03:11:53 +0100 | <lambdabot> | Language.Haskell.TH.Syntax reifyType :: Name -> Q Type |
2020-11-30 03:11:53 +0100 | <lambdabot> | TH.ReifySimple reifyType :: Name -> Q TypeInfo |
2020-11-30 03:12:10 +0100 | <ski> | @hoogle Typeable a => Q (TType a) |
2020-11-30 03:12:11 +0100 | <lambdabot> | Data.Ecstasy defStorage :: HasWorld world m => world ('WorldOf m) |
2020-11-30 03:12:11 +0100 | <lambdabot> | Data.Ecstasy.Internal defStorage :: HasWorld world m => world ('WorldOf m) |
2020-11-30 03:12:11 +0100 | <lambdabot> | Data.Ecstasy.Internal defStorage :: (HasWorld world m, Generic (world ('WorldOf m)), GDefault 'True (Rep (world ('WorldOf m)))) => world ('WorldOf m) |
2020-11-30 03:12:32 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 03:12:41 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 03:12:56 +0100 | pjb | (~t@2a01cb04063ec50095ae1a5ec1ef6a7a.ipv6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2020-11-30 03:12:56 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 03:16:33 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-ilswyamvtndfxsrg) (Quit: Connection closed for inactivity) |
2020-11-30 03:19:21 +0100 | hackage | polysemy-extra 0.1.7.0 - Extra Input and Output functions for polysemy.. https://hackage.haskell.org/package/polysemy-extra-0.1.7.0 (locallycompact) |
2020-11-30 03:20:10 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2020-11-30 03:23:28 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 272 seconds) |
2020-11-30 03:23:35 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 03:24:57 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 03:25:17 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-30 03:25:42 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:6035:c577:b880:b950) (Ping timeout: 260 seconds) |
2020-11-30 03:26:24 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) |
2020-11-30 03:26:56 +0100 | <hekkaidekapus> | I have a Dhall record `{ x.x1 = "foo", y.y1 = "bar", z.z1 = "qux" }` out of which I want to make a Data.Map. I don’t know the labels `x1, y1, z1` beforehand. Any ideas? |
2020-11-30 03:27:31 +0100 | xff0x | (~fox@2001:1a81:5287:f00:6870:12f3:8204:7d32) |
2020-11-30 03:29:25 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0) |
2020-11-30 03:29:54 +0100 | exlipse | (~exlipse@4e69b241.skybroadband.com) (Ping timeout: 265 seconds) |
2020-11-30 03:30:26 +0100 | elliott_ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-11-30 03:33:36 +0100 | <jle`> | hekkaidekapus: what map do you want from that? |
2020-11-30 03:34:35 +0100 | <hekkaidekapus> | I guess that’s part of the question. Let’s say "x <> x1" as a key. |
2020-11-30 03:35:51 +0100 | <hekkaidekapus> | (Using Prelude.Map.keyText) |
2020-11-30 03:36:02 +0100 | joaj | (~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) (Ping timeout: 264 seconds) |
2020-11-30 03:36:21 +0100 | hackage | polysemy-path 0.1.0.0 - Polysemy versions of Path functions. https://hackage.haskell.org/package/polysemy-path-0.1.0.0 (locallycompact) |
2020-11-30 03:36:30 +0100 | <hekkaidekapus> | But that relies on having a map to begin with… |
2020-11-30 03:36:59 +0100 | joaj | (~joaj@2001:818:e326:8200:9fc:6bde:c18a:1771) |
2020-11-30 03:37:14 +0100 | <koz_> | I think what jle` is asking is 'what should the value type of the Map be'? |
2020-11-30 03:37:21 +0100 | <hekkaidekapus> | Anyway, dirty hacks (through YAML for instance) are welcome. |
2020-11-30 03:37:24 +0100 | <koz_> | The Dhall record can have values whose types are arbitrary. |
2020-11-30 03:37:43 +0100 | <hekkaidekapus> | values are Text. |
2020-11-30 03:38:05 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Remote host closed the connection) |
2020-11-30 03:38:08 +0100 | <koz_> | So your goal is a Map Text Text? |
2020-11-30 03:39:05 +0100 | <koz_> | This won't work? http://hackage.haskell.org/package/dhall-1.36.0/docs/Dhall-Map.html#v:toMap |
2020-11-30 03:39:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 03:39:09 +0100 | <monochrom> | I have a feeling that your dhall parser library already has it. Since aeson already has it. |
2020-11-30 03:39:09 +0100 | <hekkaidekapus> | koz_: Typing the result in Haskell is easy. The tricky part is finding a way to apply `toMap` on an irregular record. |
2020-11-30 03:39:45 +0100 | <koz_> | hekkaidekapus: What do you mean by 'irregular'? |
2020-11-30 03:39:53 +0100 | <koz_> | I thought you said that the values are all Text? |
2020-11-30 03:39:58 +0100 | <koz_> | Or is that the desired outcome? |
2020-11-30 03:40:02 +0100 | <hekkaidekapus> | monochrom: aeson hacks are welcome, too. |
2020-11-30 03:40:53 +0100 | <hekkaidekapus> | koz_: toMap { x = "foo", y = "bar", z = "qux" }` is okay. But toMap on the OP is not. |
2020-11-30 03:41:26 +0100 | <monochrom> | In aeson if you request "decode to the Value type" you get an Object case that has a hashmap from Text to Text. The keys are the actual, dynamically discovered field names. |
2020-11-30 03:41:39 +0100 | <koz_> | monochrom: Text to Value. |
2020-11-30 03:41:53 +0100 | <monochrom> | Oh! oops. That. |
2020-11-30 03:42:23 +0100 | <hekkaidekapus> | Ok, will try that, thanks. |
2020-11-30 03:42:33 +0100 | <hekkaidekapus> | YAML ideas? |
2020-11-30 03:42:52 +0100 | hekkaidekapus | dislikes JSON with a passion… |
2020-11-30 03:43:10 +0100 | <monochrom> | This is really not JSON-specific. |
2020-11-30 03:43:22 +0100 | <monochrom> | I can just as well tell the same story for cassava. |
2020-11-30 03:43:40 +0100 | <Axman6> | YAML is JSON though |
2020-11-30 03:43:55 +0100 | <hekkaidekapus> | JSON is YAML, rather. |
2020-11-30 03:43:58 +0100 | <Axman6> | I should look a Dhall more |
2020-11-30 03:44:20 +0100 | <monochrom> | cassava is relational database |
2020-11-30 03:44:23 +0100 | <monochrom> | THERE |
2020-11-30 03:44:24 +0100 | <Axman6> | I guss |
2020-11-30 03:44:32 +0100 | <Axman6> | guess* |
2020-11-30 03:44:48 +0100 | <jle`> | hekkaidekapus: so you're saying you have a dhall reord as an `Expr`? or as a Text/String ? |
2020-11-30 03:45:13 +0100 | <monochrom> | OK actually just one relational table. You need several csv for an interesting database. |
2020-11-30 03:45:41 +0100 | <Axman6> | enter frames |
2020-11-30 03:46:04 +0100 | <Axman6> | (which IIRC also has a dsv backend for parsing, for super fast parsing) |
2020-11-30 03:46:05 +0100 | <jle`> | s/reord/record |
2020-11-30 03:46:17 +0100 | <hekkaidekapus> | jle`: The record is an expression. |
2020-11-30 03:47:00 +0100 | <jle`> | er by that do you mean a Expr type in the dhall library? |
2020-11-30 03:47:19 +0100 | <jle`> | or an expression as a syntactical idea within dhall |
2020-11-30 03:47:48 +0100 | <hekkaidekapus> | A Dhall expression. No YAML2Dhall or JSON2Dhall shenanigans yet. |
2020-11-30 03:48:06 +0100 | <jle`> | so you have it as text, you mean |
2020-11-30 03:48:11 +0100 | <jle`> | in dhall syntax |
2020-11-30 03:48:15 +0100 | <hekkaidekapus> | yep |
2020-11-30 03:49:03 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds) |
2020-11-30 03:49:25 +0100 | Guest648 | (~textual@185.156.175.35) |
2020-11-30 03:49:49 +0100 | <jle`> | hm, i guess you could manually turn it into nested Map's, and then flatten it out in the end |
2020-11-30 03:49:55 +0100 | <jle`> | by parsing it into a haskell Expr |
2020-11-30 03:49:57 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) |
2020-11-30 03:50:17 +0100 | <Guest648> | can anyone help me on kubernetes |
2020-11-30 03:50:37 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2020-11-30 03:50:37 +0100 | <Axman6> | does that have anything to do with Haskell? |
2020-11-30 03:50:47 +0100 | <koz_> | Guest648: Sir, this is a Wendy's^W^W#haskell. |
2020-11-30 03:50:50 +0100 | <jle`> | your nested map type could be `Free (Map Text) Text`, a nested map with Text as keys and Text leaves |
2020-11-30 03:51:00 +0100 | <Guest648> | ohhh shit sorry wrong group |
2020-11-30 03:51:01 +0100 | <jle`> | (a rose tree) |
2020-11-30 03:51:09 +0100 | <koz_> | jle`: Ah, you mean the same trick Beam uses? |
2020-11-30 03:51:10 +0100 | <hekkaidekapus> | jle`: Ah, that’s neat! |
2020-11-30 03:51:19 +0100 | <jle`> | Free should be called Rose anyway |
2020-11-30 03:51:23 +0100 | <hekkaidekapus> | Free is the key. |
2020-11-30 03:51:47 +0100 | <jle`> | you don't need to use Free specifically per se, but it does have some neat utility functions for building up and squashing down nested layers |
2020-11-30 03:51:50 +0100 | <koz_> | jle`: Isn't Free more general though? Rose is a special case where f is some linear collection-ish thing. |
2020-11-30 03:52:16 +0100 | <jle`> | hm, that's fair :) |
2020-11-30 03:52:30 +0100 | <jle`> | the name Free just feels a little more mystifying than it needs to be |
2020-11-30 03:52:45 +0100 | <jle`> | and a lot of other things are free in different ways |
2020-11-30 03:53:02 +0100 | SeMas | (uid32977@gateway/web/irccloud.com/x-gvhiftwjfdiypfrd) |
2020-11-30 03:53:04 +0100 | <koz_> | Yeah, naming is something of an issue sometimes |
2020-11-30 03:53:07 +0100 | JJ15__ | (~JJ@2a00:23a8:4382:a900:68df:3986:d3b1:2e08) (Ping timeout: 272 seconds) |
2020-11-30 03:53:12 +0100 | <hekkaidekapus> | Thank you, jle`! I know what you mean (I could go with Generics, too). I was just looking the problem from a Dhall perspective, not a Haskell’s. |
2020-11-30 03:53:14 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 272 seconds) |
2020-11-30 03:53:21 +0100 | koz_ | remembers how like, only recently someone in here freaked out about UndecidableInstances. |
2020-11-30 03:53:36 +0100 | <monochrom> | Rose tree and Free are great ways of thinking of each other. |
2020-11-30 03:53:52 +0100 | <jle`> | yeah, if you want to get it into haskell land then i'd probably start with getting it into an Expr |
2020-11-30 03:54:07 +0100 | <koz_> | monochrom: Rose Free. :P |
2020-11-30 03:54:14 +0100 | <jle`> | actually the Dhall module has a few tools for parsing Expr's into Haskell types in a type classy way, pretty much equivalent to FromJSON/ToJSON |
2020-11-30 03:54:25 +0100 | <jle`> | but i'm not sure if they would be too useful here |
2020-11-30 03:54:57 +0100 | <hekkaidekapus> | jle`: No, here they are useless because of the expression’s irregularity. |
2020-11-30 03:55:04 +0100 | JavaSucksMan | (403483ab@64-52-131-171.championbroadband.com) (Ping timeout: 245 seconds) |
2020-11-30 03:55:05 +0100 | <hekkaidekapus> | I have to hand-parse the thing. |
2020-11-30 03:55:25 +0100 | <Guest648> | what are we talking about here |
2020-11-30 03:55:28 +0100 | <Guest648> | im a haskell pro i can help |
2020-11-30 03:55:32 +0100 | <jle`> | i meant, you could parse it into a Free (Map Text) using some of the tools there maybe. but yeah, maybe doing it by hand would be the cleanest way |
2020-11-30 03:55:50 +0100 | <jle`> | Record's are actually already expressed in dhall as a Map Text |
2020-11-30 03:56:02 +0100 | <Axman6> | Guest648: What is Haskell? |
2020-11-30 03:56:11 +0100 | <hekkaidekapus> | jle`: Regulat ones, yes. |
2020-11-30 03:56:18 +0100 | <hekkaidekapus> | *Regular |
2020-11-30 03:56:39 +0100 | <Guest648> | haskell is a functional programming language axman6 |
2020-11-30 03:56:51 +0100 | <Axman6> | what does that mean? |
2020-11-30 03:56:54 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 03:56:54 +0100 | <jle`> | ah yeah, literals i suppose |
2020-11-30 03:57:02 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 03:57:09 +0100 | <koz_> | Axman6: Are you attempting the Church-Turing test? :P |
2020-11-30 03:57:20 +0100 | <texasmynsted> | Hmm. Type Driven Development with Idris is on sale at manning for a couple more hours. |
2020-11-30 03:57:31 +0100 | <hekkaidekapus> | jle`: Because when you have a map in Dhall, it is trivial to flatten it as a list, and then Data.Map.fromListXXX will do the rest. |
2020-11-30 03:57:31 +0100 | <Guest648> | it means taking java and inverting it |
2020-11-30 03:57:33 +0100 | <Axman6> | koz_: that would be telling. You're next |
2020-11-30 03:57:48 +0100 | <Axman6> | yes, Java is disfunctional |
2020-11-30 03:58:17 +0100 | <jle`> | hekkaidekapus: by a map in Dhall, do you mean a List { key : Text, val : a } ? |
2020-11-30 03:58:29 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 03:58:30 +0100 | <hekkaidekapus> | Yes. |
2020-11-30 03:58:37 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 03:58:52 +0100 | <Guest648> | i learned haskell when i was 7 |
2020-11-30 03:59:02 +0100 | <hekkaidekapus> | jle`: And that’s the type of toMap for a record. |
2020-11-30 03:59:09 +0100 | <Guest648> | i am a haskell prodigy |
2020-11-30 03:59:15 +0100 | <jle`> | oh wow i totally forgot that ToMap was a dhall primitive |
2020-11-30 03:59:23 +0100 | <jle`> | fancy stuff |
2020-11-30 03:59:24 +0100 | <koz_> | Guest648: 7? Not the womb? Disappoint. |
2020-11-30 03:59:36 +0100 | <jle`> | yeah, i see what you mean |
2020-11-30 03:59:38 +0100 | <hekkaidekapus> | jle`: yeah, built-in! |
2020-11-30 03:59:54 +0100 | <Guest648> | my mom named me cabal |
2020-11-30 04:00:22 +0100 | <koz_> | Guest648: I thought she named you Guest648? |
2020-11-30 04:00:52 +0100 | <texasmynsted> | Anybody here read "Type-Driven Development with Idris"? |
2020-11-30 04:01:04 +0100 | <koz_> | texasmynsted: I did. |
2020-11-30 04:01:11 +0100 | <texasmynsted> | What is the verdict? |
2020-11-30 04:01:21 +0100 | <koz_> | It's a great resource if you want to learn Idris. |
2020-11-30 04:01:29 +0100 | <koz_> | (although you'll need the v2 errata) |
2020-11-30 04:01:32 +0100 | <koz_> | (at least now) |
2020-11-30 04:01:48 +0100 | <Guest648> | yes but the haskell book is much better written by the holiest guy named Christopher Allen |
2020-11-30 04:01:54 +0100 | <texasmynsted> | So it not longer applies? |
2020-11-30 04:02:12 +0100 | <koz_> | texasmynsted: It is, if you use the v2 errata. |
2020-11-30 04:02:13 +0100 | <Guest648> | neffective methods and materials have made Haskell unnecessarily hard for many people to learn, but I find Haskell so pleasant to use that I want to help people learn it. I've spent the last two years actively teaching Haskell online and in person. Along the way, I started keeping notes on exercises and methods of teaching specific concepts and techniques that worked. Those notes eventually turned into my guide for learning Haskell. I'm still |
2020-11-30 04:02:14 +0100 | <Guest648> | learning how to teach Haskell better by working with people locally in Austin, Texas, as well as online. |
2020-11-30 04:02:22 +0100 | <koz_> | Edwin posted to this effect just today in fact! |
2020-11-30 04:02:42 +0100 | <koz_> | Guest648: Were you implemented in Haskell too? |
2020-11-30 04:03:05 +0100 | <Guest648> | chris allen is the pope for my religion |
2020-11-30 04:03:13 +0100 | <texasmynsted> | Are you quoting Chris ALlen? |
2020-11-30 04:03:30 +0100 | <Guest648> | you mean father allen |
2020-11-30 04:03:34 +0100 | <koz_> | texasmynsted: Gotta cite the implementer. |
2020-11-30 04:03:35 +0100 | <texasmynsted> | Are you talking about "Haskell from first principles?" |
2020-11-30 04:03:38 +0100 | <Guest648> | he is a pope after all |
2020-11-30 04:03:46 +0100 | <koz_> | It's like --version except for chatbots. :P |
2020-11-30 04:04:14 +0100 | <Guest648> | amazing book you guys should make sure to buy the bible |
2020-11-30 04:04:33 +0100 | <koz_> | Guest648: Do you have time to hear about our lord and saviour Nyarlathotep? |
2020-11-30 04:04:43 +0100 | <texasmynsted> | Sigh |
2020-11-30 04:05:07 +0100 | <texasmynsted> | I guess I do not really have time for another book to add to the stack |
2020-11-30 04:06:14 +0100 | <texasmynsted> | I do not really _need_ to learn Idris right now |
2020-11-30 04:06:33 +0100 | <Guest648> | just read our bible |
2020-11-30 04:06:42 +0100 | <Guest648> | haskell from first principle covers everything |
2020-11-30 04:07:18 +0100 | <texasmynsted> | I have the book. |
2020-11-30 04:07:20 +0100 | <texasmynsted> | thanks |
2020-11-30 04:07:25 +0100 | <Guest648> | its the best |
2020-11-30 04:07:29 +0100 | <koz_> | Guest648: Clearly you have a great desire to ponder the mysteries of our lord and saviour Nyarlathotep. |
2020-11-30 04:07:44 +0100 | <justsomeguy> | I'm going through hpfp right now and taking notes. Sometimes I really appreciate it and sometimes I hate the verbosity, or think something could be explained better a different way (type classes). It's been kind of a love/hate relationship. Maybe after I finish it I'll write a review. |
2020-11-30 04:07:59 +0100 | <Guest648> | he doesnt hold a pencil to my pope His holiness Christopher allen |
2020-11-30 04:08:16 +0100 | <koz_> | Nyarlathotep holds every pencil in his holy tentacles. |
2020-11-30 04:08:17 +0100 | <texasmynsted> | Really the greatest model for programmer is "keyboard cat" https://www.youtube.com/watch?v=J---aiyznGQ |
2020-11-30 04:09:18 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-30 04:10:20 +0100 | <texasmynsted> | What about Julie? |
2020-11-30 04:10:36 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 04:10:54 +0100 | <koz_> | texasmynsted: What about her? |
2020-11-30 04:11:29 +0100 | <Guest648> | you sir are trolling |
2020-11-30 04:11:37 +0100 | <Guest648> | i do not appreciate such gestures |
2020-11-30 04:11:44 +0100 | <texasmynsted> | Guest648: Seems to have much "praise" for Chris but said nothing about Julie. |
2020-11-30 04:11:55 +0100 | koz_ | would like to make some kind of mirror joke here, but it makes itself. |
2020-11-30 04:12:02 +0100 | <hekkaidekapus> | koz_: <https://paste.tomsmeding.com/FajoLeow> for when you will decide to give Dhall a close look. |
2020-11-30 04:12:33 +0100 | <koz_> | hekkaidekapus: I figured I never wanted to, and now I'm even more certain. :D |
2020-11-30 04:12:34 +0100 | <Guest648> | no julie left his holiness |
2020-11-30 04:12:41 +0100 | <Guest648> | and joined chris martin |
2020-11-30 04:12:54 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 04:13:32 +0100 | <koz_> | Guest648: Was your father Andrei Markov by any chance? |
2020-11-30 04:13:34 +0100 | <Guest648> | my loyalty lies only to His holiness Martin |
2020-11-30 04:13:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-30 04:13:54 +0100 | <hekkaidekapus> | koz_: Be happy in your weakly typed gardens, C (I mean JSON) and Python (err. YAML). :p |
2020-11-30 04:14:07 +0100 | <koz_> | hekkaidekapus: Who said I liked any of those things? |
2020-11-30 04:14:20 +0100 | <koz_> | Something something argumentum ad serpentum. |
2020-11-30 04:14:26 +0100 | <hekkaidekapus> | heh |
2020-11-30 04:14:36 +0100 | <texasmynsted> | Yes, Chris Martin and Julie Moronuki's site is impressive. |
2020-11-30 04:14:42 +0100 | joaj | (~joaj@2001:818:e326:8200:9fc:6bde:c18a:1771) (Ping timeout: 260 seconds) |
2020-11-30 04:14:54 +0100 | <Guest648> | when will chris allen give a sermon in this channel |
2020-11-30 04:15:17 +0100 | <texasmynsted> | Guest648: Who are you? |
2020-11-30 04:15:27 +0100 | <koz_> | Guest648: The only one who gives sermons here is the Most Holy SPJ. |
2020-11-30 04:15:30 +0100 | <Guest648> | a loyal follower |
2020-11-30 04:15:33 +0100 | <koz_> | But alas, it has never occurred. |
2020-11-30 04:15:42 +0100 | <texasmynsted> | I have never seen SPJ here |
2020-11-30 04:16:35 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 04:16:59 +0100 | <koz_> | (also, shouldn't it be SP-J?) |
2020-11-30 04:17:29 +0100 | <hekkaidekapus> | SLP-J |
2020-11-30 04:18:28 +0100 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2020-11-30 04:18:33 +0100 | <hekkaidekapus> | Since Idris was brought up, did you notice `it : …`, koz_? |
2020-11-30 04:18:50 +0100 | <koz_> | hekkaidekapus: Am I missing something? |
2020-11-30 04:18:59 +0100 | <Guest648> | can somoene please help me in kubernetes |
2020-11-30 04:19:07 +0100 | <Axman6> | no |
2020-11-30 04:19:12 +0100 | <koz_> | Guest648: Can you get me a double chocolate ice cream? |
2020-11-30 04:19:23 +0100 | <Guest648> | only if u help me first |
2020-11-30 04:19:45 +0100 | <koz_> | Is your problem with Haskell? |
2020-11-30 04:19:46 +0100 | <hekkaidekapus> | koz_: In the paste, there is an expression `it` typed `{ x : { x1 : Text }, …`, à la Idris. |
2020-11-30 04:19:56 +0100 | <koz_> | hekkaidekapus: Ah! No, I didn't notice that. |
2020-11-30 04:19:57 +0100 | zaquest | (~notzaques@5.128.210.178) |
2020-11-30 04:19:59 +0100 | <koz_> | Interesting. |
2020-11-30 04:20:05 +0100 | <Guest648> | thats not how you reduce hekkaidekapus |
2020-11-30 04:20:06 +0100 | <Guest648> | tbats wrong |
2020-11-30 04:20:12 +0100 | <Guest648> | you dont know your lambda calclus |
2020-11-30 04:20:16 +0100 | <Guest648> | read the haskell book |
2020-11-30 04:20:26 +0100 | <hekkaidekapus> | koz_: See, close look I was saying… :d |
2020-11-30 04:20:48 +0100 | <kupi> | i think the "do" here is redundant in the example, am i wrong? https://hackage.haskell.org/package/base-4.13.0.0/docs/Control-Exception-Base.html#v:handle |
2020-11-30 04:21:11 +0100 | <texasmynsted> | Guest648: I think you are looking for twitter |
2020-11-30 04:21:22 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 04:21:23 +0100 | <koz_> | texasmynsted: Or treatment. |
2020-11-30 04:21:31 +0100 | <texasmynsted> | why not both? |
2020-11-30 04:21:42 +0100 | <Guest648> | what treatment would i need? |
2020-11-30 04:21:55 +0100 | <koz_> | texasmynsted: I don't think they coincide well. :P |
2020-11-30 04:22:04 +0100 | <koz_> | Guest648: Do you want me to answer sincerely? |
2020-11-30 04:22:10 +0100 | <Guest648> | yes |
2020-11-30 04:22:16 +0100 | <koz_> | Guest648: Too bad. |
2020-11-30 04:23:14 +0100 | <Guest648> | what is chris allens irc |
2020-11-30 04:23:29 +0100 | <dsal> | He uses the same one the rest of us use. |
2020-11-30 04:23:52 +0100 | <dsal> | At least he used to. I've not seen him around in a while. |
2020-11-30 04:24:01 +0100 | <koz_> | Guest648: I'll tell you if you fax me some chocolate ice cream. |
2020-11-30 04:24:29 +0100 | <texasmynsted> | I think it is bitemyapp |
2020-11-30 04:24:42 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 04:24:51 +0100 | <Guest648> | no |
2020-11-30 04:24:52 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 04:24:58 +0100 | <Guest648> | it doesnt exist |
2020-11-30 04:25:33 +0100 | <texasmynsted> | Perhaps you simply do not have enough faith |
2020-11-30 04:26:36 +0100 | drbean | (~drbean@TC210-63-209-205.static.apol.com.tw) |
2020-11-30 04:27:08 +0100 | <Guest648> | oh my god you are right! |
2020-11-30 04:27:17 +0100 | <MarcelineVQ> | kupi: not neccesarily redundant, they just happen to be giving an example that uses do |
2020-11-30 04:27:21 +0100 | Guest648 | (~textual@185.156.175.35) (Quit: Textual IRC Client: www.textualapp.com) |
2020-11-30 04:28:34 +0100 | <MarcelineVQ> | Actually I think I see what you mean since there's that $ there too |
2020-11-30 04:30:13 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
2020-11-30 04:30:29 +0100 | rprije | (~rprije@118.102.88.103) (Ping timeout: 272 seconds) |
2020-11-30 04:31:23 +0100 | <kupi> | "do io" is the same as "io" right? |
2020-11-30 04:31:26 +0100 | <monochrom> | You know, "handle (\NonTermination -> exitWith (ExitFailure 1)) $ do ..." is much more convincing and common. |
2020-11-30 04:31:35 +0100 | <monochrom> | Yes. |
2020-11-30 04:33:07 +0100 | <koz_> | . o O ("do or do not, there is no try") |
2020-11-30 04:33:41 +0100 | <monochrom> | I write "do try" all the time :) |
2020-11-30 04:33:44 +0100 | <int-e> | DONT GIVE UP |
2020-11-30 04:36:26 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services))) |
2020-11-30 04:36:28 +0100 | christo | (~chris@81.96.113.213) |
2020-11-30 04:36:34 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) |
2020-11-30 04:39:27 +0100 | theDon | (~td@94.134.91.51) (Ping timeout: 260 seconds) |
2020-11-30 04:39:36 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) (Quit: quit) |
2020-11-30 04:40:38 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 04:41:04 +0100 | theDon | (~td@muedsl-82-207-238-063.citykom.de) |
2020-11-30 04:43:21 +0100 | hackage | uusi 0.3.0.0 - Tweak dependencies in .cabal files https://hackage.haskell.org/package/uusi-0.3.0.0 (berberman) |
2020-11-30 04:44:38 +0100 | <dsal> | @undo do io |
2020-11-30 04:44:38 +0100 | <lambdabot> | io |
2020-11-30 04:44:45 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
2020-11-30 04:44:46 +0100 | <dsal> | ^ kupi |
2020-11-30 04:44:55 +0100 | <Axman6> | @undo do do do io |
2020-11-30 04:44:55 +0100 | <lambdabot> | io |
2020-11-30 04:44:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 04:45:27 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-30 04:45:29 +0100 | <kupi> | @undo do x <- oi1; y <- io2; return (x+y) |
2020-11-30 04:45:29 +0100 | <lambdabot> | oi1 >>= \ x -> io2 >>= \ y -> return (x + y) |
2020-11-30 04:45:59 +0100 | <koz_> | Axman6: lol |
2020-11-30 04:46:18 +0100 | <kupi> | nice but I would prefer liftA2 (+) io1 io2 |
2020-11-30 04:46:34 +0100 | <dsal> | Sure, but that means something different. |
2020-11-30 04:46:52 +0100 | <koz_> | 'do do do io' <- truly the time when do-notation is considered harmful |
2020-11-30 04:47:08 +0100 | <dsal> | @undo do harm |
2020-11-30 04:47:08 +0100 | <lambdabot> | harm |
2020-11-30 04:47:15 +0100 | <kupi> | dsal: what is the difference? |
2020-11-30 04:47:34 +0100 | <dsal> | :t liftA2 |
2020-11-30 04:47:36 +0100 | <lambdabot> | Applicative f => (a -> b -> c) -> f a -> f b -> f c |
2020-11-30 04:48:00 +0100 | <koz_> | @undo do the wrong thing |
2020-11-30 04:48:00 +0100 | <lambdabot> | the wrong thing |
2020-11-30 04:48:06 +0100 | <dsal> | You'll have the same effect, but it's not un`do`ing. |
2020-11-30 04:48:23 +0100 | <dsal> | koz_: some mistakes can't be undood |
2020-11-30 04:48:40 +0100 | <koz_> | dsal: This. |
2020-11-30 04:48:46 +0100 | <int-e> | @. pl undo do x <- oi1; y <- io2; return (x+y) |
2020-11-30 04:48:46 +0100 | <lambdabot> | (`fmap` io2) . (+) =<< oi1 |
2020-11-30 04:49:04 +0100 | <int-e> | . o O ( that went perfectly ) |
2020-11-30 04:49:05 +0100 | <kupi> | is there a separate program I can use this "undo"? |
2020-11-30 04:49:10 +0100 | <koz_> | int-e: That is a truly shocking combo and I am impressed. |
2020-11-30 04:49:19 +0100 | <kupi> | til not i have done undo a lot of times by hand |
2020-11-30 04:49:24 +0100 | <kupi> | *til now |
2020-11-30 04:49:29 +0100 | <dsal> | kupi: /query lambdabot |
2020-11-30 04:49:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-30 04:49:49 +0100 | <koz_> | Do undo others as they undo you. |
2020-11-30 04:50:00 +0100 | <dsal> | haha. That's perfect. |
2020-11-30 04:50:42 +0100 | <kupi> | dsal: most undos are multilines so i can't send it to lambdabot |
2020-11-30 04:50:44 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2020-11-30 04:50:46 +0100 | <kupi> | *dos |
2020-11-30 04:50:54 +0100 | texasmynsted | (~texasmyns@212.102.45.106) () |
2020-11-30 04:51:07 +0100 | <dsal> | @undo do { line1 ; x <- line2; pure awesome } |
2020-11-30 04:51:07 +0100 | <lambdabot> | line1 >> line2 >>= \ x -> pure awesome |
2020-11-30 04:51:07 +0100 | <int-e> | why do you want to undo so much? |
2020-11-30 04:51:22 +0100 | <koz_> | :t pure fail |
2020-11-30 04:51:24 +0100 | <lambdabot> | (MonadFail m, Applicative f) => f (String -> m a) |
2020-11-30 04:51:34 +0100 | <kupi> | because it creates bigger namespaces than it should |
2020-11-30 04:51:36 +0100 | <koz_> | int-e: Mistakes were made. |
2020-11-30 04:51:40 +0100 | <kupi> | most of the times |
2020-11-30 04:51:45 +0100 | <dsal> | do creates namespaces? |
2020-11-30 04:51:52 +0100 | <kupi> | yes |
2020-11-30 04:51:53 +0100 | <int-e> | people use do notation because most find it more readable than the bindful version |
2020-11-30 04:51:55 +0100 | <dsal> | do is just a syntax |
2020-11-30 04:51:56 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
2020-11-30 04:52:31 +0100 | <kupi> | @undo x <- m1; y <- m2 x; return m2 |
2020-11-30 04:52:31 +0100 | <lambdabot> | <unknown>.hs:1:3:Parse error: <- |
2020-11-30 04:52:38 +0100 | <kupi> | @undo do x <- m1; y <- m2 x; return m2; |
2020-11-30 04:52:38 +0100 | <lambdabot> | m1 >>= \ x -> m2 x >>= \ y -> return m2 |
2020-11-30 04:52:40 +0100 | <koz_> | 'Do creates namespaces' is a take I didn't think I'd hear today. |
2020-11-30 04:52:54 +0100 | <dsal> | You cannot undo that which has not been dood. |
2020-11-30 04:52:59 +0100 | <kupi> | here x can be accessed in m2 |
2020-11-30 04:53:04 +0100 | <kupi> | * return |
2020-11-30 04:53:08 +0100 | <kupi> | but not used |
2020-11-30 04:53:23 +0100 | <dsal> | That's not a namespace, though. |
2020-11-30 04:53:29 +0100 | <kupi> | maybe i use the wrong word but the scope has more variables than it should |
2020-11-30 04:53:40 +0100 | <kupi> | also the code is longer than it shold be |
2020-11-30 04:53:47 +0100 | <dsal> | You just made a new scope and reused the same name. It doesn't matter whether you're using do or not there. |
2020-11-30 04:54:03 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-11-30 04:54:11 +0100 | <int-e> | koz_: well the same effect can be achieved through lambdas... which is what @undo produces |
2020-11-30 04:54:13 +0100 | <kupi> | it's simply just m1 >>= m2 |
2020-11-30 04:54:22 +0100 | <dsal> | @. pl undo do x <- m1; y <- m2 x; return m2 |
2020-11-30 04:54:22 +0100 | <lambdabot> | (m2 =<< m1) >> return m2 |
2020-11-30 04:54:57 +0100 | <kupi> | what is .pl? |
2020-11-30 04:55:08 +0100 | <dsal> | . is compose |
2020-11-30 04:55:16 +0100 | <dsal> | pl is to render pointless |
2020-11-30 04:55:36 +0100 | <kupi> | @. pl undo do x <- m1; y <- m2 x; return y; |
2020-11-30 04:55:36 +0100 | <lambdabot> | m2 =<< m1 |
2020-11-30 04:55:47 +0100 | <monochrom> | You don't have namespacing unless you have special syntax for accessing names outside the default namsepace. |
2020-11-30 04:55:48 +0100 | <kupi> | that is the reason i want to undo |
2020-11-30 04:56:02 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 04:56:05 +0100 | <dsal> | Oh, that's more pl than undo. |
2020-11-30 04:56:18 +0100 | <int-e> | yeah, namespace != scope |
2020-11-30 04:56:35 +0100 | <monochrom> | If you write "\x -> \x -> ???" inside the ??? you have absolutely no syntax that gives you the 1st x. Therefore this is not namespacing. |
2020-11-30 04:56:55 +0100 | <koz_> | Yay name shadowing. |
2020-11-30 04:57:15 +0100 | <kupi> | is there a way to send lambdabot multiple lines in a command? |
2020-11-30 04:57:20 +0100 | <monochrom> | Whereas if you write "\null -> ???" inside the "???" you can still write "Prelude.null" for the global null, now that's namespacing. |
2020-11-30 04:57:48 +0100 | <int-e> | koz_: no |
2020-11-30 04:57:54 +0100 | <int-e> | hmmm |
2020-11-30 04:57:58 +0100 | <int-e> | kupi: |
2020-11-30 04:58:35 +0100 | dsal | listens to monochrom's "Now that's what I call namespacing, volume Prelude" |
2020-11-30 04:58:38 +0100 | <int-e> | ("hmmm" was me wondering how I managed to mess up this name) |
2020-11-30 04:58:51 +0100 | <koz_> | int-e: Lotsa folks with k-names? |
2020-11-30 04:58:54 +0100 | <dsal> | kupi: ; is a newline |
2020-11-30 04:59:19 +0100 | <int-e> | > let foo x y | x <- x+1, y <- y+2 = x*y in foo 1 1 -- yay shadowing |
2020-11-30 04:59:21 +0100 | hackage | newtype-zoo 1.2.1.0 - Newtype Wrapper Zoo https://hackage.haskell.org/package/newtype-zoo-1.2.1.0 (SvenHeyll) |
2020-11-30 04:59:21 +0100 | <lambdabot> | 6 |
2020-11-30 04:59:24 +0100 | <dsal> | kupi: but in general, describing an abstraction of your problem will be much easier than pasting a bunch of code verbatim. |
2020-11-30 05:00:02 +0100 | <dsal> | pl isn't all knowing, either. It just knows a bunch of dumb tricks. Not every trick, though. |
2020-11-30 05:00:19 +0100 | <monochrom> | It's also pretty old. |
2020-11-30 05:00:41 +0100 | <monochrom> | It's, like, before Applicative. |
2020-11-30 05:00:48 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-11-30 05:01:04 +0100 | <kupi> | is there a separate program for those tricks? hlint does not know all of those dumb tricks |
2020-11-30 05:01:29 +0100 | <int-e> | @hackage pointless |
2020-11-30 05:01:29 +0100 | <lambdabot> | https://hackage.haskell.org/package/pointless |
2020-11-30 05:01:48 +0100 | <int-e> | @hackage pointfree |
2020-11-30 05:01:48 +0100 | <lambdabot> | https://hackage.haskell.org/package/pointfree |
2020-11-30 05:01:56 +0100 | <int-e> | that one, sorry. I misremembered the name. |
2020-11-30 05:02:17 +0100 | <int-e> | Or rather, the package is not named properly :-P |
2020-11-30 05:02:28 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 246 seconds) |
2020-11-30 05:04:02 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
2020-11-30 05:05:20 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) |
2020-11-30 05:07:58 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 05:08:26 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 05:13:00 +0100 | adm_ | (~adm@117.208.21.247) (Remote host closed the connection) |
2020-11-30 05:15:45 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) |
2020-11-30 05:19:53 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-30 05:21:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 05:21:59 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 05:22:03 +0100 | adm_ | (~adm@117.208.21.247) (Read error: Connection reset by peer) |
2020-11-30 05:22:09 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 05:22:22 +0100 | adm_ | (~adm@117.208.21.247) (Remote host closed the connection) |
2020-11-30 05:22:48 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 05:24:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2020-11-30 05:25:35 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds) |
2020-11-30 05:26:29 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-30 05:27:13 +0100 | adm_ | (~adm@117.208.21.247) (Ping timeout: 264 seconds) |
2020-11-30 05:27:42 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 05:29:56 +0100 | shf | (~sheaf@2a01:cb19:80cc:7e00:39e8:c690:7735:f5ef) |
2020-11-30 05:29:56 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 05:30:03 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
2020-11-30 05:30:08 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) (Ping timeout: 272 seconds) |
2020-11-30 05:30:17 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 05:32:11 +0100 | <kupi> | what have i done? |
2020-11-30 05:32:13 +0100 | <kupi> | (getRecursiveContents >=>) . filterM . fix . const . (`ap` getModificationTime) . (`ap` getFileSize) . (`ap` getPermissions) . (liftA3 .) |
2020-11-30 05:32:42 +0100 | <monochrom> | Transcendence |
2020-11-30 05:32:54 +0100 | <Axman6> | made difficult to read code |
2020-11-30 05:34:44 +0100 | <kupi> | this was the original code but i am not satisfied with it https://gist.github.com/theqp/08eb2d8780c638b892019b3b5ad23963 |
2020-11-30 05:36:08 +0100 | <int-e> | . o O ( Where is liftA4 when you "need" it... ) |
2020-11-30 05:36:30 +0100 | <Axman6> | I prefer your original code |
2020-11-30 05:36:48 +0100 | <kupi> | me too |
2020-11-30 05:36:51 +0100 | hackage | numhask-free 0.0.2 - Numerical free algebras https://hackage.haskell.org/package/numhask-free-0.0.2 (tonyday567) |
2020-11-30 05:37:05 +0100 | <monochrom> | @type fix . const |
2020-11-30 05:37:07 +0100 | <lambdabot> | c -> c |
2020-11-30 05:37:23 +0100 | <monochrom> | IIRC earlier today we established that fix . const = id |
2020-11-30 05:37:43 +0100 | <kupi> | what |
2020-11-30 05:38:04 +0100 | <monochrom> | > (fix . const) "hello" |
2020-11-30 05:38:07 +0100 | <lambdabot> | "hello" |
2020-11-30 05:38:12 +0100 | <monochrom> | > (fix . const) False |
2020-11-30 05:38:14 +0100 | <kupi> | it was id all along? |
2020-11-30 05:38:15 +0100 | <lambdabot> | False |
2020-11-30 05:38:16 +0100 | <int-e> | . o O ( check = liftA4 liftA3 p getPermissions getFileSize getModificationTime ) |
2020-11-30 05:38:54 +0100 | <MarcelineVQ> | :< |
2020-11-30 05:39:09 +0100 | <Axman6> | beautiful |
2020-11-30 05:40:25 +0100 | <int-e> | @hoogle liftA4 |
2020-11-30 05:40:25 +0100 | <lambdabot> | Control.Applicative.HT liftA4 :: Applicative f => (a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f e |
2020-11-30 05:40:25 +0100 | <lambdabot> | Util liftA4 :: Applicative p => (a -> b -> c -> d -> e) -> p a -> p b -> p c -> p d -> p e |
2020-11-30 05:40:25 +0100 | <lambdabot> | Rank2 liftA4 :: Apply g => (forall a . p a -> q a -> r a -> s a -> t a) -> g p -> g q -> g r -> g s -> g t |
2020-11-30 05:41:03 +0100 | <int-e> | Util, what a great public module name |
2020-11-30 05:41:43 +0100 | cantstanya | (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds) |
2020-11-30 05:42:06 +0100 | <Axman6> | it's probably a decade old and and in something like missing-h |
2020-11-30 05:42:32 +0100 | <Axman6> | I remember the days when there was some very common packages which just added functions people thought were missing in base packages |
2020-11-30 05:44:16 +0100 | <int-e> | that probably only stopped once all the good names were taken, like https://hackage.haskell.org/package/extra |
2020-11-30 05:44:58 +0100 | <int-e> | (seriously it hasn't stopped. the novelty has worn off though) |
2020-11-30 05:46:11 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff21c162f6267ce4f02c.dip0.t-ipconnect.de) |
2020-11-30 05:48:02 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:a607:ad37:544:fcd4) (Ping timeout: 264 seconds) |
2020-11-30 05:50:16 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 05:50:56 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 05:51:02 +0100 | anhydrite | (~anhydrite@4e69b241.skybroadband.com) |
2020-11-30 05:55:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-30 05:57:40 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-11-30 06:00:26 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) |
2020-11-30 06:00:39 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
2020-11-30 06:00:45 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:4c6e:c2bd:723f:5eaa) |
2020-11-30 06:01:03 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-30 06:03:14 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 06:03:54 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:08:23 +0100 | jedws | (~jedws@pa49-181-235-217.pa.nsw.optusnet.com.au) |
2020-11-30 06:09:23 +0100 | iqubic | (~user@2601:602:9500:4870:ed6c:ae7b:1487:9d5a) (Read error: Connection reset by peer) |
2020-11-30 06:10:55 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) (Ping timeout: 256 seconds) |
2020-11-30 06:11:21 +0100 | hackage | numhask-free 0.0.3 - numerical free algebras https://hackage.haskell.org/package/numhask-free-0.0.3 (tonyday567) |
2020-11-30 06:12:08 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 06:13:26 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-30 06:13:26 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Client Quit) |
2020-11-30 06:13:51 +0100 | hackage | hinterface 2.0.1 - Haskell / Erlang interoperability library https://hackage.haskell.org/package/hinterface-2.0.1 (SvenHeyll) |
2020-11-30 06:14:15 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) () |
2020-11-30 06:15:29 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) |
2020-11-30 06:17:26 +0100 | conman1 | (~conman@185.204.1.185) (Remote host closed the connection) |
2020-11-30 06:17:58 +0100 | <koz_> | Haskell is the strongest language; all we do is lift. |
2020-11-30 06:19:07 +0100 | Clint | slowclaps. |
2020-11-30 06:19:25 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-11-30 06:21:22 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 06:21:48 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 06:21:55 +0100 | koz_ | bowbows. |
2020-11-30 06:22:29 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 06:24:32 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 06:24:47 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:24:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 06:24:52 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 06:24:52 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 06:25:55 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-11-30 06:28:16 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 06:28:58 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:29:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-30 06:31:49 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 06:32:03 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:34:09 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 06:34:56 +0100 | jedws | (~jedws@pa49-181-235-217.pa.nsw.optusnet.com.au) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-30 06:34:57 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:35:55 +0100 | <int-e> | write pure code, it's easy; no lifting required |
2020-11-30 06:38:02 +0100 | SeMas | (uid32977@gateway/web/irccloud.com/x-gvhiftwjfdiypfrd) (Quit: Connection closed for inactivity) |
2020-11-30 06:38:02 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 06:38:38 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-30 06:38:42 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:39:26 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) (Read error: Connection reset by peer) |
2020-11-30 06:41:37 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 06:41:38 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) |
2020-11-30 06:42:11 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:42:36 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 268 seconds) |
2020-11-30 06:43:31 +0100 | veehexx | (~veehexx@178.239.168.171) |
2020-11-30 06:45:20 +0100 | notzmv` | (~user@201-43-51-116.dsl.telesp.net.br) |
2020-11-30 06:45:56 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Quit: leaving) |
2020-11-30 06:48:04 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 06:48:16 +0100 | notzmv | (~user@unaffiliated/zmv) (Ping timeout: 240 seconds) |
2020-11-30 06:48:49 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-30 06:48:51 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:49:15 +0100 | jchia | (~jchia@58.32.36.109) (Read error: Connection reset by peer) |
2020-11-30 06:50:00 +0100 | jchia | (~jchia@58.32.36.109) |
2020-11-30 06:50:24 +0100 | rprije | (~rprije@124-148-236-109.tpgi.com.au) |
2020-11-30 06:52:54 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 06:53:30 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:53:36 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 06:54:02 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 06:57:06 +0100 | u0_a298 | (~user@65.35.205.131) (Remote host closed the connection) |
2020-11-30 06:58:02 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 06:59:01 +0100 | elliott_ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2020-11-30 06:59:13 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 06:59:27 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 06:59:34 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 06:59:46 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 07:00:00 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 07:00:16 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 07:00:31 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 07:00:47 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 07:01:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 07:03:54 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:04:16 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:05:16 +0100 | rprije | (~rprije@124-148-236-109.tpgi.com.au) (Ping timeout: 240 seconds) |
2020-11-30 07:07:24 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:07:55 +0100 | elliott_ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-11-30 07:08:04 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:09:43 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2020-11-30 07:10:03 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2020-11-30 07:12:08 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:13:03 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:15:16 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:15:16 +0100 | rprije | (~rprije@194-193-52-155.tpgi.com.au) |
2020-11-30 07:15:44 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:18:21 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) (Ping timeout: 256 seconds) |
2020-11-30 07:18:22 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:19:38 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 260 seconds) |
2020-11-30 07:20:33 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:20:58 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 07:20:58 +0100 | Spiff | (~quassel@102.160.27.107) |
2020-11-30 07:21:13 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 07:21:26 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 07:21:29 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:4c6e:c2bd:723f:5eaa) (Ping timeout: 272 seconds) |
2020-11-30 07:21:38 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 07:24:08 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:24:49 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:27:13 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:27:37 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
2020-11-30 07:27:58 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:30:15 +0100 | rprije | (~rprije@194-193-52-155.tpgi.com.au) (Ping timeout: 256 seconds) |
2020-11-30 07:31:43 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 07:32:12 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 07:34:29 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
2020-11-30 07:34:29 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:34:29 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) |
2020-11-30 07:35:14 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:35:15 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
2020-11-30 07:35:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-30 07:37:07 +0100 | ericsagnes | (~ericsagne@sp49-97-97-189.msc.spmode.ne.jp) |
2020-11-30 07:39:00 +0100 | suzu_ | scratches chin and nods |
2020-11-30 07:39:02 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff21c162f6267ce4f02c.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2020-11-30 07:39:25 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-30 07:41:01 +0100 | elliott_ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
2020-11-30 07:41:37 +0100 | rprije | (~rprije@194-193-143-88.tpgi.com.au) |
2020-11-30 07:43:36 +0100 | Maxdamantus | (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 240 seconds) |
2020-11-30 07:43:42 +0100 | adm_ | (~adm@117.208.21.247) (Remote host closed the connection) |
2020-11-30 07:45:55 +0100 | Maxdamantus | (~Maxdamant@unaffiliated/maxdamantus) |
2020-11-30 07:45:56 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:46:19 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:48:25 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:49:04 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:51:09 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:51:34 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:54:04 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:54:31 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 07:56:11 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2020-11-30 07:58:16 +0100 | jchia1 | (~jchia@58.32.33.6) |
2020-11-30 07:58:16 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 07:58:36 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2020-11-30 07:58:46 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:00:09 +0100 | jchia | (~jchia@58.32.36.109) (Read error: Connection reset by peer) |
2020-11-30 08:02:56 +0100 | ericsagnes | (~ericsagne@sp49-97-97-189.msc.spmode.ne.jp) (Ping timeout: 240 seconds) |
2020-11-30 08:03:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 08:04:57 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-11-30 08:07:27 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:07:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2020-11-30 08:08:15 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:08:33 +0100 | ericsagnes | (~ericsagne@sp49-97-97-189.msc.spmode.ne.jp) |
2020-11-30 08:11:12 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:11:59 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:12:20 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 08:12:48 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 08:12:52 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 08:13:08 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 08:13:20 +0100 | alp__ | (~alp@2a01:e0a:58b:4920:78f2:8435:ea0f:a6b2) |
2020-11-30 08:13:30 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 08:13:31 +0100 | Ariakenom | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) |
2020-11-30 08:13:49 +0100 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2020-11-30 08:14:04 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 08:14:25 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 08:14:38 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 08:14:51 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 08:15:46 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 08:18:05 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:18:19 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
2020-11-30 08:18:30 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:20:15 +0100 | lpy | (~nyd@unaffiliated/elysian) |
2020-11-30 08:22:19 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:22:39 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:24:28 +0100 | sfvm | (~sfvm@37.228.215.54) (Quit: off to the basement, mixing up the medicine) |
2020-11-30 08:24:35 +0100 | srk | (sorki@unaffiliated/srk) (Quit: ZNC - http://znc.in) |
2020-11-30 08:24:36 +0100 | sorki | srk |
2020-11-30 08:26:14 +0100 | danvet_ | (~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) |
2020-11-30 08:28:25 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:29:08 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:30:50 +0100 | kuribas | (~user@ptr-25vy0i92djchka8xsjs.18120a2.ip6.access.telenet.be) |
2020-11-30 08:32:00 +0100 | adm_ | (~adm@117.208.21.247) (Remote host closed the connection) |
2020-11-30 08:34:52 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:35:08 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 08:35:14 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:36:41 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2020-11-30 08:39:07 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:39:33 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:40:24 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-30 08:40:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 08:42:02 +0100 | xff0x | (~fox@2001:1a81:5287:f00:6870:12f3:8204:7d32) (Ping timeout: 264 seconds) |
2020-11-30 08:42:42 +0100 | xff0x | (~fox@2001:1a81:5287:f00:70f2:294c:10e7:d278) |
2020-11-30 08:44:49 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:45:03 +0100 | lassulus | (~lassulus@NixOS/user/lassulus) (Ping timeout: 256 seconds) |
2020-11-30 08:45:16 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:46:29 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) |
2020-11-30 08:46:50 +0100 | iqubic | (~user@2601:602:9500:4870:ed6c:ae7b:1487:9d5a) |
2020-11-30 08:49:23 +0100 | <hololeap> | % :t (\(a,fb) -> (a,) <$> fb) |
2020-11-30 08:49:23 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:49:23 +0100 | <yahb> | hololeap: Functor f => (t1, f t2) -> f (t1, t2) |
2020-11-30 08:49:31 +0100 | <hololeap> | is there a name for this? |
2020-11-30 08:50:16 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:50:33 +0100 | urek | (~urek@2804:7f1:e10a:5ac1:8db3:3757:9c7d:4898) |
2020-11-30 08:50:56 +0100 | <merijn> | strong, iirc |
2020-11-30 08:52:48 +0100 | <dminuoso> | hololeap: looks like first from Arrow |
2020-11-30 08:52:59 +0100 | <jle`> | it's sequence in base, but yeah i think formally it is strength/strong/etc. |
2020-11-30 08:53:42 +0100 | <dminuoso> | Or yeah, Strong is better |
2020-11-30 08:53:42 +0100 | <jle`> | > sequence (3, Just "hi") |
2020-11-30 08:53:44 +0100 | <lambdabot> | Just (3,"hi") |
2020-11-30 08:54:07 +0100 | <jle`> | but i don't really like using sequence for it because it's a weird positional fluke kinda |
2020-11-30 08:54:19 +0100 | <jle`> | and i try to avoid using Foldable/Traversable for tuples when i can |
2020-11-30 08:54:40 +0100 | <jle`> | > bitraverse pure id (3, Just "hi") |
2020-11-30 08:54:43 +0100 | <lambdabot> | error: |
2020-11-30 08:54:43 +0100 | <lambdabot> | • Variable not in scope: |
2020-11-30 08:54:43 +0100 | <lambdabot> | bitraverse |
2020-11-30 08:57:01 +0100 | danvet_ | (~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) (Quit: Leaving) |
2020-11-30 08:57:01 +0100 | <hololeap> | jle`: you're right, it's just sequence. i got mixed up and thought (,) needed to be an Applicative, e.g. a Monoid in the first value |
2020-11-30 08:57:01 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 08:57:17 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 08:57:56 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-11-30 08:58:28 +0100 | <dminuoso> | Well it does. |
2020-11-30 08:58:32 +0100 | <dminuoso> | instance Monoid a => Applicative ((,) a) |
2020-11-30 08:58:48 +0100 | <dminuoso> | Oh. |
2020-11-30 08:59:33 +0100 | lassulus | (~lassulus@NixOS/user/lassulus) |
2020-11-30 09:00:00 +0100 | <dminuoso> | Question, when exposing some third party HTTP API with servant, would you rather just expose the servant API type, or provide a servant-client wrapper? |
2020-11-30 09:00:30 +0100 | <jle`> | in the past i have done both |
2020-11-30 09:00:51 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-11-30 09:01:30 +0100 | bitmagie | (~Thunderbi@200116b8068d1f006d607abf10bb6e5f.dip.versatel-1u1.de) |
2020-11-30 09:02:05 +0100 | <dminuoso> | I guess there's not much value in exposing an API, since you'd have to stuff it into servant at the end anyway |
2020-11-30 09:02:36 +0100 | <dminuoso> | Did you have some other considerations? |
2020-11-30 09:03:00 +0100 | <jle`> | there are things you can do with the API other than just calling it maybe |
2020-11-30 09:03:05 +0100 | <jle`> | like generating documentation or other stuff |
2020-11-30 09:03:31 +0100 | <jle`> | also maybe they could integrate it into their other servant stuff maybe |
2020-11-30 09:04:38 +0100 | daGrevis | (~daGrevis@unaffiliated/dagrevis) (Ping timeout: 260 seconds) |
2020-11-30 09:05:08 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff21c162f6267ce4f02c.dip0.t-ipconnect.de) |
2020-11-30 09:06:17 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) (Read error: Connection reset by peer) |
2020-11-30 09:06:46 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) |
2020-11-30 09:07:09 +0100 | ericsagnes | (~ericsagne@sp49-97-97-189.msc.spmode.ne.jp) (Ping timeout: 256 seconds) |
2020-11-30 09:09:34 +0100 | bitmagie | (~Thunderbi@200116b8068d1f006d607abf10bb6e5f.dip.versatel-1u1.de) (Quit: bitmagie) |
2020-11-30 09:11:20 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2020-11-30 09:11:32 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-30 09:12:46 +0100 | daGrevis | (~daGrevis@unaffiliated/dagrevis) |
2020-11-30 09:13:47 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-30 09:14:04 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-30 09:14:16 +0100 | darjeeling_ | (~darjeelin@115.215.41.204) (Ping timeout: 240 seconds) |
2020-11-30 09:15:21 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2020-11-30 09:16:32 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) |
2020-11-30 09:16:46 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2020-11-30 09:19:04 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 09:19:39 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 09:21:49 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 09:22:04 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 09:23:35 +0100 | Varis | (~Tadas@unaffiliated/varis) (Ping timeout: 256 seconds) |
2020-11-30 09:24:43 +0100 | hiroaki | (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2020-11-30 09:25:02 +0100 | Bergle_3 | (~Bergle_4@101.165.90.119) |
2020-11-30 09:25:28 +0100 | Amras | (~Amras@unaffiliated/amras) |
2020-11-30 09:27:33 +0100 | Bergle_2 | (~Bergle_4@101.165.90.119) (Ping timeout: 256 seconds) |
2020-11-30 09:29:18 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:268a:b208:c5d0:ca2a) |
2020-11-30 09:30:12 +0100 | lassulus | (~lassulus@NixOS/user/lassulus) (Ping timeout: 260 seconds) |
2020-11-30 09:30:57 +0100 | Bergle_3 | (~Bergle_4@101.165.90.119) (Ping timeout: 256 seconds) |
2020-11-30 09:31:28 +0100 | darjeeling_ | (~darjeelin@115.215.41.204) |
2020-11-30 09:32:30 +0100 | Bergle_1 | (~Bergle_4@101.165.90.119) |
2020-11-30 09:32:50 +0100 | chele | (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
2020-11-30 09:34:04 +0100 | chaosmasttter | (~chaosmast@p200300c4a708ba01009b72ed500751f5.dip0.t-ipconnect.de) |
2020-11-30 09:35:08 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-30 09:36:26 +0100 | veehexx | (~veehexx@178.239.168.171) (Remote host closed the connection) |
2020-11-30 09:36:57 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-vmvaxpsicxpbtezq) |
2020-11-30 09:39:19 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/) |
2020-11-30 09:40:08 +0100 | drbean | (~drbean@TC210-63-209-205.static.apol.com.tw) (Ping timeout: 265 seconds) |
2020-11-30 09:40:43 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-30 09:40:47 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:268a:b208:c5d0:ca2a) (Ping timeout: 260 seconds) |
2020-11-30 09:42:23 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-11-30 09:45:58 +0100 | christo | (~chris@81.96.113.213) |
2020-11-30 09:46:56 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:6448:a1be:2d68:fad7) |
2020-11-30 09:48:38 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Ping timeout: 264 seconds) |
2020-11-30 09:49:56 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
2020-11-30 09:52:35 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) |
2020-11-30 09:53:06 +0100 | ericsagnes | (~ericsagne@sp49-97-97-189.msc.spmode.ne.jp) |
2020-11-30 09:55:36 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 09:56:16 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 09:58:25 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 09:59:17 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:01:49 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:02:05 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:02:51 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 265 seconds) |
2020-11-30 10:05:12 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:05:24 +0100 | cole-h | (~cole-h@73.48.197.220) (Quit: Goodbye) |
2020-11-30 10:05:53 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2020-11-30 10:06:05 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:07:38 +0100 | Spiff | (~quassel@102.160.27.107) (Ping timeout: 256 seconds) |
2020-11-30 10:07:47 +0100 | Spiff | (~quassel@102.160.27.107) |
2020-11-30 10:08:03 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-30 10:08:36 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) |
2020-11-30 10:10:48 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:10:51 +0100 | hackage | kesha 0.1.0.0 - Haskell implementation of nix-hash https://hackage.haskell.org/package/kesha-0.1.0.0 (jmackie) |
2020-11-30 10:11:12 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) |
2020-11-30 10:11:15 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:12:29 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 10:15:08 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:15:22 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-qtyikxmplneltdye) (Quit: Connection closed for inactivity) |
2020-11-30 10:15:33 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:17:23 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-30 10:17:46 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-11-30 10:17:47 +0100 | toorevitimirp | (~tooreviti@117.182.183.16) |
2020-11-30 10:19:56 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:20:30 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:22:45 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:23:17 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:23:43 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 10:24:48 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-11-30 10:26:55 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:27:23 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:29:35 +0100 | urek | (~urek@2804:7f1:e10a:5ac1:8db3:3757:9c7d:4898) (Ping timeout: 272 seconds) |
2020-11-30 10:29:35 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:30:18 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:31:25 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-11-30 10:33:36 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:34:13 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:34:16 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-30 10:35:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-30 10:37:46 +0100 | <tomsmeding> | 05:41:03 int-e | Util, what a great public module name |
2020-11-30 10:37:55 +0100 | <tomsmeding> | it's the Util module in the 'util' package, to make it even nicer |
2020-11-30 10:40:06 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:40:43 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:41:54 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 10:46:16 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:46:51 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:49:20 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:49:43 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 256 seconds) |
2020-11-30 10:51:19 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:53:38 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:54:08 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:54:34 +0100 | seanparsons | (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) (Ping timeout: 265 seconds) |
2020-11-30 10:58:48 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 10:59:01 +0100 | dminuoso | longs for {-# LANGUAGE GuessCode #-} |
2020-11-30 10:59:05 +0100 | seanparsons | (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) |
2020-11-30 10:59:15 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 10:59:53 +0100 | ericsagnes | (~ericsagne@sp49-97-97-189.msc.spmode.ne.jp) (Ping timeout: 265 seconds) |
2020-11-30 11:00:15 +0100 | urek | (~urek@2804:7f1:e10a:5ac1:8db3:3757:9c7d:4898) |
2020-11-30 11:01:07 +0100 | raichoo | (~raichoo@dslb-178-009-076-213.178.009.pools.vodafone-ip.de) |
2020-11-30 11:01:09 +0100 | <idnar> | dminuoso: like Hoogle+? |
2020-11-30 11:01:17 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 11:02:13 +0100 | SummerNinja | (~SummerNin@185.103.96.147) |
2020-11-30 11:03:16 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-30 11:04:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 11:07:08 +0100 | u0_a298 | (~user@65.35.205.131) (Remote host closed the connection) |
2020-11-30 11:07:24 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 11:09:43 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-30 11:09:43 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 11:10:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-30 11:10:08 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 11:12:04 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 11:12:23 +0100 | <tomsmeding> | when encountering an unknown identifier that does occur in hoogle's database, automatically depend on that package and import the containing module? |
2020-11-30 11:14:03 +0100 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) |
2020-11-30 11:14:47 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:f60d:2a86:b6e3:223e) |
2020-11-30 11:17:20 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 11:17:53 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 11:18:13 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds) |
2020-11-30 11:18:39 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-30 11:20:49 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 11:21:13 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 11:21:44 +0100 | guest1130 | (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1)) |
2020-11-30 11:23:04 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-30 11:24:55 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2020-11-30 11:25:09 +0100 | <mouseghost> | smh who wrote these docs :C |
2020-11-30 11:26:43 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
2020-11-30 11:27:05 +0100 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) (Ping timeout: 240 seconds) |
2020-11-30 11:27:10 +0100 | <tomsmeding> | which docs mouseghost? |
2020-11-30 11:28:02 +0100 | <mouseghost> | for lens package uh.. i guess i need to learn more haskell, or im looking at the wrong thing, or this is exactly what it is (and im just trying to understand why for some reason) |
2020-11-30 11:28:28 +0100 | <mouseghost> | namely ^. and Getting type def |
2020-11-30 11:28:48 +0100 | <tomsmeding> | the type signatures in lens are not quite known for being easily understandable for beginners :) |
2020-11-30 11:28:56 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-30 11:29:04 +0100 | <mouseghost> | ;___; |
2020-11-30 11:29:12 +0100 | <tomsmeding> | I suspect other members of the channel have opinions on this, dminuoso? |
2020-11-30 11:29:41 +0100 | <tomsmeding> | (with which I want to say that it's not your fault that you're having trouble :p) |
2020-11-30 11:29:45 +0100 | <mouseghost> | though, is it true that when it comes to type definition, arguments passed satisfy the equation on the right hand side of eq. sign? |
2020-11-30 11:30:01 +0100 | <tomsmeding> | what do you mean exactly? |
2020-11-30 11:30:04 +0100 | <tomsmeding> | example perhaps? |
2020-11-30 11:30:08 +0100 | <mouseghost> | type Getting r s a = (a -> Const r a) -> s -> Const r s |
2020-11-30 11:30:35 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 11:30:35 +0100 | <mouseghost> | uh i got even more confused :D |
2020-11-30 11:30:40 +0100 | <tomsmeding> | what do you mean with "satisfy equation on the right hand side"? |
2020-11-30 11:30:52 +0100 | <tomsmeding> | there's no = sign on the right-hand side, so also no equation :p |
2020-11-30 11:30:57 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-30 11:31:11 +0100 | <tomsmeding> | but a type definition using 'type' means that the left-hand side, in this case 'Getting r s a', can be 1-to-1 replaced with its right-hand side |
2020-11-30 11:31:19 +0100 | <tomsmeding> | whenever you see Getting applied to three type arguments |
2020-11-30 11:31:31 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 11:31:36 +0100 | <mouseghost> | ohh |
2020-11-30 11:31:46 +0100 | JJ15__ | (~JJ@2a00:23a8:4382:a900:c581:e386:e820:2657) |
2020-11-30 11:31:55 +0100 | fendor | (~fendor@91.141.2.60.wireless.dyn.drei.com) |
2020-11-30 11:31:55 +0100 | <mouseghost> | thanks :o |
2020-11-30 11:32:19 +0100 | <tomsmeding> | this in contrast, of course, to 'newtype' and 'data', which create new data types |
2020-11-30 11:32:29 +0100 | <tomsmeding> | 'type' is just a type synonym |
2020-11-30 11:33:18 +0100 | <mouseghost> | i see i see |
2020-11-30 11:33:43 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
2020-11-30 11:34:47 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 11:35:15 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-30 11:35:50 +0100 | poljar | (~poljar@93-141-140-79.adsl.net.t-com.hr) |
2020-11-30 11:36:11 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds) |
2020-11-30 11:37:03 +0100 | DavidEichmann | (~david@62.110.198.146.dyn.plus.net) |
2020-11-30 11:38:04 +0100 | poljar1 | (~poljar@93-139-70-179.adsl.net.t-com.hr) (Ping timeout: 240 seconds) |
2020-11-30 11:38:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 11:38:52 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds) |
2020-11-30 11:39:31 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2020-11-30 11:40:22 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-30 11:40:25 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Client Quit) |
2020-11-30 11:42:15 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 11:42:16 +0100 | Jonkimi727406120 | (~Jonkimi@113.87.160.57) (Ping timeout: 256 seconds) |
2020-11-30 11:42:18 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9) |
2020-11-30 11:46:22 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 11:46:41 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 11:48:48 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 11:49:16 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 11:51:12 +0100 | z0k | (~user@101.50.127.33) |
2020-11-30 11:53:37 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 11:54:02 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-30 11:54:06 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 11:55:02 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2020-11-30 11:56:11 +0100 | <mouseghost> | if theres a type def like :: a -> a, it means that just the type is the same, right :V? |
2020-11-30 11:57:44 +0100 | <dminuoso> | tomsmeding: optics is a great library for beginners. |
2020-11-30 11:57:53 +0100 | <dminuoso> | Or, mouseghost rather. |
2020-11-30 11:58:11 +0100 | <mouseghost> | mouseghosts hm |
2020-11-30 11:58:30 +0100 | <dminuoso> | optics wraps optics behind newtypes, making it much easier to read the types |
2020-11-30 11:58:38 +0100 | <dminuoso> | So rather than |
2020-11-30 11:58:40 +0100 | <dminuoso> | type Getting r s a = (a -> Const r a) -> s -> Const r s |
2020-11-30 11:58:43 +0100 | <dminuoso> | You have something like |
2020-11-30 11:58:59 +0100 | <dminuoso> | to :: (s -> a) -> Getter s a |
2020-11-30 11:59:03 +0100 | <dminuoso> | Where Getter is a proper newtype |
2020-11-30 11:59:15 +0100 | <dminuoso> | No confusion, it's optics problem how that is represented |
2020-11-30 11:59:23 +0100 | <dminuoso> | And for things that work over any getter you have |
2020-11-30 11:59:26 +0100 | <dminuoso> | view :: Is k A_Getter => Optic' k is s a -> s -> a |
2020-11-30 12:00:13 +0100 | <mouseghost> | o_o |
2020-11-30 12:00:15 +0100 | <dminuoso> | And you get nice diagnostics based on that, where GHC will error out like "A_Getter cannot be used as A_Setter", rather than constraint errors |
2020-11-30 12:00:31 +0100 | <dminuoso> | Compare the above to the lens equivalen |
2020-11-30 12:01:26 +0100 | <mouseghost> | thanks hm |
2020-11-30 12:01:57 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:f60d:2a86:b6e3:223e) (Ping timeout: 260 seconds) |
2020-11-30 12:02:21 +0100 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) |
2020-11-30 12:02:35 +0100 | <dminuoso> | view :: MonadReader s m => ((a -> Const r a) -> s -> Const r s) -> m a |
2020-11-30 12:02:42 +0100 | <dminuoso> | view :: MonadReader s m => Getting a s a -> m a |
2020-11-30 12:03:00 +0100 | <dminuoso> | These two are the same, and depending on how GHC runs, you will see the former in GHC diagnostics |
2020-11-30 12:03:18 +0100 | <mouseghost> | yeah i understand |
2020-11-30 12:03:56 +0100 | CMCDragonkai1 | (~Thunderbi@124.19.3.250) (Client Quit) |
2020-11-30 12:04:47 +0100 | <mouseghost> | dminuoso, do parentheses always imply a function then? and hence do all type synonyms have these implicit ()? |
2020-11-30 12:05:10 +0100 | <dminuoso> | No, parens are just to control how things associate |
2020-11-30 12:05:17 +0100 | <dminuoso> | Similarly to value level |
2020-11-30 12:05:25 +0100 | aarvar | (~foewfoiew@50.35.43.33) |
2020-11-30 12:05:48 +0100 | <mouseghost> | hm |
2020-11-30 12:06:04 +0100 | aarvar | (~foewfoiew@50.35.43.33) (Client Quit) |
2020-11-30 12:07:20 +0100 | <mouseghost> | thanks |
2020-11-30 12:08:19 +0100 | <mouseghost> | ill take a look at that optics package; im wondering, can packages be compatible then? |
2020-11-30 12:08:28 +0100 | ulidtko | (~ulidtko@193.111.48.79) |
2020-11-30 12:08:46 +0100 | <mouseghost> | nvm this doesnt make sesne |
2020-11-30 12:08:47 +0100 | <mouseghost> | sense |
2020-11-30 12:10:11 +0100 | <mouseghost> | thanks uwu |
2020-11-30 12:10:37 +0100 | <nitrix> | Finally someone speaking my language. |
2020-11-30 12:13:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2020-11-30 12:14:04 +0100 | <mouseghost> | nitrix, :3 |
2020-11-30 12:14:19 +0100 | loller | (uid358106@gateway/web/irccloud.com/x-rrjevhwdhvmhkvwa) |
2020-11-30 12:17:53 +0100 | rprije | (~rprije@194-193-143-88.tpgi.com.au) (Ping timeout: 272 seconds) |
2020-11-30 12:18:07 +0100 | LKoen | (~LKoen@105.175.9.109.rev.sfr.net) |
2020-11-30 12:20:37 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 12:21:05 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 12:21:11 +0100 | <maerwald> | mouseghost: what do you mean with compatible |
2020-11-30 12:21:28 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:1a87:b30a:6cc7:5b7c) |
2020-11-30 12:21:44 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-11-30 12:22:19 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-30 12:22:21 +0100 | hackage | arch-hs 0.5.0.0 - Distribute hackage packages to archlinux https://hackage.haskell.org/package/arch-hs-0.5.0.0 (berberman) |
2020-11-30 12:22:43 +0100 | <mouseghost> | maerwald, that, given a package b depending on a package c, i could use package d if types matched or something |
2020-11-30 12:22:58 +0100 | <maerwald> | you may want to check https://hackage.haskell.org/package/optics-vl |
2020-11-30 12:23:12 +0100 | <maerwald> | which allows you to convert between lens and optics |
2020-11-30 12:24:26 +0100 | <dminuoso> | mouseghost: optics comes with primitives to build stuff from van laarhoven on most things (where its possible) |
2020-11-30 12:24:31 +0100 | notzmv` | notzmv |
2020-11-30 12:24:36 +0100 | notzmv | (~user@201-43-51-116.dsl.telesp.net.br) (Changing host) |
2020-11-30 12:24:36 +0100 | notzmv | (~user@unaffiliated/zmv) |
2020-11-30 12:25:11 +0100 | <mouseghost> | o-o thanks |
2020-11-30 12:26:05 +0100 | Wuzzy | (~Wuzzy@p549c9976.dip0.t-ipconnect.de) |
2020-11-30 12:27:03 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2020-11-30 12:30:33 +0100 | alp__ | (~alp@2a01:e0a:58b:4920:78f2:8435:ea0f:a6b2) (Ping timeout: 272 seconds) |
2020-11-30 12:30:36 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 12:30:51 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 12:31:06 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 12:32:27 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:1a87:b30a:6cc7:5b7c) (Ping timeout: 272 seconds) |
2020-11-30 12:34:43 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-fqbnyydqsnaerben) (Quit: Connection closed for inactivity) |
2020-11-30 12:35:00 +0100 | alp__ | (~alp@2a01:e0a:58b:4920:75f3:b75c:ddf0:2287) |
2020-11-30 12:35:41 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff21c162f6267ce4f02c.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-11-30 12:36:04 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 12:36:07 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 12:36:35 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 12:37:17 +0100 | urek | (~urek@2804:7f1:e10a:5ac1:8db3:3757:9c7d:4898) (Ping timeout: 260 seconds) |
2020-11-30 12:39:40 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
2020-11-30 12:39:55 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-11-30 12:40:38 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-11-30 12:41:44 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 12:42:14 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 12:42:16 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 12:42:41 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 12:43:59 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
2020-11-30 12:46:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 12:47:24 +0100 | ubert | (~Thunderbi@p200300ecdf1e53b5e6b318fffe838f33.dip0.t-ipconnect.de) |
2020-11-30 12:47:51 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 12:48:18 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 12:49:44 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2020-11-30 12:50:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-30 12:50:59 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-11-30 12:51:10 +0100 | <mouseghost> | btw, why is it called van laarhoven |
2020-11-30 12:53:06 +0100 | <dminuoso> | Twan Van Laarhoven is the person who came up with the original idea and encoding. |
2020-11-30 12:53:15 +0100 | <dminuoso> | https://www.twanvl.nl/blog/haskell/cps-functional-references |
2020-11-30 12:53:19 +0100 | <dminuoso> | type RefF a b = forall f. Functor f => (b -> f b) -> (a -> f a) |
2020-11-30 12:53:30 +0100 | <dminuoso> | Which looks an awful lot like `Lens'` :) |
2020-11-30 12:53:37 +0100 | <dminuoso> | type Lens' s a = Lens s s a a |
2020-11-30 12:53:43 +0100 | <dminuoso> | type Lens s t a b = forall f . Functor f => (a -> f b) -> s -> f t |
2020-11-30 12:53:45 +0100 | <dminuoso> | So |
2020-11-30 12:54:02 +0100 | <dminuoso> | We call this particular encoding of "lenses" (a term not known back then) as van laarhoven encoding, as tribute to him |
2020-11-30 12:54:36 +0100 | <mouseghost> | i see, i couldn't find the proper van laarhoven hence i asked :P thanks |
2020-11-30 12:56:44 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-11-30 12:58:06 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:eb49:48c8:385b:8ae3) |
2020-11-30 13:00:25 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 13:01:06 +0100 | urek | (~urek@2804:7f1:e10a:c641:3505:b16d:6812:3a9b) |
2020-11-30 13:01:06 +0100 | shatriff | (~vitaliish@176.52.219.10) (Remote host closed the connection) |
2020-11-30 13:01:13 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 13:03:17 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 13:03:58 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 13:04:36 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds) |
2020-11-30 13:06:53 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 13:07:10 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 13:08:45 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) |
2020-11-30 13:10:06 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-30 13:10:17 +0100 | hackplan1 | (~hackplan@2408:8221:4b10:da30:4410:1b15:c509:bf46) |
2020-11-30 13:10:50 +0100 | hackplan | (~miuchan@2408:8221:4b1e:80d0:1c28:9d6f:fae6:d558) (Ping timeout: 264 seconds) |
2020-11-30 13:13:05 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Client Quit) |
2020-11-30 13:13:05 +0100 | u0_a298 | (~user@65.35.205.131) (Read error: Connection reset by peer) |
2020-11-30 13:13:41 +0100 | u0_a298 | (~user@65.35.205.131) |
2020-11-30 13:14:39 +0100 | solonarv | (~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr) |
2020-11-30 13:16:47 +0100 | alp__ | (~alp@2a01:e0a:58b:4920:75f3:b75c:ddf0:2287) (Ping timeout: 272 seconds) |
2020-11-30 13:17:17 +0100 | dxld | (~dxld@2a01:4f8:201:89ff:22cf:30ff:fe67:8db) (Quit: Bye) |
2020-11-30 13:17:47 +0100 | chaosmasttter | (~chaosmast@p200300c4a708ba01009b72ed500751f5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-30 13:18:21 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-30 13:19:04 +0100 | dxld | (~dxld@80-109-136-248.cable.dynamic.surfer.at) |
2020-11-30 13:21:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 13:22:04 +0100 | adm_ | (~adm@117.208.21.247) (Remote host closed the connection) |
2020-11-30 13:22:16 +0100 | LKoen | (~LKoen@105.175.9.109.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-30 13:22:30 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 13:23:32 +0100 | u0_a298 | (~user@65.35.205.131) (Ping timeout: 260 seconds) |
2020-11-30 13:24:01 +0100 | Mathmoose | (~mathias@31-208-78-204.cust.bredband2.com) |
2020-11-30 13:26:17 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
2020-11-30 13:26:49 +0100 | adm_ | (~adm@117.208.21.247) (Ping timeout: 246 seconds) |
2020-11-30 13:26:54 +0100 | Spiff | (~quassel@102.160.27.107) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2020-11-30 13:26:58 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-11-30 13:27:38 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) |
2020-11-30 13:28:29 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 13:28:46 +0100 | Spiff | (~quassel@102.160.27.107) |
2020-11-30 13:28:58 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 13:30:05 +0100 | befuddled | (~befuddled@49.207.215.241) |
2020-11-30 13:31:34 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds) |
2020-11-30 13:31:51 +0100 | hackage | polysemy-path 0.2.0.0 - Polysemy versions of Path functions. https://hackage.haskell.org/package/polysemy-path-0.2.0.0 (locallycompact) |
2020-11-30 13:33:40 +0100 | drbean | (~drbean@TC210-63-209-23.static.apol.com.tw) |
2020-11-30 13:35:39 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-30 13:37:36 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Client Quit) |
2020-11-30 13:37:54 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-30 13:39:51 +0100 | hackage | aeson-injector 1.1.5.0 - Injecting fields into aeson values https://hackage.haskell.org/package/aeson-injector-1.1.5.0 (NCrashed) |
2020-11-30 13:45:27 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-30 13:47:33 +0100 | joaj | (~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) |
2020-11-30 13:48:12 +0100 | Kaivo | (~Kaivo@104-200-86-99.mc.derytele.com) (Quit: WeeChat 2.9) |
2020-11-30 13:48:26 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-30 13:49:41 +0100 | christo | (~chris@81.96.113.213) |
2020-11-30 13:51:09 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-30 13:51:10 +0100 | sondr3 | (~sondr3@cm-84.211.56.132.getinternet.no) |
2020-11-30 13:51:32 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-30 13:53:19 +0100 | Spiff | (~quassel@102.160.27.107) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2020-11-30 13:53:40 +0100 | <sondr3> | How are people structuring their AoC projects for Haskell? I did it last year with a separate binary for each day but didn't really enjoy how I structured it |
2020-11-30 13:53:54 +0100 | st8less | (~st8less@2603:a060:11fd:0:e426:c042:f13e:e237) |
2020-11-30 13:54:06 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 13:54:35 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 13:54:38 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 13:55:05 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 13:55:17 +0100 | geekosaur | (ac3a5371@172.58.83.113) |
2020-11-30 13:55:39 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 13:56:39 +0100 | <tomsmeding> | haskell files and a Makefile :p https://git.tomsmeding.com/AOC/tree/2019 |
2020-11-30 13:56:50 +0100 | <tomsmeding> | less cruft more better |
2020-11-30 13:57:13 +0100 | drbean | (~drbean@TC210-63-209-23.static.apol.com.tw) (Ping timeout: 264 seconds) |
2020-11-30 13:58:08 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
2020-11-30 13:58:23 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-11-30 14:00:22 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-30 14:00:45 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-30 14:03:09 +0100 | chaosmasttter | (~chaosmast@p200300c4a708ba01009b72ed500751f5.dip0.t-ipconnect.de) |
2020-11-30 14:08:10 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2020-11-30 14:09:07 +0100 | <sondr3> | Very KISS, I like it |
2020-11-30 14:09:24 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2020-11-30 14:09:55 +0100 | plutoniix | (~q@node-ulb.pool-125-24.dynamic.totinternet.net) |
2020-11-30 14:11:27 +0100 | ubert | (~Thunderbi@p200300ecdf1e53b5e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-30 14:12:25 +0100 | <tomsmeding> | (In the unlikely case that I find myself wanting to use a library not in the core GHC package, I'll use cabal :) ) |
2020-11-30 14:13:20 +0100 | tomsmeding | guesses that 'random' is the most likely candidate for such a library |
2020-11-30 14:17:34 +0100 | tomsmeding | will be finishing his thesis in december so won't have much time for AoC anyway :( |
2020-11-30 14:17:40 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) |
2020-11-30 14:18:08 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-30 14:18:35 +0100 | alp_ | (~alp@2a01:e0a:58b:4920:ecc4:686d:466:ba88) |
2020-11-30 14:21:23 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:a1be:e7f3:3c29:a2e3) |
2020-11-30 14:23:31 +0100 | <__monty__> | Heh, most exiting thing about my AoC setup is I might go with Megaparsec rather than ReadP this year >.< |
2020-11-30 14:25:09 +0100 | <solonarv> | I'll probably just steal jle's framework this year :p |
2020-11-30 14:25:23 +0100 | <xerox_> | I do a simple cabal project with a library and many executables |
2020-11-30 14:29:56 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-11-30 14:33:09 +0100 | lpy | (~nyd@unaffiliated/elysian) (Quit: lpy) |
2020-11-30 14:34:25 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-30 14:38:05 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-30 14:40:14 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 14:40:40 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 14:40:53 +0100 | <merijn> | I'll do the same as last year, finish 5 days of puzzles and then get to busy with work :p |
2020-11-30 14:40:53 +0100 | poljar1 | (~poljar@93-141-151-125.adsl.net.t-com.hr) |
2020-11-30 14:41:55 +0100 | whatisRT | (~whatisRT@2002:5b41:6a33:0:a1be:e7f3:3c29:a2e3) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-11-30 14:43:28 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-30 14:43:33 +0100 | poljar | (~poljar@93-141-140-79.adsl.net.t-com.hr) (Ping timeout: 260 seconds) |
2020-11-30 14:44:58 +0100 | <sondr3> | First year where all my exams are done before AoC, |
2020-11-30 14:45:22 +0100 | <sondr3> | so I'll probably give up when I start spending many hours on each problem * |
2020-11-30 14:46:22 +0100 | jmchael | (~Chi1thang@87.112.60.168) |
2020-11-30 14:47:02 +0100 | elfets_ | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-30 14:48:41 +0100 | christo | (~chris@81.96.113.213) |
2020-11-30 14:48:56 +0100 | poljar1 | (~poljar@93-141-151-125.adsl.net.t-com.hr) (Ping timeout: 240 seconds) |
2020-11-30 14:49:43 +0100 | poljar1 | (~poljar@93-139-28-121.adsl.net.t-com.hr) |
2020-11-30 14:50:33 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds) |
2020-11-30 14:50:41 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) |
2020-11-30 14:51:32 +0100 | elfets_ | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds) |
2020-11-30 14:52:55 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 246 seconds) |
2020-11-30 14:54:24 +0100 | Kaivo | (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) |
2020-11-30 14:56:08 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 14:56:24 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 14:56:37 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 14:56:51 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 14:58:01 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2020-11-30 15:01:39 +0100 | tlaxkit | (~kvirc@185.228.155.198) |
2020-11-30 15:03:02 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-30 15:03:18 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-11-30 15:03:46 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2020-11-30 15:05:16 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2020-11-30 15:06:21 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-30 15:08:03 +0100 | Maxdamantus | (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 260 seconds) |
2020-11-30 15:09:29 +0100 | Maxdamantus | (~Maxdamant@unaffiliated/maxdamantus) |
2020-11-30 15:09:57 +0100 | alp_ | (~alp@2a01:e0a:58b:4920:ecc4:686d:466:ba88) (Remote host closed the connection) |
2020-11-30 15:10:17 +0100 | alp_ | (~alp@2a01:e0a:58b:4920:dd21:7e7c:f9d:f4af) |
2020-11-30 15:10:58 +0100 | Rudd0^ | (~Rudd0@185.189.115.108) (Ping timeout: 260 seconds) |
2020-11-30 15:11:24 +0100 | cosimone | (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
2020-11-30 15:11:51 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-30 15:12:07 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-wpncqurqfmhlmlcw) |
2020-11-30 15:13:26 +0100 | <__monty__> | merijn: Similar, though I try to beat more days each year. |
2020-11-30 15:13:58 +0100 | <__monty__> | sondr3: That'd mean I have to stop on day 1 -_- |
2020-11-30 15:14:23 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) |
2020-11-30 15:14:52 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2020-11-30 15:17:52 +0100 | <merijn> | __monty__: I had to focus on getting a paper done last year, this year I still have 2 chapters of thesis rewriting that conflicts with useful things, like AoC :p |
2020-11-30 15:18:33 +0100 | carlomagno | (~cararell@148.87.23.4) (Ping timeout: 260 seconds) |
2020-11-30 15:20:34 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 246 seconds) |
2020-11-30 15:20:54 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-11-30 15:21:15 +0100 | elliott_ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-11-30 15:21:24 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo) |
2020-11-30 15:21:37 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) |
2020-11-30 15:22:11 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
2020-11-30 15:25:55 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit) |
2020-11-30 15:26:11 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) |
2020-11-30 15:26:23 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
2020-11-30 15:31:00 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) () |
2020-11-30 15:36:55 +0100 | texasmynsted | (~texasmyns@212.102.45.115) |
2020-11-30 15:38:23 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 15:42:13 +0100 | Iceland_jack | (~user@31.124.48.169) |
2020-11-30 15:42:49 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-11-30 15:44:10 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) |
2020-11-30 15:45:36 +0100 | gproto023 | (~gproto23@unaffiliated/gproto23) (Client Quit) |
2020-11-30 15:46:16 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds) |
2020-11-30 15:46:51 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 15:47:05 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 15:47:05 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 15:47:13 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 256 seconds) |
2020-11-30 15:47:20 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 15:48:29 +0100 | jespada | (~jespada@90.254.245.49) |
2020-11-30 15:51:21 +0100 | hackage | jvm-batching 0.2.0 - Provides batched marshalling of values between Java and Haskell. https://hackage.haskell.org/package/jvm-batching-0.2.0 (FacundoDominguez) |
2020-11-30 15:51:48 +0100 | elliott_ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 260 seconds) |
2020-11-30 15:52:00 +0100 | geekosaur | (ac3a5371@172.58.83.113) (Remote host closed the connection) |
2020-11-30 15:54:17 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-11-30 15:56:35 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) (Remote host closed the connection) |
2020-11-30 15:57:14 +0100 | Lord_of_Life_ | Lord_of_Life |
2020-11-30 15:57:28 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 15:57:55 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 16:00:17 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 16:02:02 +0100 | carlomagno | (~cararell@148.87.23.9) |
2020-11-30 16:02:12 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 272 seconds) |
2020-11-30 16:02:41 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 16:03:05 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-30 16:05:26 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Quit: leaving) |
2020-11-30 16:05:50 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-30 16:06:11 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-30 16:06:18 +0100 | larou | (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
2020-11-30 16:06:35 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-30 16:07:30 +0100 | elliott_ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-11-30 16:12:57 +0100 | kritzefitz_ | (~kritzefit@212.86.56.80) |
2020-11-30 16:14:46 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus) |
2020-11-30 16:15:32 +0100 | jollygood2 | (~bc8165ab@217.29.117.252) |
2020-11-30 16:15:33 +0100 | timCF | (511495c8@200-149-20-81.sta.estpak.ee) |
2020-11-30 16:16:25 +0100 | <timCF> | Hello guys! Any DHall users there? How do I create `newtype` in DHall? And how to derive `Show` instance for custom types like enums? |
2020-11-30 16:17:30 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-30 16:18:28 +0100 | <timCF> | Because without `newtype` signatures of functions and types are looking kinda disappointing, everything is like `Text -> Text -> Text -> Text` |
2020-11-30 16:19:12 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds) |
2020-11-30 16:20:40 +0100 | sakirious9 | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
2020-11-30 16:21:53 +0100 | sakirious9 | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2020-11-30 16:22:08 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) |
2020-11-30 16:23:21 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2020-11-30 16:23:37 +0100 | urek | (~urek@2804:7f1:e10a:c641:3505:b16d:6812:3a9b) (Ping timeout: 272 seconds) |
2020-11-30 16:25:00 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
2020-11-30 16:26:02 +0100 | urek | (~urek@2804:7f1:e10a:9644:9d63:7ade:a7c0:a0df) |
2020-11-30 16:28:24 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:690b:f4aa:bb1f:cfec) |
2020-11-30 16:28:41 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-tesxvyxpigmxrfxg) (Quit: Connection closed for inactivity) |
2020-11-30 16:29:02 +0100 | urek__ | (~urek@2804:7f1:e10a:9644:4d2e:7df3:daef:71d) |
2020-11-30 16:31:13 +0100 | urek | (~urek@2804:7f1:e10a:9644:9d63:7ade:a7c0:a0df) (Ping timeout: 272 seconds) |
2020-11-30 16:31:53 +0100 | sakirious9 | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
2020-11-30 16:32:13 +0100 | sakirious9 | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2020-11-30 16:32:13 +0100 | sakirious9 | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Client Quit) |
2020-11-30 16:32:38 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2020-11-30 16:34:59 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-dgdxieqqfmttuoeu) |
2020-11-30 16:36:09 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2020-11-30 16:38:59 +0100 | <kupi> | how to ignore a specific rule in a specific function with hlint? |
2020-11-30 16:39:17 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 16:39:28 +0100 | <kupi> | i think redundant lambda can improve readibility if there are many parameters and the result is intended as a function |
2020-11-30 16:39:51 +0100 | <kupi> | equalP' f k = \w x y z -> f w x y z == k instead of equalP' f k w x y z = f w x y z == k |
2020-11-30 16:40:36 +0100 | elliott_ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-11-30 16:42:08 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) |
2020-11-30 16:42:08 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) (Client Quit) |
2020-11-30 16:42:10 +0100 | <kupi> | i know there is: {- HLINT ignore "Redundant lambda" -}, but this makes it to ignore for other functions |
2020-11-30 16:42:40 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) |
2020-11-30 16:43:33 +0100 | befuddled | (~befuddled@49.207.215.241) (Quit: Textual IRC Client: www.textualapp.com) |
2020-11-30 16:43:52 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
2020-11-30 16:44:22 +0100 | sh92 | (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
2020-11-30 16:45:06 +0100 | <merijn> | kupi: hlint is full of questionable recommendations |
2020-11-30 16:45:09 +0100 | urek__ | (~urek@2804:7f1:e10a:9644:4d2e:7df3:daef:71d) (Ping timeout: 272 seconds) |
2020-11-30 16:45:33 +0100 | urek | (~urek@191.35.6.56) |
2020-11-30 16:45:36 +0100 | <merijn> | It is a very opinionated tool, so if your opinions are different from Neil Mitchell, you'll have to customise it heavily |
2020-11-30 16:47:28 +0100 | wwwww | (~wwwww@unaffiliated/wwwww) (Ping timeout: 260 seconds) |
2020-11-30 16:47:46 +0100 | <__monty__> | timCF: Maybe try #dhall. |
2020-11-30 16:49:37 +0100 | wwwww | (~wwwww@unaffiliated/wwwww) |
2020-11-30 16:50:16 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2020-11-30 16:51:32 +0100 | adm_ | (~adm@117.208.21.247) (Remote host closed the connection) |
2020-11-30 16:52:09 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-iqmdrqkssdvbgacz) |
2020-11-30 16:52:15 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2020-11-30 16:55:03 +0100 | AndreasK | (uid320732@gateway/web/irccloud.com/x-ylkxsbmenduzxmys) |
2020-11-30 16:55:08 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Ping timeout: 265 seconds) |
2020-11-30 16:58:00 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-30 16:58:47 +0100 | Deide | (~Deide@217.155.19.23) |
2020-11-30 16:58:58 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 16:59:16 +0100 | _Adluc_ | (~Adluc@2a01:430:17:1::ffff:328) |
2020-11-30 16:59:30 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-30 16:59:43 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:eb49:48c8:385b:8ae3) (Ping timeout: 272 seconds) |
2020-11-30 17:00:05 +0100 | Ranhir | (~Ranhir@157.97.53.139) |
2020-11-30 17:00:26 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2020-11-30 17:03:21 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 17:07:44 +0100 | hexo- | (~hexo@83.167.228.130) |
2020-11-30 17:08:06 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 17:08:21 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 17:08:34 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 17:08:50 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 17:09:06 +0100 | Ha | (5fa448e7@95.164.72.231) |
2020-11-30 17:11:59 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:8dad:fdd3:20dd:4129) |
2020-11-30 17:14:25 +0100 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
2020-11-30 17:15:46 +0100 | macrover | (~macrover@ip68-108-126-211.lv.lv.cox.net) |
2020-11-30 17:15:47 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2020-11-30 17:16:40 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2020-11-30 17:19:14 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 17:20:06 +0100 | Digit | (~user@fsf/member/digit) (Remote host closed the connection) |
2020-11-30 17:20:58 +0100 | hexic | (hexo@base48.cz) (Quit: ZNC - http://znc.in) |
2020-11-30 17:20:58 +0100 | Adluc | (Adluc@base48.cz) (Quit: ZNC - http://znc.in) |
2020-11-30 17:21:22 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Ping timeout: 272 seconds) |
2020-11-30 17:21:46 +0100 | fragamus | (~fragamus@108-77-140-126.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 17:22:21 +0100 | eedgit | (~eedgit@95.179.237.21) (Remote host closed the connection) |
2020-11-30 17:22:21 +0100 | eedgit26 | (~chat.free@95.179.237.21) (Remote host closed the connection) |
2020-11-30 17:22:42 +0100 | eedgit26 | (~chat.free@95.179.237.21) |
2020-11-30 17:22:45 +0100 | eedgit | (~eedgit@95.179.237.21) |
2020-11-30 17:23:49 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-30 17:24:02 +0100 | knupfer | (~Thunderbi@200116b82c773700e0a648fffec65c4f.dip.versatel-1u1.de) |
2020-11-30 17:24:05 +0100 | Ranhir | (~Ranhir@157.97.53.139) |
2020-11-30 17:24:06 +0100 | knupfer | (~Thunderbi@200116b82c773700e0a648fffec65c4f.dip.versatel-1u1.de) (Client Quit) |
2020-11-30 17:24:18 +0100 | knupfer | (~Thunderbi@200116b82c77370051b244619a509919.dip.versatel-1u1.de) |
2020-11-30 17:25:56 +0100 | fragamus | (~fragamus@108-77-140-126.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-11-30 17:27:58 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 17:29:29 +0100 | chaosmasttter | (~chaosmast@p200300c4a708ba01009b72ed500751f5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2020-11-30 17:30:18 +0100 | ahri | (~ahri@178.209.40.84) |
2020-11-30 17:30:23 +0100 | nados | (~dan@69-165-210-185.cable.teksavvy.com) |
2020-11-30 17:32:29 +0100 | theorbtwo | (~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) |
2020-11-30 17:32:34 +0100 | alp_ | (~alp@2a01:e0a:58b:4920:dd21:7e7c:f9d:f4af) (Remote host closed the connection) |
2020-11-30 17:33:00 +0100 | alp_ | (~alp@2a01:e0a:58b:4920:1595:a7ed:600b:8cb2) |
2020-11-30 17:33:51 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 17:34:19 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-30 17:34:20 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 17:35:01 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-30 17:39:11 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 17:39:28 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 17:39:55 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 17:41:01 +0100 | kritzefitz_ | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2020-11-30 17:44:01 +0100 | kritzefitz_ | (~kritzefit@212.86.56.80) |
2020-11-30 17:44:04 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
2020-11-30 17:45:50 +0100 | kritzefitz_ | (~kritzefit@212.86.56.80) (Client Quit) |
2020-11-30 17:45:54 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2020-11-30 17:46:26 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-30 17:47:25 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) |
2020-11-30 17:51:06 +0100 | fendor_ | (~fendor@178.165.130.113.wireless.dyn.drei.com) |
2020-11-30 17:52:52 +0100 | cosimone | (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone) |
2020-11-30 17:53:16 +0100 | fendor | (~fendor@91.141.2.60.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
2020-11-30 17:53:34 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) (Read error: No route to host) |
2020-11-30 17:53:43 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Ping timeout: 260 seconds) |
2020-11-30 17:54:04 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) |
2020-11-30 17:56:30 +0100 | fendor_ | fendor |
2020-11-30 17:56:55 +0100 | <maerwald> | merijn: you can't really customize it, can you? |
2020-11-30 17:57:17 +0100 | zfnmxt | (~zfnmxt@unaffiliated/zfnmxt) (Quit: Bye!) |
2020-11-30 17:57:32 +0100 | xff0x | (~fox@2001:1a81:5287:f00:70f2:294c:10e7:d278) (Ping timeout: 260 seconds) |
2020-11-30 17:57:54 +0100 | nehsou^ | (nehsou@ip98-184-89-2.mc.at.cox.net) |
2020-11-30 17:57:56 +0100 | xff0x | (~fox@2001:1a81:5287:f00:f14b:6dc5:5c2:61b2) |
2020-11-30 17:59:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-30 18:00:13 +0100 | zfnmxt | (~zfnmxt@unaffiliated/zfnmxt) |
2020-11-30 18:00:45 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
2020-11-30 18:03:06 +0100 | texasmyn_ | (~texasmyns@107.173.73.36) |
2020-11-30 18:04:48 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 18:04:58 +0100 | urodna | (~urodna@unaffiliated/urodna) (Read error: Connection reset by peer) |
2020-11-30 18:05:04 +0100 | hackplan1 | (~hackplan@2408:8221:4b10:da30:4410:1b15:c509:bf46) (Ping timeout: 240 seconds) |
2020-11-30 18:05:29 +0100 | Ha | (5fa448e7@95.164.72.231) (Ping timeout: 245 seconds) |
2020-11-30 18:05:32 +0100 | Ranhir | (~Ranhir@157.97.53.139) |
2020-11-30 18:05:48 +0100 | hackplan1 | (~hackplan@2408:8221:4b10:da30:4410:1b15:c509:bf46) |
2020-11-30 18:05:56 +0100 | texasmynsted | (~texasmyns@212.102.45.115) (Ping timeout: 240 seconds) |
2020-11-30 18:06:27 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 18:07:38 +0100 | Mathmoose | (~mathias@31-208-78-204.cust.bredband2.com) (Ping timeout: 265 seconds) |
2020-11-30 18:07:58 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 18:08:42 +0100 | texasmynsted | (~texasmyns@2600:6c40:700:4863:5a7:6392:cd4:cdad) |
2020-11-30 18:09:28 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 260 seconds) |
2020-11-30 18:11:21 +0100 | plutoniix | (~q@node-ulb.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
2020-11-30 18:12:00 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-11-30 18:12:23 +0100 | texasmyn_ | (~texasmyns@107.173.73.36) (Ping timeout: 260 seconds) |
2020-11-30 18:13:25 +0100 | Mathmoose | (~mathias@31-208-78-204.cust.bredband2.com) |
2020-11-30 18:14:20 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 256 seconds) |
2020-11-30 18:14:37 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
2020-11-30 18:14:39 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) |
2020-11-30 18:15:09 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-30 18:15:42 +0100 | chaosmasttter | (~chaosmast@p200300c4a708ba01009b72ed500751f5.dip0.t-ipconnect.de) |
2020-11-30 18:16:19 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds) |
2020-11-30 18:16:47 +0100 | <tomjaguarpaw> | You can customize it with a yaml file, can't you? https://neilmitchell.blogspot.com/2017/04/hlint-20-with-yaml-configuration.html |
2020-11-30 18:16:48 +0100 | JJ15_ | (~JJ@host81-133-209-64.in-addr.btopenworld.com) |
2020-11-30 18:17:47 +0100 | dhil | (~dhil@195.213.192.34) |
2020-11-30 18:18:20 +0100 | kritzefitz_ | (~kritzefit@212.86.56.80) |
2020-11-30 18:18:45 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Ping timeout: 265 seconds) |
2020-11-30 18:19:23 +0100 | pjb | (~t@2a01cb04063ec500c51bcad49f8457d6.ipv6.abo.wanadoo.fr) |
2020-11-30 18:19:25 +0100 | kritzefitz_ | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2020-11-30 18:20:09 +0100 | JJ15__ | (~JJ@2a00:23a8:4382:a900:c581:e386:e820:2657) (Ping timeout: 272 seconds) |
2020-11-30 18:22:27 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) |
2020-11-30 18:22:32 +0100 | kritzefitz_ | (~kritzefit@212.86.56.80) |
2020-11-30 18:25:30 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 18:25:37 +0100 | thebnq | (~bnq@herrokitty.com) (Read error: Connection reset by peer) |
2020-11-30 18:27:07 +0100 | kuribas | (~user@ptr-25vy0i92djchka8xsjs.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds) |
2020-11-30 18:27:25 +0100 | <kupi> | i did |
2020-11-30 18:27:25 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-30 18:27:26 +0100 | <kupi> | - ignore: {name: Redundant lambda} |
2020-11-30 18:27:46 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 18:27:52 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 18:27:57 +0100 | carlomagno | (~cararell@148.87.23.9) (Quit: Leaving.) |
2020-11-30 18:27:59 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 18:28:17 +0100 | texasmynsted | (~texasmyns@2600:6c40:700:4863:5a7:6392:cd4:cdad) (Read error: Connection reset by peer) |
2020-11-30 18:28:34 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 18:29:03 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
2020-11-30 18:29:19 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 18:29:27 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-30 18:30:07 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 18:30:36 +0100 | jmchael | (~Chi1thang@87.112.60.168) (Ping timeout: 260 seconds) |
2020-11-30 18:30:36 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 18:30:40 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) |
2020-11-30 18:30:59 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds) |
2020-11-30 18:31:38 +0100 | plutoniix | (~q@node-ulb.pool-125-24.dynamic.totinternet.net) |
2020-11-30 18:31:59 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-kscbyfmbzjjwdrpq) |
2020-11-30 18:32:11 +0100 | plutoniix | (~q@node-ulb.pool-125-24.dynamic.totinternet.net) (Max SendQ exceeded) |
2020-11-30 18:32:38 +0100 | plutoniix | (~q@node-ulb.pool-125-24.dynamic.totinternet.net) |
2020-11-30 18:33:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-30 18:33:56 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-30 18:35:18 +0100 | plutoniix | (~q@node-ulb.pool-125-24.dynamic.totinternet.net) (Max SendQ exceeded) |
2020-11-30 18:35:46 +0100 | LKoen | (~LKoen@105.175.9.109.rev.sfr.net) |
2020-11-30 18:35:50 +0100 | plutoniix | (~q@node-ulb.pool-125-24.dynamic.totinternet.net) |
2020-11-30 18:36:25 +0100 | toorevitimirp | (~tooreviti@117.182.183.16) (Remote host closed the connection) |
2020-11-30 18:38:39 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2020-11-30 18:39:54 +0100 | <ezzieyguywuf> | glguy: with config-schema, let's say I want tho config file to require one or more top-level sections, each with the same specification. In other words, to use the example from the documentation, let's say that "name", "age" etc were all underneath a section "Person1", and I wanted to allow an arbitrary number of persons, "Person2", "Person3", etc... would the only way to accomplish this be to |
2020-11-30 18:40:00 +0100 | <ezzieyguywuf> | create a list at the top-level? |
2020-11-30 18:40:36 +0100 | <glguy> | Yeah, you could have a top-level list |
2020-11-30 18:41:12 +0100 | <ezzieyguywuf> | glguy: https://dpaste.com/FF6PKHXHJ |
2020-11-30 18:41:37 +0100 | <ezzieyguywuf> | glguy: so would doing something as I've posted here be impossible? i.e. without using a list, let the user specify an arbitrary number of PersonN? |
2020-11-30 18:42:04 +0100 | hodapp | (~hodapp@react-ams-119225.antiddos.solutions) (Quit: WeeChat 1.9.1) |
2020-11-30 18:42:22 +0100 | hodapp | (~hodapp@react-ams-119225.antiddos.solutions) |
2020-11-30 18:43:33 +0100 | <ezzieyguywuf> | I think it'd have to look like this https://dpaste.com/E2JT7RLMW or this https://dpaste.com/E2JT7RLMW |
2020-11-30 18:43:37 +0100 | <ezzieyguywuf> | unless I'm missing something |
2020-11-30 18:43:41 +0100 | <glguy> | I'll look now |
2020-11-30 18:43:48 +0100 | Sonolin | (~Sonolin@184.103.179.49) |
2020-11-30 18:44:32 +0100 | <Sonolin> | I just realized BSD-3 requires me to include the license of the dependency when I distribute in binary form... is there an easy way to get all these licenses via stack? Or at least a way to just retrieve all the dependencies' source code? |
2020-11-30 18:44:32 +0100 | <glguy> | ezzieyguywuf, I think you want this: https://hackage.haskell.org/package/config-schema-1.2.1.0/docs/Config-Schema-Spec.html#v:assocSpec |
2020-11-30 18:44:44 +0100 | <glguy> | >> Specification for a section list where the keys are user-defined. Values are matched against the underlying specification and returned as a list of section-name/value pairs. |
2020-11-30 18:44:51 +0100 | chaosmasttter | (~chaosmast@p200300c4a708ba01009b72ed500751f5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2020-11-30 18:44:59 +0100 | kritzefitz_ | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2020-11-30 18:45:45 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-11-30 18:45:52 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 18:46:05 +0100 | <ezzieyguywuf> | glguy: 👍️ I think you're right! thanks again for your prompt response and your help. |
2020-11-30 18:46:23 +0100 | <glguy> | ezzieyguywuf, Do you have a usecase in mind, or are you in the learning phase first? |
2020-11-30 18:46:31 +0100 | <ezzieyguywuf> | glguy: I have a use-case |
2020-11-30 18:46:47 +0100 | <ezzieyguywuf> | glguy: I could post an example of what I'm after if you'd like |
2020-11-30 18:46:56 +0100 | <glguy> | sure |
2020-11-30 18:47:44 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 18:48:30 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-11-30 18:49:47 +0100 | Iceland_jack | (~user@31.124.48.169) (Read error: Connection reset by peer) |
2020-11-30 18:49:47 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-30 18:49:56 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 240 seconds) |
2020-11-30 18:50:03 +0100 | Iceland_jack | (~user@31.124.48.169) |
2020-11-30 18:50:17 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 18:50:22 +0100 | christo | (~chris@81.96.113.213) |
2020-11-30 18:51:56 +0100 | <ezzieyguywuf> | glguy: I think something like this https://dpaste.com/C7QAL6VTG |
2020-11-30 18:52:45 +0100 | <__monty__> | timCF: You can define values of type Type, which is what you'd want to do I think, e.g., https://github.com/dhall-lang/dhall-lang/blob/v19.0.0/Prelude/XML/Type.dhall |
2020-11-30 18:53:27 +0100 | cosimone | (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
2020-11-30 18:53:28 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Ping timeout: 260 seconds) |
2020-11-30 18:53:52 +0100 | <__monty__> | timCF: There's no way I know of to derive implementations of functions in dhall. |
2020-11-30 18:54:29 +0100 | <glguy> | ezzieyguywuf: one note, unquoted "atoms" and quoted "strings" are intended to be distinct |
2020-11-30 18:54:57 +0100 | <glguy> | ezzieyguywuf: Are you using this with hledger, perhaps? |
2020-11-30 18:55:23 +0100 | <ezzieyguywuf> | glguy: yes, with hledger. and I'm aware of the atom vs. string distinction, but I didn't think I could use a string as a section name |
2020-11-30 18:55:34 +0100 | <glguy> | I was looking at the MatchStrings |
2020-11-30 18:55:47 +0100 | <glguy> | like line 16 would be a problem |
2020-11-30 18:55:48 +0100 | <ezzieyguywuf> | glguy: ah, yes those should be quoted |
2020-11-30 18:56:05 +0100 | ryantrinkle | (~ryan@cpe-68-173-35-198.nyc.res.rr.com) (Remote host closed the connection) |
2020-11-30 18:56:05 +0100 | <ezzieyguywuf> | MatchStrings should be a list of strings, no atoms |
2020-11-30 18:56:28 +0100 | <ezzieyguywuf> | line 3 would be a problem, due to the apostrophe, no? |
2020-11-30 18:56:50 +0100 | <glguy> | Yeah, there were multiple problems, I was just trying to be specific |
2020-11-30 18:57:21 +0100 | <glguy> | You could definitely express that fragment in config-schema, though |
2020-11-30 18:58:47 +0100 | hackplan1 | (~hackplan@2408:8221:4b10:da30:4410:1b15:c509:bf46) (Ping timeout: 272 seconds) |
2020-11-30 18:59:08 +0100 | <ezzieyguywuf> | glguy: right. (fixed the errors btw https://dpaste.com/CRFUTYMZE). so assocSpec here would return [("walgreens", MyReturnData), ("sheetz", MyReturnData), ("amazon", MyReturnData)] |
2020-11-30 18:59:22 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-30 18:59:24 +0100 | <ezzieyguywuf> | right? |
2020-11-30 18:59:38 +0100 | <glguy> | Yeah |
2020-11-30 19:00:02 +0100 | <glguy> | and then if you wanted to do the "automatically added" part you'd (fmap autoadd) over that list to fold in the name |
2020-11-30 19:00:05 +0100 | chalkmonster | (~chalkmons@unaffiliated/chalkmonster) |
2020-11-30 19:00:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-11-30 19:00:49 +0100 | <ezzieyguywuf> | right. well, I'm storing it as a Data.List.NonEmpty, so I take the name as the starting point then concat the (possibly empty) list from MatchStrings |
2020-11-30 19:02:25 +0100 | <ezzieyguywuf> | glguy: what's the difference between, say, optSection and optSection'? I see that one has a "HasSpec" requirement on 'a', but I don't really understand the distinction. |
2020-11-30 19:02:59 +0100 | <glguy> | One uses the element type to pick the schema and the other takes a manually specified one |
2020-11-30 19:04:20 +0100 | <ezzieyguywuf> | glguy: so `name <- reqSection "name" "Full name"` I gues (a) the type of `name` is inferredd to be Text, and (b) Text has a HasSpec instance? |
2020-11-30 19:04:32 +0100 | <glguy> | yeah |
2020-11-30 19:04:45 +0100 | <ezzieyguywuf> | gotcha. |
2020-11-30 19:06:03 +0100 | <glguy> | fmap (\(n,(x,y,z,w)) -> (n NonEmpty.:| x, y, z, w)) <$> assocSpec (sectionsSpec "entry" ((,,,) <$> (fromMaybe [] <$> optSection "MatchStrings" "doc") <*> reqSection "MuxedDescription" "doc" <*> reqSection "DebitAccount" "doc" <*> reqSection "CreditAccount" "doc")) :: ValueSpec [(NonEmpty Text, Text, Text, Text)] |
2020-11-30 19:06:32 +0100 | <glguy> | You'd want to use a record, maybe some ApplicativeDo, real names, etc. |
2020-11-30 19:06:54 +0100 | <glguy> | but that would match the example you pasted |
2020-11-30 19:07:10 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-30 19:07:13 +0100 | <maerwald> | Sono |
2020-11-30 19:07:23 +0100 | <maerwald> | Sonolin: cabal-plan license-report |
2020-11-30 19:07:43 +0100 | <Sonolin> | maerwald thanks! |
2020-11-30 19:07:52 +0100 | <ezzieyguywuf> | glguy: neat thank you! |
2020-11-30 19:07:55 +0100 | <Sonolin> | I don't seem to have cabal installed, can I execute that through stack? |
2020-11-30 19:08:10 +0100 | <maerwald> | probably not |
2020-11-30 19:08:20 +0100 | <ezzieyguywuf> | stack install caball? |
2020-11-30 19:08:24 +0100 | <ezzieyguywuf> | though that's probably a bad idea.. |
2020-11-30 19:08:32 +0100 | <maerwald> | I'm suspecting cabal-plan needs the plan.json, which only cabal generates |
2020-11-30 19:08:38 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-30 19:09:41 +0100 | <Sonolin> | hmm ok... I mean I'm pretty sure stack uses cabal somehow under the hood, but I'll look into it thanks for the help |
2020-11-30 19:09:59 +0100 | <geekosaur> | it doesn't in general |
2020-11-30 19:10:07 +0100 | <geekosaur> | it's an alternative to cabal |
2020-11-30 19:10:48 +0100 | <Sonolin> | ah ok |
2020-11-30 19:10:57 +0100 | <Sonolin> | looks like cabal-plan is on stackage I'll try installing that I guess |
2020-11-30 19:14:44 +0100 | <sm[m]> | Sonolin: you can of course stack install cabal-install. But usually it's quicker to find a binary package |
2020-11-30 19:16:02 +0100 | <maerwald> | don't use stack to install cabal, because you don't know whether you will get an up2date version |
2020-11-30 19:16:30 +0100 | <sm[m]> | sigh maerwald you are here to test me :) |
2020-11-30 19:16:36 +0100 | <maerwald> | :D |
2020-11-30 19:16:44 +0100 | texasmynsted | (~texasmyns@212.102.45.112) |
2020-11-30 19:16:45 +0100 | <maerwald> | running property tests over you |
2020-11-30 19:17:51 +0100 | <sm[m]> | as with cabal, stack has rules for picking which version to install by default so to be sure of getting the latest you should specify that version |
2020-11-30 19:19:15 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 19:19:41 +0100 | alp_ | (~alp@2a01:e0a:58b:4920:1595:a7ed:600b:8cb2) (Ping timeout: 272 seconds) |
2020-11-30 19:19:55 +0100 | adm_ | (~adm@117.208.21.247) (Remote host closed the connection) |
2020-11-30 19:19:56 +0100 | <sm[m]> | neither tool has a "get me the latest" flag alas |
2020-11-30 19:20:08 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-30 19:20:21 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 19:20:38 +0100 | c0c0 | (~coco@212-51-146-87.fiber7.init7.net) (Quit: WeeChat 2.9) |
2020-11-30 19:20:44 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 19:20:50 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 19:21:09 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 19:21:19 +0100 | <monochrom> | In the case of cabal-install, that depends on exe vs lib |
2020-11-30 19:21:43 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-30 19:22:13 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 19:22:49 +0100 | <monochrom> | "cabal install <pkg>" (such that it installs the exes of pkg) gets you the latest by default, you have to saying something to override. |
2020-11-30 19:23:29 +0100 | <monochrom> | "cabal install --lib <pkg>" (such that it installs the library of pkg) tends to prefer an installed version and report "up to date". |
2020-11-30 19:23:32 +0100 | knupfer | (~Thunderbi@200116b82c77370051b244619a509919.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2020-11-30 19:24:36 +0100 | adm_ | (~adm@117.208.21.247) (Ping timeout: 256 seconds) |
2020-11-30 19:25:37 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 19:25:48 +0100 | adm_ | (~adm@117.208.21.247) (Remote host closed the connection) |
2020-11-30 19:26:45 +0100 | adm_ | (~adm@117.208.21.247) |
2020-11-30 19:26:59 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-30 19:27:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 19:28:18 +0100 | ubert | (~Thunderbi@p200300ecdf1e5347e6b318fffe838f33.dip0.t-ipconnect.de) |
2020-11-30 19:28:33 +0100 | <sm[m]> | monochrom: only if you do cabal update first |
2020-11-30 19:28:43 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 246 seconds) |
2020-11-30 19:28:56 +0100 | jchia__ | (~jchia@58.32.37.146) (Quit: Leaving.) |
2020-11-30 19:29:15 +0100 | <sm[m]> | otherwise you can't be sure. Maybe later cabal has changed, I'm speaking of commonly installed versions |
2020-11-30 19:29:17 +0100 | jchia__ | (~jchia@45.63.70.29) |
2020-11-30 19:30:19 +0100 | jchia__ | (~jchia@45.63.70.29) (Remote host closed the connection) |
2020-11-30 19:30:32 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 19:30:57 +0100 | jchia__ | (~jchia@45.63.70.29) |
2020-11-30 19:30:59 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-30 19:31:03 +0100 | urek | (~urek@191.35.6.56) (Ping timeout: 256 seconds) |
2020-11-30 19:31:25 +0100 | adm_ | (~adm@117.208.21.247) (Ping timeout: 264 seconds) |
2020-11-30 19:32:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-30 19:33:09 +0100 | urek | (~urek@177.205.229.26.dynamic.adsl.gvt.net.br) |
2020-11-30 19:34:34 +0100 | urek | (~urek@177.205.229.26.dynamic.adsl.gvt.net.br) (Remote host closed the connection) |
2020-11-30 19:34:56 +0100 | urek | (~urek@2804:7f1:e10a:9644:5510:fc77:d55c:caa7) |
2020-11-30 19:35:56 +0100 | jchia__ | (~jchia@45.63.70.29) (Remote host closed the connection) |
2020-11-30 19:36:00 +0100 | JJ15 | (~JJ@host81-133-209-64.in-addr.btopenworld.com) |
2020-11-30 19:36:31 +0100 | jchia__ | (~jchia@45.63.70.29) |
2020-11-30 19:36:52 +0100 | JJ15__ | (~JJ@2a00:23a8:4382:a900:9d38:c583:9671:e1dd) |
2020-11-30 19:37:16 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-7d49-c4e2-4790-91c2.dynamic.v6.chello.sk) |
2020-11-30 19:37:51 +0100 | JJ15_ | (~JJ@host81-133-209-64.in-addr.btopenworld.com) (Ping timeout: 256 seconds) |
2020-11-30 19:38:31 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds) |
2020-11-30 19:39:26 +0100 | adm_ | (~adm@117.208.23.253) |
2020-11-30 19:39:57 +0100 | urek | (~urek@2804:7f1:e10a:9644:5510:fc77:d55c:caa7) (Ping timeout: 272 seconds) |
2020-11-30 19:40:36 +0100 | JJ15 | (~JJ@host81-133-209-64.in-addr.btopenworld.com) (Ping timeout: 260 seconds) |
2020-11-30 19:40:39 +0100 | urek | (~urek@179.176.47.245.dynamic.adsl.gvt.net.br) |
2020-11-30 19:41:00 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-11-30 19:42:04 +0100 | jchia__ | (~jchia@45.63.70.29) (Remote host closed the connection) |
2020-11-30 19:42:23 +0100 | jchia__ | (~jchia@58.32.37.146) |
2020-11-30 19:44:28 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
2020-11-30 19:45:36 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) (Quit: avdb) |
2020-11-30 19:45:55 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) |
2020-11-30 19:46:14 +0100 | notzmv | (~user@unaffiliated/zmv) (Read error: Connection reset by peer) |
2020-11-30 19:46:17 +0100 | ubert | (~Thunderbi@p200300ecdf1e5347e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-30 19:46:30 +0100 | <avdb> | Is there a way I can use elem on two lists instead of recursing through the first list element by element? |
2020-11-30 19:46:41 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 19:46:52 +0100 | <koz_> | avdb: What do you mean? Do you want to do a list intersection or something? |
2020-11-30 19:46:56 +0100 | notzmv | (~user@unaffiliated/zmv) |
2020-11-30 19:47:15 +0100 | <monochrom> | Yeah it depends on what problem you are solving. |
2020-11-30 19:47:54 +0100 | <monochrom> | You should spell out your one single case rather than expecting a 2-hour lecture that covers all cases. |
2020-11-30 19:48:01 +0100 | <avdb> | koz_: I want to know if [1,2,3,4,5] contains any element of [1,2,3] for example, instead of doing `elem 1 [1,2,3] ...` for every single element. |
2020-11-30 19:50:27 +0100 | <monochrom> | That really requires a nested loop. Although you can use library functions so you don't have to handcode your own recursion tediously. |
2020-11-30 19:50:49 +0100 | <avdb> | I don't like the idea of library functions for small programs ... |
2020-11-30 19:51:05 +0100 | <monochrom> | Unless you further know that both lists are sorted under a known total order. |
2020-11-30 19:51:14 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 19:51:24 +0100 | <koz_> | avdb: You can use Sets. Take the set difference between (the Set based on) [1,2,3] and (the Set based on) [1,2,3,4,5,6]. Set diff is 'all elements in A that are not also in B'. If you get back the same as the first set, then there are none; otherwise, the one(s) you're missing are in there. |
2020-11-30 19:51:43 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 19:51:46 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-30 19:51:48 +0100 | <koz_> | avdb: Prelude is a library. containers comes with GHC itself (it's a boot library). |
2020-11-30 19:51:51 +0100 | <koz_> | I don't see the issue. |
2020-11-30 19:52:12 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 19:52:32 +0100 | <monochrom> | You like handcoding your own "mysum [] = 0; mysum (x:xs) = x + mysum xs" boilerplate instead of simply "foldr (+) 0" and be done with it? |
2020-11-30 19:52:40 +0100 | <avdb> | Alright, I wasted enough time on this problem already so let's stop being stubborn. |
2020-11-30 19:52:44 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds) |
2020-11-30 19:52:51 +0100 | <koz_> | monochrom: You mean foldl' (+) 0 right? |
2020-11-30 19:52:54 +0100 | <ezzieyguywuf> | glguy: in the example you provided, how come `optSection "MatchStrings" "doc"` doesn't need `listSpec` somewhere? |
2020-11-30 19:53:13 +0100 | <monochrom> | well let's say I really like the foldr version for some reason |
2020-11-30 19:53:23 +0100 | <glguy> | ezzieyguywuf: there's an instance HasSpec a => HasSpec [a] |
2020-11-30 19:53:28 +0100 | <glguy> | and instance HasSpec TExt |
2020-11-30 19:53:28 +0100 | <koz_> | monochrom: Sure. This is a demo of why libraries are usually the better call for common problems :P |
2020-11-30 19:53:54 +0100 | <monochrom> | any (`elem` [1,2,3]) [1,2,3,4,5] -- done |
2020-11-30 19:54:18 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 19:55:13 +0100 | <ezzieyguywuf> | glguy: ah, so the `ValueSpec [Text]` is deduced, i get it. if I wanted to write that one line in applicative-do with a type annotanio, it'd be `matches <- optSection "MatchString" "doc" :: Maybe [Text]`, right? |
2020-11-30 19:55:27 +0100 | <monochrom> | another way: not (null (intersect [1,2,3,4,5] [1,2,3])) |
2020-11-30 19:55:28 +0100 | <ezzieyguywuf> | or `Maybe [ValueSpec Text]`? |
2020-11-30 19:55:41 +0100 | <glguy> | ezzieyguywuf: ValueSpec (Maybe [Text]) |
2020-11-30 19:56:17 +0100 | <ezzieyguywuf> | hmmm, very nice. glguy thanks again. |
2020-11-30 19:56:28 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Ping timeout: 260 seconds) |
2020-11-30 19:58:03 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 20:01:16 +0100 | carlomagno | (~cararell@148.87.23.13) |
2020-11-30 20:02:01 +0100 | <avdb> | Jesus Christ. Even with external libraries this exercise is extremely difficult. I need to tell the difference between uppercase messages and lowercase messages. Sounds easy right? |
2020-11-30 20:02:27 +0100 | son0p | (~son0p@181.136.122.143) |
2020-11-30 20:02:31 +0100 | adm__ | (~adm@117.223.60.46) |
2020-11-30 20:02:41 +0100 | <avdb> | Problem is that "1,2,3" should return False while "1,2,3 GO!" should return True (since it doesn't contain lowercase characters). |
2020-11-30 20:02:53 +0100 | <avdb> | Can someone please help me? I already spent more than 5 hours on this problem. |
2020-11-30 20:03:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 20:03:16 +0100 | contiver | (~contiver@84-115-64-150.wifi.dynamic.surfer.at) |
2020-11-30 20:03:26 +0100 | <monochrom> | > any isUpper "1,2,3 GO!" |
2020-11-30 20:03:28 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2020-11-30 20:03:29 +0100 | <lambdabot> | True |
2020-11-30 20:03:37 +0100 | <monochrom> | isUpper is in Data.Char |
2020-11-30 20:03:44 +0100 | <avdb> | I know. |
2020-11-30 20:03:55 +0100 | <monochrom> | But even writing your own recursion takes only 1 minute. What 5 hours. |
2020-11-30 20:03:59 +0100 | <avdb> | Man I should've asked for help earlier but it feels like cheating. |
2020-11-30 20:04:06 +0100 | <ezzieyguywuf> | (it is cheating) |
2020-11-30 20:04:07 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
2020-11-30 20:04:08 +0100 | <avdb> | I didn't know about `any` |
2020-11-30 20:04:20 +0100 | <ezzieyguywuf> | well, asking for help isn't cheating |
2020-11-30 20:04:25 +0100 | <ezzieyguywuf> | asking for answers is cheating |
2020-11-30 20:04:43 +0100 | <avdb> | Not if you tried really hard I guess. |
2020-11-30 20:04:46 +0100 | <avdb> | monochrom: Thanks. |
2020-11-30 20:05:20 +0100 | adm_ | (~adm@117.208.23.253) (Ping timeout: 260 seconds) |
2020-11-30 20:05:22 +0100 | <monochrom> | Why I'm more successful than you is because I invested those 5 hours on reading Prelude and Data.List and Data.Char from cover to cover, instead of invested in false confidence in my own competence. |
2020-11-30 20:06:04 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Read error: Connection reset by peer) |
2020-11-30 20:06:05 +0100 | <glguy> | and then years of using it? |
2020-11-30 20:06:05 +0100 | <avdb> | Where can I learn more about STL functions? There's Hoogle but I find it very difficult to read. |
2020-11-30 20:06:32 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2020-11-30 20:06:43 +0100 | <monochrom> | Yes glguy, years of taking only 1 second to recall "that's just another foldr" |
2020-11-30 20:06:52 +0100 | <ezzieyguywuf> | oh nice, `concat (Maybe [a])` produces an empty list or a list, that's so handy! |
2020-11-30 20:07:02 +0100 | <glguy> | STL is a C++ library. I like using http://cppreference.com/ to read about it |
2020-11-30 20:07:04 +0100 | <monochrom> | GHC comes with complete documentation. |
2020-11-30 20:07:26 +0100 | <monochrom> | It is somewhere on your harddisk already, too. |
2020-11-30 20:07:33 +0100 | <avdb> | glguy: I meant standard library functions in Haskell like (++) and index for example. |
2020-11-30 20:07:50 +0100 | <monochrom> | People spent lifetimes searching hoogle and not even 1 minute searching their own hard disk |
2020-11-30 20:08:05 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 20:08:10 +0100 | <monochrom> | But I guess that's the definition of "I am too proud to be an introvert" |
2020-11-30 20:08:19 +0100 | <avdb> | monochrom: I know, I really do know. Where did you find it? |
2020-11-30 20:08:21 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Remote host closed the connection) |
2020-11-30 20:08:38 +0100 | urek__ | (~urek@191.34.57.159) |
2020-11-30 20:08:59 +0100 | <xerox_> | https://www.stackage.org/haddock/lts-16.23/base-4.13.0.0/Prelude.html |
2020-11-30 20:09:11 +0100 | <avdb> | You can stop making me out for stupid right there by the way, I already acknowledged my mistake. |
2020-11-30 20:09:12 +0100 | urek | (~urek@179.176.47.245.dynamic.adsl.gvt.net.br) (Ping timeout: 272 seconds) |
2020-11-30 20:10:43 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 20:11:06 +0100 | inja | (~inja@pd9f82e17.dip0.t-ipconnect.de) |
2020-11-30 20:11:10 +0100 | Iceland_jack | (~user@31.124.48.169) (Read error: Connection reset by peer) |
2020-11-30 20:11:27 +0100 | Iceland_jack | (~user@31.124.48.169) |
2020-11-30 20:13:21 +0100 | Ariakenom_ | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) |
2020-11-30 20:13:42 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit) |
2020-11-30 20:14:01 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds) |
2020-11-30 20:14:12 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 20:15:06 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 20:15:24 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2020-11-30 20:15:24 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
2020-11-30 20:15:24 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2020-11-30 20:15:38 +0100 | xff0x | (~fox@2001:1a81:5287:f00:f14b:6dc5:5c2:61b2) (Quit: xff0x) |
2020-11-30 20:15:50 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 20:15:50 +0100 | <maerwald> | monochrom: accessing my hard disk takes longer than a HTTP request :p |
2020-11-30 20:16:03 +0100 | Ariakenom | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
2020-11-30 20:16:25 +0100 | <avdb> | maerwald: You can find GHC's documentation in .ghcup/share/doc/ :) |
2020-11-30 20:16:38 +0100 | <avdb> | (If you didn't know already, trying to be helpful) |
2020-11-30 20:16:48 +0100 | <maerwald> | should probably try that :D |
2020-11-30 20:17:21 +0100 | <maerwald> | the vim hoogle plugin is also quite handy |
2020-11-30 20:17:32 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit) |
2020-11-30 20:17:39 +0100 | <maerwald> | so I use vim hoogle and codex (via hasktags) |
2020-11-30 20:17:54 +0100 | <maerwald> | both are limited, but they don't crash my PC like LSP |
2020-11-30 20:18:42 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2020-11-30 20:18:50 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-30 20:19:52 +0100 | christian_ | (~christian@2a02:810d:f40:2a9c:40b2:2308:84bd:8b9b) |
2020-11-30 20:20:28 +0100 | christian_ | (~christian@2a02:810d:f40:2a9c:40b2:2308:84bd:8b9b) (Client Quit) |
2020-11-30 20:20:44 +0100 | <frdg> | if I move my ~/.stack directory will my existing stack projects get confused? |
2020-11-30 20:20:47 +0100 | halbGefressen | (~halbGefre@2a02:810d:f40:2a9c:40b2:2308:84bd:8b9b) |
2020-11-30 20:21:01 +0100 | <Sonolin> | they will probably re-download all the dependencies and stuff |
2020-11-30 20:21:14 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) (Quit: Leaving) |
2020-11-30 20:21:20 +0100 | <Sonolin> | but you can always move it back |
2020-11-30 20:21:23 +0100 | <frdg> | ok that is fine |
2020-11-30 20:21:50 +0100 | carlomagno | (~cararell@148.87.23.13) (Ping timeout: 256 seconds) |
2020-11-30 20:23:10 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-30 20:23:13 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) |
2020-11-30 20:24:49 +0100 | urek__ | (~urek@191.34.57.159) (Ping timeout: 264 seconds) |
2020-11-30 20:24:54 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-30 20:25:00 +0100 | raichoo | (~raichoo@dslb-178-009-076-213.178.009.pools.vodafone-ip.de) (Quit: Lost terminal) |
2020-11-30 20:25:19 +0100 | urek | (~urek@191.250.144.166) |
2020-11-30 20:25:56 +0100 | <avdb> | monochrom: I finally realize that I could've used filter all along to filter symbols and numbers. Facepalm. |
2020-11-30 20:26:11 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-30 20:26:37 +0100 | carlomagno | (~cararell@148.87.23.13) |
2020-11-30 20:26:48 +0100 | <frdg> | Sonolin: you were correct that it is re-downloading all the stuff. My question now is what happened to the old downloaded stuff? |
2020-11-30 20:26:49 +0100 | bliminse | (~bliminse@host86-134-63-68.range86-134.btcentralplus.com) (Quit: leaving) |
2020-11-30 20:27:04 +0100 | <maerwald> | frdg: you moved it |
2020-11-30 20:27:08 +0100 | <Sonolin> | yea it goes in .stack |
2020-11-30 20:27:12 +0100 | <maerwald> | :D |
2020-11-30 20:28:02 +0100 | <frdg> | I dont see why if I only moved it, it has to redownload though. |
2020-11-30 20:28:20 +0100 | hexo- | (~hexo@83.167.228.130) (Quit: ZNC - http://znc.in) |
2020-11-30 20:28:20 +0100 | _Adluc_ | (~Adluc@2a01:430:17:1::ffff:328) (Quit: ZNC - http://znc.in) |
2020-11-30 20:28:43 +0100 | <geekosaur> | you mean, you moved it and then moved it back and it's still redownloading? |
2020-11-30 20:28:57 +0100 | <_deepfire> | So, I'm thinking of implementing reifyType :: Typeable a => Q Type myself, because apparently TH doesn't have anything that can be used to make it. |
2020-11-30 20:29:07 +0100 | <frdg> | and by redownload I mean I am trying to run the program and it is compiling everything again |
2020-11-30 20:29:57 +0100 | larou | (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
2020-11-30 20:30:18 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) |
2020-11-30 20:30:35 +0100 | xff0x | (~fox@2001:1a81:5287:f00:3ddc:a797:9dcd:8476) |
2020-11-30 20:31:35 +0100 | Adluc | (Adluc@base48.cz) |
2020-11-30 20:34:09 +0100 | <frdg> | oh wait a second I see what is going on now. It compiles into ~/.stack...this directory is not what I thought it was |
2020-11-30 20:34:14 +0100 | <Sonolin> | frdg ~/.stack contains the GHC snapshot & dependencies for stack projects... if you move that folder, then it will redownload everything to a new "~/.stack" folder |
2020-11-30 20:34:45 +0100 | cosimone | (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone) |
2020-11-30 20:34:52 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) (Ping timeout: 246 seconds) |
2020-11-30 20:35:52 +0100 | <ezzieyguywuf> | glguy: hah, it works! I took your example and prettified it a bit with applicative-do etc, to make it more legible. https://dpaste.com/6H9HE8UVM |
2020-11-30 20:36:13 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-30 20:36:20 +0100 | <ezzieyguywuf> | glguy: I can see now the appeal of the config-value and config-schema approach to configuration. very nice, very neat. |
2020-11-30 20:36:36 +0100 | Adluc | (Adluc@base48.cz) (Quit: ZNC - http://znc.in) |
2020-11-30 20:37:07 +0100 | Adluc | (Adluc@base48.cz) |
2020-11-30 20:37:09 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 20:37:16 +0100 | <avdb> | I finally fixed my problem but my codebase is a mess since I mixed up pattern matching with guards, how do I create a guard case for an empty list? |
2020-11-30 20:37:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2020-11-30 20:37:30 +0100 | <avdb> | `null (x:xs)` doesn't look good |
2020-11-30 20:37:35 +0100 | <avdb> | I doubt it even works lol |
2020-11-30 20:37:44 +0100 | <geekosaur> | that can't be null |
2020-11-30 20:37:46 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 20:37:52 +0100 | <frdg> | Sonolin: this is clear to me now thanks |
2020-11-30 20:37:59 +0100 | Adluc | (Adluc@base48.cz) (Client Quit) |
2020-11-30 20:38:03 +0100 | <avdb> | geekosaur: wdym? |
2020-11-30 20:38:03 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-30 20:38:04 +0100 | <monochrom> | Give null the actual list you care about? |
2020-11-30 20:38:29 +0100 | <geekosaur> | because you built a new list (x:xs) which by construction is not null |
2020-11-30 20:38:30 +0100 | Adluc | (Adluc@base48.cz) |
2020-11-30 20:38:32 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 20:38:38 +0100 | <ezzieyguywuf> | avdb: "my codebase is a mess since..." maybe clean up the code first? |
2020-11-30 20:38:41 +0100 | <avdb> | Oh. Thanks. |
2020-11-30 20:38:49 +0100 | <avdb> | ezzieyguywuf: That's what I'm asking help for ... |
2020-11-30 20:39:06 +0100 | Adluc | (Adluc@base48.cz) (Remote host closed the connection) |
2020-11-30 20:39:16 +0100 | <avdb> | I don't know how to fix most stuff since I only used what I know but I promise to read the documentation on my hard-drive after this! |
2020-11-30 20:39:18 +0100 | <geekosaur> | foo xs | null xs = ... | ... -- although I'd use patterns unless guards are needed (note also that you can combine them) |
2020-11-30 20:39:34 +0100 | <glguy> | ezzieyguywuf: yeah, I think that cleaned up nicely |
2020-11-30 20:39:50 +0100 | <avdb> | I will just go with lst instead of (x:xs) and replace xs with tail |
2020-11-30 20:39:58 +0100 | son0p | (~son0p@181.136.122.143) (Ping timeout: 256 seconds) |
2020-11-30 20:40:05 +0100 | <geekosaur> | foo [] = ...; foo (x:xs) | someConditionOn x = ... | otherwise = ... |
2020-11-30 20:40:17 +0100 | Adluc | (Adluc@base48.cz) |
2020-11-30 20:40:26 +0100 | JJ15__ | (~JJ@2a00:23a8:4382:a900:9d38:c583:9671:e1dd) (Read error: Connection reset by peer) |
2020-11-30 20:40:27 +0100 | _Adluc_ | (~Adluc@83.167.228.130) |
2020-11-30 20:40:47 +0100 | <ezzieyguywuf> | avdb: if you post your code perhaps we can provide some better tips |
2020-11-30 20:41:02 +0100 | <avdb> | geekosaur: What about where xs = tail lst? :) |
2020-11-30 20:41:03 +0100 | <hololeap> | avdb, null (x:xs) = False ; null [] = True |
2020-11-30 20:41:05 +0100 | JJ15__ | (~JJ@host81-133-209-64.in-addr.btopenworld.com) |
2020-11-30 20:41:08 +0100 | <avdb> | ezzieyguywuf: Second |
2020-11-30 20:41:12 +0100 | <hololeap> | that's all there is to know about `null` (on lists) |
2020-11-30 20:41:24 +0100 | <ezzieyguywuf> | hrm, I'm a bit skeptical of my use of PartialMatch, but it does get the job done... |
2020-11-30 20:41:32 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-30 20:41:38 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2020-11-30 20:41:42 +0100 | <glguy> | ezzieyguywuf: if you used (matchSpec = sectionsSpec "match") instead of an "" there, the output of (generateDocs descrMatchSpec) makes more sense |
2020-11-30 20:42:14 +0100 | <ezzieyguywuf> | glguy: I was just about to start messing with generateDocs, so I'll try it both ways to see the differenc |
2020-11-30 20:42:20 +0100 | <avdb> | http://codepad.org/yUeYsJQ4 |
2020-11-30 20:42:22 +0100 | <avdb> | Here you go! |
2020-11-30 20:43:01 +0100 | <ezzieyguywuf> | glguy: I must say, very nicely documented and organized code base, quite the pleasure to work with it. |
2020-11-30 20:43:40 +0100 | <glguy> | Thanks, I'll have that message for next time I'm feeling down :) |
2020-11-30 20:44:21 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) |
2020-11-30 20:44:25 +0100 | <ezzieyguywuf> | glguy: lol, no problem |
2020-11-30 20:45:01 +0100 | <ezzieyguywuf> | avdb: I think Data.List.Uncons may help clean that up a bit |
2020-11-30 20:45:02 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 20:45:09 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-30 20:45:34 +0100 | <ezzieyguywuf> | although I wonder whether you truly need to split the list into head and tail... |
2020-11-30 20:46:43 +0100 | <avdb> | ezzieyguywuf: I don't, the solutions about work as well :P |
2020-11-30 20:47:01 +0100 | <Sonolin> | avdb using pattern matching would clean that up |
2020-11-30 20:47:12 +0100 | <Sonolin> | upperString [] = False |
2020-11-30 20:47:17 +0100 | <Sonolin> | upperString (x:xs) = ... |
2020-11-30 20:47:23 +0100 | <hololeap> | avdb: `upperString` could be simplified in a number of different ways |
2020-11-30 20:47:40 +0100 | <ezzieyguywuf> | Sonolin: also ned upperString (x) =... |
2020-11-30 20:47:40 +0100 | <avdb> | Sonolin: Alright, Alright, I first need to make sure it passes `stack test` though |
2020-11-30 20:47:55 +0100 | <avdb> | ned? |
2020-11-30 20:48:03 +0100 | <ezzieyguywuf> | uhrm, upperstring [x] =... well, whatever it is for a singlton |
2020-11-30 20:48:04 +0100 | <ezzieyguywuf> | *need |
2020-11-30 20:48:22 +0100 | <ezzieyguywuf> | also, that was intended for Sonolin sorry. |
2020-11-30 20:48:25 +0100 | <Sonolin> | ezzieyguywuf ? I don't think so, upperString (x:xs) should take care of that since xs can still be an empty list |
2020-11-30 20:48:25 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 20:48:33 +0100 | <hololeap> | % upperString :: String -> Bool ; upperString [] = False ; upperString xs = all isUpper xs |
2020-11-30 20:48:33 +0100 | <yahb> | hololeap: |
2020-11-30 20:48:36 +0100 | hexo| | (~hexo@83.167.228.130) |
2020-11-30 20:48:43 +0100 | francesco_ | (~francesco@host-95-251-103-60.retail.telecomitalia.it) |
2020-11-30 20:48:46 +0100 | <ezzieyguywuf> | Sonolin: ah hah, your type-fu obviously surpasses mine |
2020-11-30 20:48:51 +0100 | <hololeap> | % upperString "ABCD" |
2020-11-30 20:48:51 +0100 | <yahb> | hololeap: True |
2020-11-30 20:48:57 +0100 | <hololeap> | % upperString "aBc" |
2020-11-30 20:48:57 +0100 | <yahb> | hololeap: False |
2020-11-30 20:49:00 +0100 | <hololeap> | % upperString "" |
2020-11-30 20:49:00 +0100 | <yahb> | hololeap: False |
2020-11-30 20:49:12 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) (Ping timeout: 260 seconds) |
2020-11-30 20:49:29 +0100 | <ezzieyguywuf> | %upperString "1,2,3 GO!" |
2020-11-30 20:49:35 +0100 | <ezzieyguywuf> | drat |
2020-11-30 20:49:39 +0100 | <ezzieyguywuf> | % upperString "1,2,3 GO!" |
2020-11-30 20:49:39 +0100 | <yahb> | ezzieyguywuf: False |
2020-11-30 20:50:34 +0100 | <avdb> | hololeap: So there's any and all ... thanks ... didn't know that ... |
2020-11-30 20:51:31 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds) |
2020-11-30 20:51:33 +0100 | <hololeap> | avdb: yes, and `all f []` always returns True, which is why you need the special case for the empty list |
2020-11-30 20:51:43 +0100 | <hololeap> | if you want the empty list to return False, that is |
2020-11-30 20:52:06 +0100 | _Adluc_ | (~Adluc@83.167.228.130) (Quit: ZNC - http://znc.in) |
2020-11-30 20:52:06 +0100 | hexo| | (~hexo@83.167.228.130) (Client Quit) |
2020-11-30 20:52:07 +0100 | <monochrom> | I wonder if you really benefit from upperString [] = False |
2020-11-30 20:52:48 +0100 | hexo- | (hexo@base48.cz) |
2020-11-30 20:53:13 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 20:53:56 +0100 | bergey` | (~user@107.181.19.30) |
2020-11-30 20:55:10 +0100 | alp_ | (~alp@2a01:e0a:58b:4920:c02c:4a68:69f0:7479) |
2020-11-30 20:56:19 +0100 | adm__ | (~adm@117.223.60.46) (Remote host closed the connection) |
2020-11-30 20:57:11 +0100 | bergey | (~user@pool-74-108-99-127.nycmny.fios.verizon.net) (Ping timeout: 256 seconds) |
2020-11-30 20:57:54 +0100 | macrover | (~macrover@ip68-108-126-211.lv.lv.cox.net) (Remote host closed the connection) |
2020-11-30 20:57:58 +0100 | francesco_ | (~francesco@host-95-251-103-60.retail.telecomitalia.it) (Ping timeout: 272 seconds) |
2020-11-30 21:00:36 +0100 | dan64- | (~dan64@dannyadam.com) |
2020-11-30 21:02:36 +0100 | inja | (~inja@pd9f82e17.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2020-11-30 21:02:39 +0100 | ambidextrose | (~fut-learn@mobile-166-170-49-222.mycingular.net) |
2020-11-30 21:02:50 +0100 | ambidextrose | (~fut-learn@mobile-166-170-49-222.mycingular.net) () |
2020-11-30 21:03:12 +0100 | ambidextrose | (~fut-learn@mobile-166-170-49-222.mycingular.net) |
2020-11-30 21:03:16 +0100 | contiver | (~contiver@84-115-64-150.wifi.dynamic.surfer.at) (Ping timeout: 256 seconds) |
2020-11-30 21:03:34 +0100 | dan64 | (~dan64@dannyadam.com) (Ping timeout: 265 seconds) |
2020-11-30 21:09:25 +0100 | miguel_clean | (~Miguel@89-72-187-203.dynamic.chello.pl) |
2020-11-30 21:10:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 21:12:13 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds) |
2020-11-30 21:13:03 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 272 seconds) |
2020-11-30 21:14:52 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-30 21:15:27 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-30 21:15:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-30 21:16:06 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-30 21:16:13 +0100 | jollygood2 | (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2020-11-30 21:17:01 +0100 | ambidextrose | (~fut-learn@mobile-166-170-49-222.mycingular.net) () |
2020-11-30 21:18:19 +0100 | <avdb> | > all isUpper "" |
2020-11-30 21:18:21 +0100 | <lambdabot> | True |
2020-11-30 21:18:50 +0100 | <ezzieyguywuf> | > all [isUpper "", not null ""] |
2020-11-30 21:18:53 +0100 | <lambdabot> | error: |
2020-11-30 21:18:53 +0100 | <lambdabot> | • Couldn't match expected type ‘a -> Bool’ |
2020-11-30 21:18:53 +0100 | <lambdabot> | with actual type ‘[Bool]’ |
2020-11-30 21:18:54 +0100 | <avdb> | Thanks! |
2020-11-30 21:18:57 +0100 | <avdb> | Ouch |
2020-11-30 21:19:01 +0100 | <ezzieyguywuf> | dang |
2020-11-30 21:19:19 +0100 | <avdb> | all isUpper xs && not null xs? |
2020-11-30 21:19:45 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
2020-11-30 21:19:47 +0100 | <ezzieyguywuf> | yea that |
2020-11-30 21:20:10 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 21:21:14 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-30 21:21:42 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 21:21:58 +0100 | <avdb> | > upperString xs = (all isUpper $ filter isLetter " ") && (not $ null " ") |
2020-11-30 21:22:01 +0100 | <lambdabot> | <hint>:1:16: error: <hint>:1:16: error: parse error on input ‘=’ |
2020-11-30 21:22:09 +0100 | <avdb> | > (all isUpper $ filter isLetter " ") && (not $ null " ") |
2020-11-30 21:22:11 +0100 | <lambdabot> | True |
2020-11-30 21:22:27 +0100 | <avdb> | This is supposed to return false :$ |
2020-11-30 21:22:43 +0100 | chaosmasttter | (~chaosmast@p200300c4a708ba01009b72ed500751f5.dip0.t-ipconnect.de) |
2020-11-30 21:23:39 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-30 21:24:07 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 21:24:08 +0100 | _Adluc_ | (~Adluc@2a01:430:17:1::ffff:328) |
2020-11-30 21:24:31 +0100 | <Sonolin> | don't need the filter |
2020-11-30 21:24:40 +0100 | <avdb> | I do for whitespace |
2020-11-30 21:24:51 +0100 | <Sonolin> | > all isUpper " " |
2020-11-30 21:24:54 +0100 | <lambdabot> | False |
2020-11-30 21:25:05 +0100 | <avdb> | Ouch! |
2020-11-30 21:26:05 +0100 | triteraflops | (~triterafl@host-208-96-90-136.public.eastlink.ca) (Read error: Connection reset by peer) |
2020-11-30 21:26:12 +0100 | <avdb> | Nope. I do. Otherwise "WATCH OUT!" won't return True. |
2020-11-30 21:26:31 +0100 | <Sonolin> | well you can do |
2020-11-30 21:26:36 +0100 | <Sonolin> | > any isUpper "WATCH OUT!" |
2020-11-30 21:26:38 +0100 | <lambdabot> | True |
2020-11-30 21:26:43 +0100 | triteraflops | (~triterafl@host-208-96-90-136.public.eastlink.ca) |
2020-11-30 21:26:58 +0100 | <avdb> | > any isUpper "WaTCH OUT!" |
2020-11-30 21:27:01 +0100 | <lambdabot> | True |
2020-11-30 21:27:06 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 21:27:12 +0100 | <Sonolin> | but if you truly want the filter you'll have to refactor that so you're checking not null on the filtered string as well |
2020-11-30 21:27:12 +0100 | <avdb> | Is supposed to return false since one letter is lowercase |
2020-11-30 21:28:02 +0100 | <Sonolin> | something like this |
2020-11-30 21:28:04 +0100 | <Sonolin> | > let xs = filter isLetter "WATCH OUT!" in all isUpper xs && not (null xs) |
2020-11-30 21:28:07 +0100 | <lambdabot> | True |
2020-11-30 21:28:14 +0100 | <Sonolin> | > let xs = filter isLetter " " in all isUpper xs && not (null xs) |
2020-11-30 21:28:16 +0100 | adm | (~adm@117.223.60.46) |
2020-11-30 21:28:17 +0100 | <lambdabot> | False |
2020-11-30 21:28:54 +0100 | <avdb> | Now we broke response for numbers only |
2020-11-30 21:29:04 +0100 | <avdb> | all isUpper "12234" |
2020-11-30 21:29:06 +0100 | <avdb> | > all isUpper "12234" |
2020-11-30 21:29:09 +0100 | <lambdabot> | False |
2020-11-30 21:29:39 +0100 | <Sonolin> | you'll have to change the filter than |
2020-11-30 21:29:55 +0100 | <Sonolin> | gotta go but you should be able to figure it out, you're close |
2020-11-30 21:30:10 +0100 | <avdb> | I really am ... what a headache |
2020-11-30 21:30:16 +0100 | urek | (~urek@191.250.144.166) (Ping timeout: 272 seconds) |
2020-11-30 21:30:16 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-11-30 21:31:16 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-11-30 21:31:47 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 21:32:36 +0100 | adm | (~adm@117.223.60.46) (Ping timeout: 240 seconds) |
2020-11-30 21:33:11 +0100 | hexo^ | (~hexo@2a01:430:17:1::ffff:328) |
2020-11-30 21:33:26 +0100 | ulidtko|k | (~ulidtko@194.54.80.38) |
2020-11-30 21:33:34 +0100 | ragemnaugh | ihopeyoudie |
2020-11-30 21:34:35 +0100 | conal | (~conal@64.71.133.70) |
2020-11-30 21:34:36 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds) |
2020-11-30 21:34:36 +0100 | <sondr3> | That's a harsh name change :p |
2020-11-30 21:35:19 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
2020-11-30 21:36:17 +0100 | ulidtko | (~ulidtko@193.111.48.79) (Ping timeout: 256 seconds) |
2020-11-30 21:36:44 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-30 21:37:28 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 21:37:53 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) (Ping timeout: 265 seconds) |
2020-11-30 21:38:05 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) |
2020-11-30 21:39:00 +0100 | fendor | (~fendor@178.165.130.113.wireless.dyn.drei.com) (Remote host closed the connection) |
2020-11-30 21:39:46 +0100 | adm | (~adm@117.208.18.165) |
2020-11-30 21:40:36 +0100 | contiver | (~contiver@84-115-64-11.wifi.dynamic.surfer.at) |
2020-11-30 21:43:01 +0100 | cads2 | (~cads@ip-64-72-99-232.lasvegas.net) |
2020-11-30 21:43:47 +0100 | <sondr3> | I'm about to add an environment to my toy language, previously my state has been either `Map String Val` or `[(String, Val)]`. Should I look into using something like the Reader or State monad? |
2020-11-30 21:44:34 +0100 | adm | (~adm@117.208.18.165) (Ping timeout: 256 seconds) |
2020-11-30 21:46:37 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds) |
2020-11-30 21:46:51 +0100 | f-a | (~f-a@151.82.199.37) |
2020-11-30 21:47:19 +0100 | <Rembane> | sondr3: State monad is good if you have many functions, otherwise a f :: SomeStateType -> (SomeStateType, a) works for quite a while |
2020-11-30 21:48:25 +0100 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds) |
2020-11-30 21:48:34 +0100 | cads2 | (~cads@ip-64-72-99-232.lasvegas.net) (Read error: Connection reset by peer) |
2020-11-30 21:49:17 +0100 | <dminuoso> | State monad also helps against accidents. When you write `\x -> let (x', v) = f x in ...` you can easily mix up x and x' over time |
2020-11-30 21:49:27 +0100 | <dminuoso> | Or when you tend to have multiple values of type SomeStateType around |
2020-11-30 21:49:37 +0100 | <dminuoso> | And it can be more expressive |
2020-11-30 21:49:56 +0100 | Iceland_jack | (~user@31.124.48.169) (Remote host closed the connection) |
2020-11-30 21:50:04 +0100 | <dminuoso> | Since it opens up the realm of applicative/monad combinators like traverse |
2020-11-30 21:50:27 +0100 | <solonarv> | if your toy language has only immutable bindings then you don't actually need the full power of State, you can continue using Reader |
2020-11-30 21:50:39 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) (Quit: Leaving.) |
2020-11-30 21:50:55 +0100 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) |
2020-11-30 21:50:59 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2020-11-30 21:50:59 +0100 | <solonarv> | note that 'Reader E a' is the same thing as 'E -> a', and 'State S a' is the same thing as 'S -> (a, S)' |
2020-11-30 21:53:27 +0100 | DavidEichmann | (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection) |
2020-11-30 21:54:06 +0100 | <monochrom> | Environment does not behave like State. |
2020-11-30 21:54:46 +0100 | <monochrom> | You can still use state to emulate environment. But that requires understanding both. |
2020-11-30 21:55:05 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-30 21:55:56 +0100 | Lowl3v3l | (~Lowl3v3l@dslb-088-072-167-013.088.072.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2020-11-30 21:56:53 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 21:57:06 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) |
2020-11-30 21:57:43 +0100 | <dminuoso> | And you can use environment as state if you have IO. |
2020-11-30 21:58:25 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-30 21:58:47 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-30 22:00:30 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-30 22:00:58 +0100 | bliminse | (~bliminse@host86-134-63-68.range86-134.btcentralplus.com) |
2020-11-30 22:02:53 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) |
2020-11-30 22:03:17 +0100 | SummerNinja | (~SummerNin@185.103.96.147) (Remote host closed the connection) |
2020-11-30 22:04:46 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2020-11-30 22:05:23 +0100 | urek | (~urek@2804:7f1:e10a:9644:28f0:3bb:caef:43b3) |
2020-11-30 22:05:25 +0100 | chalkmonster | (~chalkmons@unaffiliated/chalkmonster) (Quit: WeeChat 2.9) |
2020-11-30 22:07:21 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-30 22:07:38 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) (Ping timeout: 272 seconds) |
2020-11-30 22:07:50 +0100 | vg | (~vg@139.59.59.230) |
2020-11-30 22:08:16 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) (Ping timeout: 240 seconds) |
2020-11-30 22:10:31 +0100 | alp_ | (~alp@2a01:e0a:58b:4920:c02c:4a68:69f0:7479) (Remote host closed the connection) |
2020-11-30 22:10:35 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-30 22:10:50 +0100 | alp_ | (~alp@2a01:e0a:58b:4920:e5b9:c518:2c12:3fb9) |
2020-11-30 22:10:54 +0100 | cosimone | (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
2020-11-30 22:11:37 +0100 | Mathmoose | (~mathias@31-208-78-204.cust.bredband2.com) (Ping timeout: 264 seconds) |
2020-11-30 22:11:37 +0100 | Lowl3v3l | (~Lowl3v3l@dslb-088-072-167-020.088.072.pools.vodafone-ip.de) |
2020-11-30 22:12:02 +0100 | sondr3 | (~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving) |
2020-11-30 22:14:21 +0100 | ulidtko|kk | (~ulidtko@193.111.48.79) |
2020-11-30 22:16:39 +0100 | adm | (~adm@117.208.18.165) |
2020-11-30 22:16:43 +0100 | ulidtko|k | (~ulidtko@194.54.80.38) (Ping timeout: 246 seconds) |
2020-11-30 22:17:45 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 22:18:37 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-30 22:19:05 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 22:19:10 +0100 | timCF_ | (~i.tkachuk@m91-129-105-245.cust.tele2.ee) |
2020-11-30 22:20:16 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-30 22:20:50 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 22:21:52 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-30 22:22:02 +0100 | mang0[m] | (dea223matr@gateway/shell/matrix.org/x-oxzuzzbshfcdgowx) |
2020-11-30 22:22:11 +0100 | adm | (~adm@117.208.18.165) (Ping timeout: 256 seconds) |
2020-11-30 22:22:24 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 22:22:31 +0100 | czwartyeon | (4d2d3763@77-45-55-99.sta.asta-net.com.pl) |
2020-11-30 22:22:32 +0100 | <mang0[m]> | hi |
2020-11-30 22:22:43 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-30 22:23:01 +0100 | knupfer | (~Thunderbi@200116b82c773700a484cefffe15601d.dip.versatel-1u1.de) |
2020-11-30 22:23:34 +0100 | knupfer | (~Thunderbi@200116b82c773700a484cefffe15601d.dip.versatel-1u1.de) (Remote host closed the connection) |
2020-11-30 22:23:47 +0100 | knupfer | (~Thunderbi@200116b82c773700bd0d2b808d25cbd1.dip.versatel-1u1.de) |
2020-11-30 22:26:20 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) () |
2020-11-30 22:26:41 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-30 22:26:44 +0100 | nehsou^ | (nehsou@ip98-184-89-2.mc.at.cox.net) () |
2020-11-30 22:27:20 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:8dad:fdd3:20dd:4129) (Ping timeout: 268 seconds) |
2020-11-30 22:27:56 +0100 | tsrt^ | (tsrt@ip98-184-89-2.mc.at.cox.net) |
2020-11-30 22:30:08 +0100 | czwartyeon | (4d2d3763@77-45-55-99.sta.asta-net.com.pl) (Remote host closed the connection) |
2020-11-30 22:32:20 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds) |
2020-11-30 22:33:54 +0100 | vicfred_ | (~vicfred@unaffiliated/vicfred) |
2020-11-30 22:33:56 +0100 | tlaxkit | (~kvirc@185.228.155.198) (Ping timeout: 256 seconds) |
2020-11-30 22:34:13 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-30 22:34:20 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 22:34:23 +0100 | fendor | (~fendor@178.165.130.113.wireless.dyn.drei.com) |
2020-11-30 22:36:19 +0100 | Ariakenom_ | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Quit: Leaving) |
2020-11-30 22:36:51 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Ping timeout: 265 seconds) |
2020-11-30 22:37:49 +0100 | <ezzieyguywuf> | is there something like `mGetFile :: FilePath -> Maybe Text` is Base that returns Nothing if the file doesn't exist? |
2020-11-30 22:37:50 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-30 22:38:04 +0100 | <ezzieyguywuf> | I see `Data.Text.IO.readFile` but this just throws an exception |
2020-11-30 22:38:30 +0100 | <ezzieyguywuf> | or rather, should I check for existence of the file some other way? |
2020-11-30 22:38:59 +0100 | <f-a> | ezzieyguywuf: it seems one of those oops which are better handled by- yes, use |
2020-11-30 22:39:01 +0100 | <f-a> | @hoogle FilePath -> IO Bool |
2020-11-30 22:39:03 +0100 | <lambdabot> | System.Directory doesPathExist :: FilePath -> IO Bool |
2020-11-30 22:39:03 +0100 | <lambdabot> | System.Directory doesFileExist :: FilePath -> IO Bool |
2020-11-30 22:39:03 +0100 | <lambdabot> | System.Directory doesDirectoryExist :: FilePath -> IO Bool |
2020-11-30 22:39:21 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 22:39:24 +0100 | <f-a> | if you want the -> Maybe String, capture that exception |
2020-11-30 22:39:31 +0100 | <maerwald> | ezzieyguywuf: no, you catch the excpetion isDoesNotExistError |
2020-11-30 22:40:05 +0100 | <maerwald> | cehcking for existence before accessing the file is an anti-pattern :) |
2020-11-30 22:40:06 +0100 | <ezzieyguywuf> | so I've been operating under the general rule of thumb that I should prefer to use Maybe rather than exceptions when programming is haskell |
2020-11-30 22:40:28 +0100 | <maerwald> | yes, you can turn the exception into a Nothing |
2020-11-30 22:40:28 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 22:40:53 +0100 | vicfred_ | (~vicfred@unaffiliated/vicfred) (Ping timeout: 256 seconds) |
2020-11-30 22:41:04 +0100 | <ezzieyguywuf> | how do you catch an exception in haskell? |
2020-11-30 22:41:22 +0100 | f-a | (~f-a@151.82.199.37) (Read error: Connection reset by peer) |
2020-11-30 22:41:25 +0100 | f-a_ | (~f-a@151.68.157.93) |
2020-11-30 22:41:33 +0100 | <maerwald> | https://hackage.haskell.org/package/base-4.14.0.0/docs/Control-Exception.html#v:handle |
2020-11-30 22:41:45 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Client Quit) |
2020-11-30 22:41:59 +0100 | contiver_ | (~contiver@84-115-64-11.wifi.dynamic.surfer.at) |
2020-11-30 22:42:13 +0100 | ericsagnes | (~ericsagne@sp49-97-97-189.msc.spmode.ne.jp) |
2020-11-30 22:42:20 +0100 | <ezzieyguywuf> | ah hah, I see |
2020-11-30 22:42:25 +0100 | <ezzieyguywuf> | maerwald: thank you. |
2020-11-30 22:43:25 +0100 | coot | (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2020-11-30 22:44:28 +0100 | contiver | (~contiver@84-115-64-11.wifi.dynamic.surfer.at) (Ping timeout: 260 seconds) |
2020-11-30 22:45:29 +0100 | tlaxkit | (~kvirc@185.228.155.198) |
2020-11-30 22:45:55 +0100 | f-a_ | (~f-a@151.68.157.93) (Client Quit) |
2020-11-30 22:46:15 +0100 | geekosaur | (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
2020-11-30 22:47:15 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-30 22:49:48 +0100 | ulidtko|k | (~ulidtko@194.54.80.38) |
2020-11-30 22:50:04 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Ping timeout: 272 seconds) |
2020-11-30 22:50:37 +0100 | <ezzieyguywuf> | I'm still struggling - I understand how catch/handle are supposed to work, but how do I know if I'm accounting for every possible exception? |
2020-11-30 22:50:42 +0100 | <ezzieyguywuf> | or is that impractical? |
2020-11-30 22:50:54 +0100 | <maerwald> | ezzieyguywuf: https://hackage.haskell.org/package/base-4.14.0.0/docs/System-IO-Error.html#v:isDoesNotExistError |
2020-11-30 22:50:59 +0100 | <maerwald> | you only care about that one |
2020-11-30 22:51:10 +0100 | <maerwald> | and possibly https://hackage.haskell.org/package/base-4.14.0.0/docs/System-IO-Error.html#v:isPermissionError |
2020-11-30 22:51:18 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2020-11-30 22:51:43 +0100 | <maerwald> | so you check the error in the handler with those two functions |
2020-11-30 22:51:55 +0100 | <ezzieyguywuf> | isDoesNotExistError returns a bool, but handle expects an `e -> IO a` |
2020-11-30 22:52:05 +0100 | ulidtko|kk | (~ulidtko@193.111.48.79) (Ping timeout: 240 seconds) |
2020-11-30 22:52:08 +0100 | <maerwald> | yes, you should be able to figure this out :p |
2020-11-30 22:52:57 +0100 | <maerwald> | look at the whole type signature and specialize the `a` |
2020-11-30 22:53:10 +0100 | <ezzieyguywuf> | lol, I should be able to figure this out... |
2020-11-30 22:53:17 +0100 | chaosmasttter | (~chaosmast@p200300c4a708ba01009b72ed500751f5.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
2020-11-30 22:53:25 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-30 22:53:50 +0100 | <monochrom> | ezzieyguywuf: http://www.vex.net/~trebla/haskell/exception-tutorial.xhtml#subtyping |
2020-11-30 22:54:06 +0100 | <ezzieyguywuf> | hrm, the documentation for catch is helpful here |
2020-11-30 22:54:06 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-30 22:54:15 +0100 | <ezzieyguywuf> | monochrom: ah, I'll have to check that out |
2020-11-30 22:54:18 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 22:54:31 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
2020-11-30 22:54:31 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2020-11-30 22:56:23 +0100 | bitmagie | (~Thunderbi@200116b8068d1f00e02cf9810b35763a.dip.versatel-1u1.de) |
2020-11-30 22:57:44 +0100 | hexo^ | (~hexo@2a01:430:17:1::ffff:328) (Quit: ZNC - http://znc.in) |
2020-11-30 22:57:44 +0100 | _Adluc_ | (~Adluc@2a01:430:17:1::ffff:328) (Quit: ZNC - http://znc.in) |
2020-11-30 22:58:22 +0100 | _Adluc_ | (~Adluc@83.167.228.130) |
2020-11-30 22:59:33 +0100 | MartinAS1 | (~MartinAS@195.140.213.38) |
2020-11-30 22:59:51 +0100 | Adluc | (Adluc@base48.cz) (Quit: ZNC - http://znc.in) |
2020-11-30 22:59:52 +0100 | hexo- | (hexo@base48.cz) (Write error: Connection reset by peer) |
2020-11-30 23:00:05 +0100 | <maerwald> | ezzieyguywuf: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/lib/GHCup/Utils/Prelude.hs#L183 this is similar to what you need to do |
2020-11-30 23:00:33 +0100 | Adluc | (Adluc@base48.cz) |
2020-11-30 23:01:04 +0100 | <maerwald> | so instead of `pure ()` you probably want something else |
2020-11-30 23:02:24 +0100 | timCF_ | (~i.tkachuk@m91-129-105-245.cust.tele2.ee) (Quit: leaving) |
2020-11-30 23:04:43 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) |
2020-11-30 23:05:19 +0100 | hexo- | (~hexo@83.167.228.130) |
2020-11-30 23:06:25 +0100 | Amras | (~Amras@unaffiliated/amras) (Ping timeout: 272 seconds) |
2020-11-30 23:06:33 +0100 | devalot | (~ident@mail.pmade.com) |
2020-11-30 23:07:53 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-30 23:08:09 +0100 | Adluc | (Adluc@base48.cz) (Quit: ZNC - http://znc.in) |
2020-11-30 23:08:35 +0100 | <dminuoso> | 22:50:37 ezzieyguywuf | I'm still struggling - I understand how catch/handle are supposed to work, but how do I know if I'm accounting for every possible exception? |
2020-11-30 23:08:40 +0100 | Adluc | (Adluc@base48.cz) |
2020-11-30 23:08:49 +0100 | Adluc | (Adluc@base48.cz) (Remote host closed the connection) |
2020-11-30 23:08:58 +0100 | <dminuoso> | ezzieyguywuf: It depends. Are you catching someone elses exceptions, or is the exception throwing part under your control? |
2020-11-30 23:09:20 +0100 | Adluc | (Adluc@base48.cz) |
2020-11-30 23:09:44 +0100 | Adluc | (Adluc@base48.cz) (Remote host closed the connection) |
2020-11-30 23:10:33 +0100 | christo | (~chris@81.96.113.213) |
2020-11-30 23:10:40 +0100 | <dminuoso> | https://simonmar.github.io/bib/papers/ext-exceptions.pdf is a great read either way. If you get to control the exceptions, you can put them in this hierarchy and then have fine control over how to catch exceptions. If it's someone elses exceptions, it depends on their exception hygiene. |
2020-11-30 23:10:41 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2020-11-30 23:11:14 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Quit: mputz) |
2020-11-30 23:11:16 +0100 | <dminuoso> | That publication is a little more formal and detailed version of monochrom's tutorial |
2020-11-30 23:11:24 +0100 | <dminuoso> | But very readable |
2020-11-30 23:11:29 +0100 | tomku | (~tomku@unaffiliated/tomku) (Read error: Connection reset by peer) |
2020-11-30 23:12:58 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-30 23:13:19 +0100 | chele | (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2020-11-30 23:16:55 +0100 | ericsagnes | (~ericsagne@sp49-97-97-189.msc.spmode.ne.jp) (Read error: No route to host) |
2020-11-30 23:17:30 +0100 | tomku | (~tomku@unaffiliated/tomku) |
2020-11-30 23:17:48 +0100 | justsomeguy | (~justsomeg@216.186.218.241) |
2020-11-30 23:17:48 +0100 | justsomeguy | (~justsomeg@216.186.218.241) (Changing host) |
2020-11-30 23:17:48 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-11-30 23:18:11 +0100 | ericsagnes | (~ericsagne@sp49-97-97-189.msc.spmode.ne.jp) |
2020-11-30 23:19:57 +0100 | knupfer | (~Thunderbi@200116b82c773700bd0d2b808d25cbd1.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
2020-11-30 23:21:48 +0100 | <iqubic> | monochrom has a tutorial? |
2020-11-30 23:25:52 +0100 | nckx | ncksneekx |
2020-11-30 23:26:03 +0100 | ncksneekx | nckx |
2020-11-30 23:27:38 +0100 | <iqubic> | What's the status on the Monad of No Return proposal? |
2020-11-30 23:27:40 +0100 | <iqubic> | https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return |
2020-11-30 23:29:55 +0100 | <ezzieyguywuf> | dminuoso: catching someone else's (base's) exception |
2020-11-30 23:30:46 +0100 | <dminuoso> | ezzieyguywuf: So that's one of the sad parts of Haskell. It's usually not communicated or documented what IO exceptions can be thrown.. :( |
2020-11-30 23:30:54 +0100 | <dminuoso> | There's of course the sledge hammer of catching SomeException... |
2020-11-30 23:31:04 +0100 | <dminuoso> | But then you also must make sure not to recover from async exceptions.. |
2020-11-30 23:31:13 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2020-11-30 23:31:26 +0100 | <maerwald> | and then you realize there's a library for that... and then you confuse the imports in your codebase |
2020-11-30 23:31:39 +0100 | dminuoso | just uses Async.Exception and has banned Control.Exception |
2020-11-30 23:31:45 +0100 | <dminuoso> | That addresses that second part. :p |
2020-11-30 23:31:52 +0100 | <dminuoso> | errr |
2020-11-30 23:31:54 +0100 | <dminuoso> | *UnliftIO.Exception |
2020-11-30 23:32:01 +0100 | <ezzieyguywuf> | I just watch to (a) try to open a file. if fail, tell user. (b) try to Config.parse said file (from config-value). if fail, tell user. (c) try to Config.Schema.loadFile said parsed file (from config-schema). if fail, tell user |
2020-11-30 23:32:42 +0100 | <ezzieyguywuf> | I'd like a different message to the user depending on where the failure occurs. I was thinking of runExceptT since Config.parse and loadFile both return an Either |
2020-11-30 23:33:18 +0100 | <ezzieyguywuf> | but then for the first step, I guess I have to catch/handle, and convert to an IO (Either Text Text) |
2020-11-30 23:33:33 +0100 | <ezzieyguywuf> | and I guess also I need to convert the Left of Config.parse to be consistent |
2020-11-30 23:33:45 +0100 | <maerwald> | yes, please mix ExceptT with IO and open unions and then get confused by your own code |
2020-11-30 23:33:58 +0100 | <maerwald> | I also thought it's cool |
2020-11-30 23:34:02 +0100 | <ezzieyguywuf> | yea already confused |
2020-11-30 23:34:06 +0100 | <ezzieyguywuf> | so I guess this is a bad idea, lol |
2020-11-30 23:34:14 +0100 | <maerwald> | now I need 2 exception handlers, one for IO, one for exceptT |
2020-11-30 23:34:24 +0100 | <maerwald> | and then the code still crashes, lol |
2020-11-30 23:34:49 +0100 | <dminuoso> | Well the question is whether you can recover from it, or whether you just want to produce a sensible diagnostic. |
2020-11-30 23:35:23 +0100 | <ezzieyguywuf> | if any of those three operations fail, the program needs to exit and tell the user why |
2020-11-30 23:36:08 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 260 seconds) |
2020-11-30 23:37:04 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:6448:a1be:2d68:fad7) (Ping timeout: 240 seconds) |
2020-11-30 23:39:16 +0100 | contiver | (~contiver@84-115-65-28.wifi.dynamic.surfer.at) |
2020-11-30 23:40:21 +0100 | <ezzieyguywuf> | actually I think only one of the three, the first, is even an IO action |
2020-11-30 23:40:34 +0100 | <ezzieyguywuf> | the other two are pure functions that return an Either, so ExceptT is definitely not the right call here |
2020-11-30 23:40:38 +0100 | Franciman | (~francesco@host-95-251-103-60.retail.telecomitalia.it) (Quit: Leaving) |
2020-11-30 23:41:16 +0100 | <ezzieyguywuf> | i think I'll just start with the nested case statements |
2020-11-30 23:41:24 +0100 | <ezzieyguywuf> | and then post it and see if we can clean it up any |
2020-11-30 23:41:53 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2020-11-30 23:42:00 +0100 | contiver_ | (~contiver@84-115-64-11.wifi.dynamic.surfer.at) (Ping timeout: 272 seconds) |
2020-11-30 23:42:46 +0100 | contiver_ | (~contiver@84-115-65-220.wifi.dynamic.surfer.at) |
2020-11-30 23:42:53 +0100 | joaoh82 | (~joaoh82@157-131-134-210.dedicated.static.sonic.net) |
2020-11-30 23:44:21 +0100 | dhil | (~dhil@195.213.192.34) (Ping timeout: 256 seconds) |
2020-11-30 23:45:36 +0100 | contiver | (~contiver@84-115-65-28.wifi.dynamic.surfer.at) (Ping timeout: 260 seconds) |
2020-11-30 23:52:50 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
2020-11-30 23:53:45 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-11-30 23:54:42 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-wpncqurqfmhlmlcw) (Quit: Connection closed for inactivity) |
2020-11-30 23:55:53 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-30 23:56:18 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2020-11-30 23:56:35 +0100 | joaoh82_ | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
2020-11-30 23:57:58 +0100 | joaoh82_ | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Client Quit) |
2020-11-30 23:58:28 +0100 | notzmv | (~user@unaffiliated/zmv) (Read error: No route to host) |
2020-11-30 23:58:28 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-30 23:58:47 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-30 23:59:18 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-30 23:59:26 +0100 | contiver_ | (~contiver@84-115-65-220.wifi.dynamic.surfer.at) (Ping timeout: 256 seconds) |