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