Home freenode/#haskell: Logs Calendar

Logs on 2020-12-28 (freenode/#haskell)

00:00:06 × atk quits (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.)
00:00:26 atk joins (~Arch-TK@ircpuzzles/staff/Arch-TK)
00:01:31 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
00:02:07 awk is now known as mnrmnaugh
00:04:09 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:04:35 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
00:06:45 cads2 joins (~cads@ip-64-72-99-232.lasvegas.net)
00:06:45 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
00:07:38 × matryoshka quits (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
00:07:57 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
00:08:24 tbqdrn joins (~tbqdrn@ip4d142f9c.dynamic.kabel-deutschland.de)
00:08:25 <tbqdrn> test
00:08:55 <arw> tbqdrn: failed
00:09:06 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
00:10:33 <Orbstheorem> So, I was watching this talk from Richard Eisenberg on Haskell eXchange 2019 and he talks about merging dependent types on haskell on pi-day 2021 x)
00:10:41 × xcmw quits (~textual@c-76-120-183-86.hsd1.pa.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:12:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
00:15:14 jlamothe joins (~jlamothe@198.251.55.207)
00:15:37 xcmw joins (~textual@2601:541:4404:bb5c:5c67:b57d:1563:1c30)
00:18:22 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 268 seconds)
00:21:36 jamm joins (~jamm@unaffiliated/jamm)
00:22:55 tbqdrn parts (~tbqdrn@ip4d142f9c.dynamic.kabel-deutschland.de) ()
00:26:26 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
00:29:57 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
00:30:45 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
00:31:33 sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
00:32:40 christo joins (~chris@81.96.113.213)
00:32:41 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
00:33:32 Tario joins (~Tario@201.192.165.173)
00:35:52 × usr25 quits (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer)
00:36:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:2d7a:8bca:7799:994c) (Remote host closed the connection)
00:36:35 usr25 joins (~usr25@unaffiliated/usr25)
00:37:25 × christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
00:37:33 usr256 joins (~usr25@unaffiliated/usr25)
00:41:14 × usr25 quits (~usr25@unaffiliated/usr25) (Ping timeout: 256 seconds)
00:42:10 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
00:43:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:46:19 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
00:46:44 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 256 seconds)
00:46:55 × Tops21 quits (~Tobias@dyndsl-095-033-027-251.ewe-ip-backbone.de) (Quit: Leaving.)
00:46:57 × ystael quits (~ystael@209.6.50.55) (Quit: Lost terminal)
00:48:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
00:51:44 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
00:54:15 × p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
00:54:34 p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
00:58:20 lakshayg joins (~user@76.14.20.26)
01:01:20 gjewsker joins (2fe3e53b@047-227-229-059.res.spectrum.com)
01:02:04 <gjewsker> hi all! could you guys suggest a few projects you've done that you've found to be really instructive and not too difficult? I'm a beginner in haskell who knows syntax but feels like i can't put anything together, and i really want to learn but somehow feel like i can come up with a good project idea
01:02:34 <koz_> gjewsker: I think that's the wrong question to be asking.
01:02:54 <koz_> A better question is this: "What kind of software thing would make my life better in a direct and real way?".
01:02:58 <koz_> Then write _that_.
01:03:20 <gjewsker> the thing is like, i feel like everything i want exists already
01:03:32 <koz_> gjewsker: Then why learn to program?
01:04:43 <gjewsker> welll betting that some day i'll be knowledgeable enough and inspired enough to think of something i want to see
01:04:44 <gjewsker> :)
01:05:11 <koz_> gjewsker: Basically, the solution to your issue isn't someone provisioning you a toy project.
01:05:21 <koz_> It's to find a problem that bothers you enough that you want to solve it with software.
01:05:28 <koz_> This is a problem of motivation, not of Haskell or direction.
01:05:54 <koz_> In my experience (and that of many others I have both taught and worked with) is that nothing teaches you like necessity.
01:06:11 <koz_> If it annoys you enough to be a problem, you _will_ learn enough to fix it.
01:06:20 <koz_> And that is how you advance best in something as practical as programming.
01:06:27 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
01:06:32 <gjewsker> what's an example for you?
01:06:56 <koz_> gjewsker: I had a job to process a bunch of satellite data from NASA.
01:07:04 <koz_> I took the job because it seemed like fun.
01:07:06 heatsink joins (~heatsink@2600:1700:bef1:5e10:2d7a:8bca:7799:994c)
01:07:19 jedws joins (~jedws@121.209.189.201)
01:07:22 <koz_> In the process, I discovered that 4+ years of satellite data covering a whole country requires me to learn a _lot_.
01:07:41 <koz_> Starting from 'how the hell do coordinates' to 'how do I not make my computer choke and die because oh my god data'.
01:08:10 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:f14e:453d:14dc:75b2:51ff)
01:08:15 <koz_> I learned a _tonne_ through the necessity of 'I need to finish this to actually do my work'.
01:08:29 <koz_> Another example for me was when I ported Gentoo.
01:08:40 <koz_> Because I had a microserver for which no Gentoo support existed.
01:08:47 <koz_> And I wanted a microserver I could administer.
01:09:05 <koz_> Again, learned a _lot_ in the process, because not having a Gentoo-able microserver annoyed me _that_ much.
01:09:21 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Client Quit)
01:09:28 <koz_> Another, even less software-ey example, was when I learned how to sew.
01:09:37 <koz_> Because I needed to re-attach a button to my shirt.
01:09:45 <koz_> Again, the _need_ to fix this problem drove my learning.
01:10:03 <koz_> If you lack such a need, no problem I, or anyone else, can give you will get you much of anywhere.
01:10:15 <koz_> Because your attention will just move to something else the moment it gets hard.
01:10:21 <koz_> But when it gets hard is when the _real_ learning begins.
01:11:11 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:11:45 <dsal> gjewsker: I needed a tool to upload large data to S3 from bad networks. I wrote that yesterday. Technically, there are tools that kind of do some of that, but none of them that are reboot-your-computer resumable the way I needed it. I have tons of little tools like that.
01:11:46 <gjewsker> not sure anything motivates me that much :(
01:12:17 <koz_> gjewsker: Then be blissful in that your needs are met. Enjoy life, for I _wish_ I was so content. :D
01:12:54 <koz_> I program because I have a driving need to answer questions and solve problems. Absent those? I'd just go read more books, walk outside, etc.
01:12:56 <dsal> My wife and I have been building a barn over the last few days. We're both hilariously bad at carpentry, but I got the roof on it today.
01:13:05 <koz_> dsal: Awesome project.
01:13:20 <dsal> My favorite thing to do: Something I'm bad at.
01:13:28 <koz_> Mine: something I don't understand.
01:13:51 <dsal> Yeah, I'm usually bad at it because I don't understand it. :)
01:14:17 <dsal> There were several passes at "how do we make this not try to fall over?"
01:14:36 <dsal> Similarly, my S3 thing I just built required understanding a bit more about how S3 works. And then I found a bug in amazonka.
01:14:59 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366) (Remote host closed the connection)
01:15:16 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
01:16:44 <sm[m]> gjewsker: a game!
01:16:55 Vulfe joins (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366)
01:17:13 <dsal> gjewsker: Advent of Code 2020 just finished, but where you lack inspiration, it's pretty helpful giving you things to do. It's good at unnecessarily putting things you want to learn between you and a solution.
01:17:59 gmt1772 joins (2fe3e53b@047-227-229-059.res.spectrum.com)
01:18:10 <dsal> This year was kind of random. Very little reuse. But I got a lot better understanding of megaparsec and did get to use my bitset thing from a year or so ago, which was nice.
01:18:12 <koz_> FWIW, I never found 'artificial' problems like AoC particularly useful for my learning.
01:18:15 <koz_> However, YMMV.
01:18:34 <dsal> They're differently useful.
01:18:39 <MarcelineVQ> aoc is amazing at getting me to give up, so if there's a score for that I'm killing it
01:18:48 guest1228 joins (~user@49.5.6.87)
01:19:23 <gmt1772> which AoC problems possibly used megaparsec ;D
01:19:27 <dsal> But yeah, I learn a lot more working on my own projects.
01:19:36 × gjewsker quits (2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
01:20:19 blankhart joins (~blankhart@pool-100-8-71-205.nwrknj.fios.verizon.net)
01:20:33 <dsal> I used megaparsec on 2, 4, 6, 7, 8, 12, 13, 14, 16, 18, 19, 20, 21, 22, and 24
01:21:02 <gmt1772> never used megaparsec in my life :D
01:21:06 <gmt1772> perhaps it's time to start?
01:21:13 <dsal> Partially because that's what I wanted to get out of it. My understanding improved a lot.
01:21:22 <dsal> Depends. I do use it in my Real World™ projects as well.
01:21:59 <dsal> Often I'll start a project by writing a file that I think expresses an example of my problem pretty well, then I make a parser for that file, and a runtime that does the things it said.
01:22:20 <gmt1772> you got a quick and dirty, no-fluff tutorial?
01:22:31 <gmt1772> i'm now curious.
01:23:01 <koz_> Ah megaparsec. Five minutes to write, five hours to debug. :P
01:23:46 <dsal> haha. I'm getting a lot better at it.
01:23:55 nbloomf joins (~nbloomf@2601:285:401:7490:5c0f:8d47:399f:1cf0)
01:23:57 <dsal> gmt1772: There are lots, but like it depends on what you want to do.
01:24:08 <gmt1772> i don't know, what can it do hahah
01:24:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:24:18 <dsal> e.g., I have a thing that listens to mqtt topics and sends them to influxdb. I wrote this file and then wrote the program that does the things it says: https://gist.github.com/dustin/3015d0dee2b5cee3ce8b2d1895aee144
01:24:27 <koz_> gmt1772: It can parse stuff.
01:24:34 <gmt1772> yeah, i got that part :D
01:25:10 <dsal> It basically did all the work on day 18 for me.
01:25:20 <blankhart> is there a way to turn off a specific warning in haskell-ide-engine (pattern match checker exceeded N iterations)? doesn't need to be just at the use site
01:25:23 <dsal> https://github.com/dustin/aoc2020/blob/master/src/Day18.hs
01:25:28 × usr256 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
01:26:31 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:26:48 × nbloomf quits (~nbloomf@2601:285:401:7490:5c0f:8d47:399f:1cf0) (Client Quit)
01:27:24 <dsal> gmt1772: If you have a file you'd like to parse, that's a good start. That's why aoc had me doing so much megaparsecing because they're like, "here's a file. parse it"
01:27:40 <gmt1772> how's it different from parsec?
01:27:48 <gmt1772> mostly i just use parsec and life's excellent!
01:27:50 <koz_> Better error messages, for one.
01:28:17 <dsal> Yeah. It's also megaer
01:28:20 andrewray joins (43b450b9@c-67-180-80-185.hsd1.ca.comcast.net)
01:28:30 <dsal> The biggest thing is that it's actually smaller, I think. Much functionality is just parser combinators and stuff.
01:28:31 <ephemient> there's a comparison on its homepage
01:28:49 <ephemient> https://github.com/mrkkrp/megaparsec#megaparsec-vs-parsec
01:28:59 <koz_> Also, if anyone knows Control.Foldl, is there a way to get 'Fold a c -> Fold b d -> Fold (These a b) (These c d)'?
01:31:01 andrewray_ joins (~andrewray@c-67-180-80-185.hsd1.ca.comcast.net)
01:31:24 <koz_> I have the weird suspicion that the answer is 'no', but I'm not sure.
01:33:05 djromja joins (2fe3e53b@047-227-229-059.res.spectrum.com)
01:33:23 Fischmie1 joins (~Fischmiep@84.46.41.145)
01:33:29 <andrewray_> (repost, i got disconnected) - this blog post https://raganwald.com/2017/04/10/foldl-foldr.html - folds in javascript - says that a foldl and a foldr, composing functions in the fold, will produce different results. is this "wrong" for the definition of foldr?
01:33:52 <andrewray_> he says that foldr = javascript reduceRight, which just seems like reverse().reduce(), not a right associative fold
01:34:17 <djromja> /whois andrewray_
01:34:22 × djromja quits (2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
01:36:03 × dnlkrgr quits (~dnlkrgr@HSI-KBW-46-223-1-192.hsi.kabel-badenwuerttemberg.de) (Ping timeout: 256 seconds)
01:36:16 × Fischmiep quits (~Fischmiep@134.101.184.201) (Ping timeout: 240 seconds)
01:37:25 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
01:37:46 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:38:49 × xcmw quits (~textual@2601:541:4404:bb5c:5c67:b57d:1563:1c30) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:39:28 <xsperry> andrewray_, results will be different if passed function isn't associative. also, in haskell, if the list is infinite foldl will never turn, while foldr might return (if passed function is lazy in its second argument)
01:39:57 <andrewray_> in this case the fold function is compose (.)
01:40:19 <guest1228> data T = String String | List [T]
01:40:26 <guest1228> List [List [ String "a", String "b"], String "c"] :: T
01:40:44 <guest1228> how to parse "[["a","b"],"c"] to List [List [ String "a", String "b"], String "c"]?
01:40:49 <andrewray_> i was trying to write foldr in js for learning (i'm a noob at haskell) and found his definition weird and i couldn't reproduce the foldr compose behavior
01:41:56 × columbarius quits (~columbari@i5E86B330.versanet.de) (Ping timeout: 240 seconds)
01:42:05 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
01:42:24 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
01:43:00 hackage dejafu 2.4.0.1 - A library for unit-testing concurrent programs. https://hackage.haskell.org/package/dejafu-2.4.0.1 (barrucadu)
01:43:38 <koz_> guest1228: You'd write a parser parseT :: Parser T, which is defined as parseString <|> parseList, and have the definition of parseList recursively call parseT in it somewhere.
01:43:49 <xsperry> > foldr (.) id [(/10) . (/20)] 100
01:43:52 <lambdabot> 0.5
01:43:57 <xsperry> > foldl (.) id [(/10) . (/20)] 100
01:44:00 <lambdabot> 0.5
01:44:23 columbarius joins (~columbari@87.123.198.157)
01:45:09 <guest1228> koz_: I don't know how to write parseList, is it simple ?
01:45:15 xcmw joins (~textual@2601:541:4404:bb5c:5c67:b57d:1563:1c30)
01:45:39 larryba joins (~bc815220@217.29.117.252)
01:45:51 <koz_> guest1228: Write a parser which deals with your separators (basically, chucking them away), then use 'some' or 'many' (depending if zero entries is valid or not) together with parseT.
01:45:54 <andrewray_> thank you xsperry - i was trying to test in ghci and wasn't familiar enough with lamda syntax to get it working
01:45:57 <koz_> It's just like writing a recursive function.
01:46:53 <xsperry> andrewray_, np, but I just composed two functions, (/10) and (/20); lambda syntax would be: (\x -> x / 10)
01:46:59 <larryba> hi. I want to access webcam in a crossplatform way. what should I use?
01:46:59 <guest1228> koz_: but how to write a recursive parser?
01:47:06 <koz_> guest1228: I literally just told you.
01:47:14 <koz_> parseT :: Parser T
01:47:21 <koz_> parseT = parseString <|> parseList
01:47:40 <koz_> Then in the definition of parseList, you use 'some parseT' or 'many parseT' to get your list of entries.
01:47:47 <xsperry> that was a bad example actually, we should work on a list of functions, not a single function
01:47:48 <koz_> Depending on whether zero entries is valid or not.
01:47:52 <nshepperd> koz_: you can you can use Control.Foldl.handles to turn each fold into a Fold (These a b) _, then put the two results together with applicative?
01:47:57 <xsperry> > foldl (.) id [(/10), (/20)] 100
01:47:59 <lambdabot> 0.5
01:48:23 <koz_> nshepperd: https://hackage.haskell.org/package/foldl-1.4.10/docs/Control-Foldl.html#v:handles ?
01:48:26 <larryba> is gtk my best bet? web browser?
01:48:49 <nshepperd> or just prefilter and premap if you're not into lens
01:48:49 <larryba> I would rather avoid using gtk, as I don't plan on making a GUI program
01:49:11 <koz_> nshepperd: Ah, I see!
01:49:12 <ephemient> I think it would be easier to get a Fold (These a b) (c, d) out of it
01:49:27 <koz_> ephemient: Yeah, but converting from that to what I want is easier.
01:49:30 <koz_> s/easier/easy/
01:49:37 <koz_> But yeah, that gives me enough to go on I think.
01:50:04 <nshepperd> or just write a function to do it by manually constructing the step function
01:50:18 <koz_> nshepperd: I tried the manual approach, and GHC had stern words for me.
01:51:08 <nshepperd> heh
01:52:13 <nshepperd> gotta be careful with that existential
01:52:40 <koz_> Two existentials, actually.
01:53:36 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
01:54:16 <nshepperd> it's good though, the existential stops you from making a mistake
01:55:36 <MarcelineVQ> worked in ghci for me, idk what the behavior is supposed to be tho
01:55:52 Twey joins (~twey@unaffiliated/twey)
01:57:14 <MarcelineVQ> koz_: e.g. https://gist.github.com/MarcelineVQ/38be8c9784c419295dd44e1fbbfe4526
01:57:34 <koz_> eh has to be the best lambda variable name.
01:58:14 <MarcelineVQ> it's a pretty good death grips song too
01:58:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
01:58:51 jduhamel joins (~textual@bras-base-toroon4664w-grc-28-174-95-154-190.dsl.bell.ca)
01:59:01 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
01:59:05 justsomeguy joins (~justsomeg@216.186.218.241)
01:59:05 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
01:59:05 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
01:59:13 wei2912 joins (~wei2912@unaffiliated/wei2912)
01:59:17 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
01:59:40 <Kronic> In more regular languages it's possible to declare an enum with a bunch of associated values, e.g. data MyType = A "first" | B " -- is there a nice way to do this in haskell ?
01:59:50 × andrewray quits (43b450b9@c-67-180-80-185.hsd1.ca.comcast.net) (Remote host closed the connection)
01:59:50 × andrewray_ quits (~andrewray@c-67-180-80-185.hsd1.ca.comcast.net) (Quit: andrewray_)
01:59:55 <Kronic> When I try to compile such a thing it recommends DataKinds but I don't think that is what I am looking for
02:00:06 christo joins (~chris@81.96.113.213)
02:00:11 <koz_> Are the values all of the same type?
02:00:47 <Kronic> At this moment, yes, so the "first" thing that I was using as an example there is just a name or something, but I'd eventually want to have a description and so on
02:01:02 <Kronic> So each one will be the same type, just eventually there will be multiple per data constructor
02:01:07 Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
02:03:06 <Kronic> I just realized my example cut off early, data MyType = A "first" | B "second" was what I intended to type, sorry if that was unclear
02:04:25 <MarcelineVQ> koz_: alternatively (\ex => That (f e)) since as it stands we don't really use d/e/f but idk if one's supposed to skip ex
02:04:49 × gmt1772 quits (2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
02:04:57 <koz_> MarcelineVQ, nshepperd: Figured out my problem. Couldn't write it because GHC got confused when I tried to use a helper to define the new 'step' part.
02:05:46 <nshepperd> nice
02:06:43 pavonia joins (~user@unaffiliated/siracusa)
02:07:23 <koz_> If in doubt, inline.
02:10:04 <Kronic> I just wrote a typeclass for what I wanted and got around my issue, but if anyone knows a way to do what I mentioned I'd be interested
02:10:36 <ephemient> Kronic: https://www.irccloud.com/pastebin/aUqK1mlh/
02:11:09 <Kronic> oh, interesting
02:11:58 L29Ah joins (~L29Ah@unaffiliated/l29ah)
02:12:15 <Kronic> Thank you for that!
02:12:25 <ephemient> I mean, I wouldn't choose that as my first option
02:12:52 × acidjnk_new quits (~acidjnk@p200300d0c704e700e5445d72d706d0ae.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
02:13:54 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
02:16:40 toorevitimirp joins (~tooreviti@117.182.181.108)
02:20:37 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds)
02:21:03 tastyuniversalso joins (6eaef2ee@110-174-242-238.static.tpgi.com.au)
02:21:48 <tastyuniversalso> hi, first time using haskell irc; just wondering about a language implementation detail
02:22:08 <tastyuniversalso> is this the right place to ask that sort of thing?
02:22:43 <Lycurgus> for you, prolly
02:23:00 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
02:23:39 <Lycurgus> there are compiler (ghc, et. al) specific channels
02:26:09 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366) (Remote host closed the connection)
02:26:20 Vulfe joins (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366)
02:27:09 <Kronic> ephemient, I realized after implementing the type class that just using a type class was a much better option, but seeing your solution was nice
02:27:54 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366) (Remote host closed the connection)
02:29:45 × Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 240 seconds)
02:34:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:36:48 × p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
02:37:09 p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
02:39:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
02:40:55 × tastyuniversalso quits (6eaef2ee@110-174-242-238.static.tpgi.com.au) (Ping timeout: 245 seconds)
02:42:27 andrewray joins (~andrewray@c-67-180-80-185.hsd1.ca.comcast.net)
02:44:26 × Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
02:45:54 × fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
02:48:23 Vulfe joins (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366)
02:53:01 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366) (Ping timeout: 272 seconds)
02:54:17 × xff0x_ quits (~fox@2001:1a81:52bd:9700:bad9:3cb6:8ce9:4998) (Ping timeout: 272 seconds)
02:54:36 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
02:55:26 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
02:55:39 xff0x_ joins (~fox@2001:1a81:52f4:bf00:417a:5ba1:168b:26db)
02:56:27 jamm joins (~jamm@unaffiliated/jamm)
02:59:55 Bill--Door joins (1f0a965a@31-10-150-90.cgn.dynamic.upc.ch)
03:01:59 <Bill--Door> what is the domain of fmap?
03:02:08 heebo joins (~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net)
03:02:25 <Bill--Door> it's `functor f => f a -> f b`
03:02:32 <Bill--Door> but what is `f b` of `fmap`?
03:02:58 <Bill--Door> s/range/domain/
03:03:00 hackage curryer-rpc 0.1 - Fast, Haskell RPC https://hackage.haskell.org/package/curryer-rpc-0.1 (agentm)
03:03:37 <L29Ah> Bill--Door: it's forall f, b. Functor f => f b
03:04:05 <Bill--Door> i don't think so, (->) associates to right
03:04:30 drbean joins (~drbean@TC210-63-209-75.static.apol.com.tw)
03:05:19 petersen joins (~petersen@redhat/juhp)
03:05:54 <Bill--Door> you say `type = tvar | (->) type type` and range is `range (_ -> r) = r`
03:06:31 <Bill--Door> but `fmap` has type `(a -> b) -> (f a -> f b)`
03:07:52 <Bill--Door> is `f b` the range then?
03:07:52 × theDon quits (~td@muedsl-82-207-238-021.citykom.de) (Ping timeout: 246 seconds)
03:08:30 × amerigo quits (uid331857@gateway/web/irccloud.com/x-rfyjwvbxztwdzuna) (Quit: Connection closed for inactivity)
03:09:53 theDon joins (~td@94.134.91.184)
03:09:55 Vulfe joins (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366)
03:11:29 nbloomf joins (~nbloomf@2601:285:401:7490:61ea:a99b:a612:3905)
03:13:12 cole-h_ joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
03:14:11 xirhtogal joins (~lagothrix@unaffiliated/lagothrix)
03:14:11 lagothrix is now known as Guest49469
03:14:11 × Guest49469 quits (~lagothrix@unaffiliated/lagothrix) (Killed (moon.freenode.net (Nickname regained by services)))
03:14:11 xirhtogal is now known as lagothrix
03:14:27 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366) (Ping timeout: 260 seconds)
03:15:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:15:31 greengrass joins (6eaef2ee@110-174-242-238.static.tpgi.com.au)
03:15:36 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
03:15:49 <greengrass> just a general question, if we define function composition for example by doing this:
03:16:03 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
03:16:14 <greengrass> (.) :: (b -> c) -> (a ->b) -> (a -> c)
03:16:32 <greengrass> (f . g) x = f (g x)
03:16:37 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 246 seconds)
03:17:15 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
03:17:44 <greengrass> how does the compiler know that f refers to (b -> c) and g refers to (a -> b) and x refers to a?
03:18:01 Vulfe joins (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366)
03:19:07 × cole-h_ quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
03:19:56 fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net)
03:20:24 Sheilong joins (uid293653@gateway/web/irccloud.com/x-uqkxymzcpgktgiel)
03:20:25 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:8c3f:4fda:4ef5:759f) (Quit: Leaving)
03:20:59 ph88 joins (~ph88@2a02:8109:9e00:7e5c:8c3f:4fda:4ef5:759f)
03:21:06 minimario joins (2fe3e53b@047-227-229-059.res.spectrum.com)
03:21:10 <minimario> could someone break down for me why `fmap length Just [1,2,3] = (length . Just) [1,2,3]`
03:22:25 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
03:24:55 <greengrass> nvm, I just read that you must use parentheses to use function arguments, I had the impression that parentheses were optional in haskell because of currying
03:26:02 <dsal> greengrass: You don't need parens to use functions. Not sure what you're talking about.
03:26:24 <dsal> :t fmap length Just [1,2,3]
03:26:26 <lambdabot> Int
03:26:38 <greengrass> I'm referring to this dsal
03:26:40 <greengrass> (.) :: (b -> c) -> (a ->b) -> (a -> c)(f . g) x = f (g x)
03:26:50 <greengrass> (f . g) x = f (g x)
03:26:58 <greengrass> how does the compiler know that f refers to (b -> c) and g refers to (a -> b) and x refers to a?
03:27:48 <greengrass> remove the (f . g) x = f (g x) on the first line, typo
03:28:26 <dsal> I'm not entirely sure what's confusing you here. All functions take one argument and return one value. You need parens to disambiguate.
03:29:35 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:29:47 × fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
03:30:47 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
03:31:40 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
03:31:41 <greengrass> hmm okay, that makes sense
03:32:48 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
03:32:59 <Axman6> greengrass: you can rewrite the implementation of (.) a few ways - this is common: f . g = \x -> f (g x). you could also write (.) f g x = f (g x)
03:34:19 <Axman6> another equivalent definition is (.) = \f -> \g -> \x -> f (g x)
03:35:27 <Axman6> Bill--Door: if you want to be pedantic, the range of fmap is (f a -> f b), which is a function with domain f a and range f b
03:36:06 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
03:36:18 × nbloomf quits (~nbloomf@2601:285:401:7490:61ea:a99b:a612:3905) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:36:24 <Bill--Door> what would the pedant's word for `f b` wrt `fmap` be?
03:36:32 <greengrass> ahhh okay, that makes things much much clearer, I'm a beginner so I was used to seeing functions defined in a prefix manner, like the (.) f g x = f (g x) example you gave
03:36:50 <Bill--Door> i think it is right to call `f a -> f b` the range, so i guess i am a pedant
03:37:12 × Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com) (Ping timeout: 260 seconds)
03:37:13 <dsal> greengrass: Yeah. haskell has a lot of things that look like magic at first, but they're not that magical.
03:38:09 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
03:38:25 fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net)
03:38:32 <greengrass> a question though Axman6, how is it that haskell knows that . is infix in my original example? as I understand, putting () around a function turns an infix operator into a prefix one
03:38:34 <Axman6> the very first rule we taught students doing the NICTA/Data61/whatever it's called now FP course is: All functions take exactly one argument
03:38:55 <greengrass> @dsal yep, it's good to know what's actually going on
03:38:55 <lambdabot> Maybe you meant: keal eval
03:39:17 × xcmw quits (~textual@2601:541:4404:bb5c:5c67:b57d:1563:1c30) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:39:40 <Axman6> because it's a function which is defined using characters that can be used for infix functions - if it starts with a lowercase alpha character it is a prefix function, if it is one of the set of characters allowed for infix functions then it will be prefix
03:39:59 <Axman6> it's not that the compiler knows this, it's that this is part of the definition of the haskell language
03:40:24 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
03:40:33 <Bill--Door> which makes the compiler know about it, though?
03:40:34 <greengrass> I see, perfect. So there are some hard coded rules there - good to know
03:41:07 <Bill--Door> mixfix for haskell would be cool
03:41:21 <Axman6> > filter isSymbol [minBound..]
03:41:23 <lambdabot> "$+<=>^`|~\162\163\164\165\166\168\169\172\174\175\176\177\180\184\215\247\7...
03:42:20 <Bill--Door> do you guys use UnicodeSyntax if so do you use special imports to have stuff like ∈ ?
03:42:25 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
03:42:37 <Axman6> > let a %$!&^* b = a *10 + b in 7 %$!&^* 3
03:42:39 <lambdabot> 73
03:43:18 <dibblego> Axman6: it's the same course, just moved out of data61
03:43:24 × heebo quits (~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net) (Remote host closed the connection)
03:43:50 <Axman6> Bill--Door: no, I've never seen a good reason to use unicode syntax - if you want ligatures, use a font which defines them like Fira Code, don't force it on others who have to read your code to also have to do it
03:44:18 <Axman6> dibblego: do we have a better name for it now? It feels wrong calling it the Data61 courese, given how unsupportive the organisation was of us
03:44:24 Stanley00 joins (~stanley00@unaffiliated/stanley00)
03:44:34 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection)
03:44:37 <dibblego> Axman6: System-F FP course
03:44:54 <dibblego> and yes, that's why it's no longer under data61
03:44:57 <Bill--Door> but it is more readable, just less easy to type. if someone reads `x ∈ xs` over ``x `elem` xs`` they'd thank me?
03:44:58 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
03:45:00 × minimario quits (2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
03:45:09 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
03:45:18 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
03:45:23 <fresheyeball> how do I remove everything I have ad hoc installed with nix-env?
03:45:26 <Bill--Door> i get it with overloading but that everyone does lol
03:45:40 nbloomf joins (~nbloomf@2601:285:401:7490:61ea:a99b:a612:3905)
03:45:46 <dsal> fresheyeball: nix-env -q followed by removing all that stuff.
03:46:04 <dsal> > isSymbol ∈
03:46:07 <lambdabot> <hint>:1:11: error:
03:46:07 <lambdabot> <hint>:1:11: error:
03:46:07 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
03:46:11 <dsal> > isSymbol '∈'
03:46:14 <lambdabot> True
03:46:15 <Axman6> Bill--Door: I definitely wouldn't thank you
03:46:36 <fresheyeball> dsal: that is a long list
03:46:38 <dsal> > let (∈) = elem in 3 ∈ [1..5]
03:46:39 <Bill--Door> But you'd read it easier at least
03:46:40 <lambdabot> True
03:46:48 <fresheyeball> I am trying to avoid having to nix-env -e each one, one at a time
03:46:54 <Axman6> > text $ filter isSymbol [minBound..]
03:46:56 <lambdabot> $+<=>^`|~¢£¤¥¦¨©¬®¯°±´¸×÷˂˃˄˅˒˓˔˕˖˗˘˙˚˛˜˝˞˟˥˦˧˨˩˪˫˭˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾˿͵΄΅϶҂֍֎֏...
03:46:57 <dsal> fresheyeball: learn basic shell interaction. :)
03:47:17 <fresheyeball> dsal I thought I did :(
03:47:22 <fresheyeball> also this is the wrong channel
03:47:29 <Axman6> Bill--Door: no, I wouldn't, I've been reading and writing HAskell for over a decade, making code look unfamilliar hurts readability
03:47:45 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection)
03:47:53 × greengrass quits (6eaef2ee@110-174-242-238.static.tpgi.com.au) (Remote host closed the connection)
03:48:44 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
03:48:52 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
03:49:30 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
03:49:39 <Bill--Door> (∈) = elem; → is -> likewise for <- and ⇒ with =>; (∘) = (.)
03:49:52 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection)
03:50:00 <dsal> If you want to write agda, write agda.
03:50:04 <Bill--Door> Pretty much those, oh and ∀∃ is not less familiar ^^
03:50:19 × andrewray quits (~andrewray@c-67-180-80-185.hsd1.ca.comcast.net) (Quit: andrewray)
03:50:59 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
03:51:04 <Bill--Door> It's a tiny "library" to learn, especially thinking about some people dig through all the lens operators etc.
03:51:20 <dolio> You can do whatever you want, but don't pretend you're doing it for other people's sake when they tell you it will do more harm than good.
03:52:18 <dsal> Learning is usually most effective when you try to understand how things work within a culture instead of immediately doing something you think is better.
03:52:19 <Bill--Door> i might be wrong on that one but kind of i'm not
03:52:41 <dsal> You're definitely wrong if you think you're learning something by rejecting what people who've been doing it for a while tell you.
03:53:12 <dsal> I *do* have a file where I have a few defs like `(⊕) = xor` and it made sense there, but it's not a thing I do a lot.
03:53:12 <Bill--Door> it doesn't do harm and introducing syntactic sugar is certainly within the fp and formal methods culture idk
03:53:19 <Axman6> the lens operators are a very consistent DSL, I can look at most lens operators and know what they do, most of them without the type
03:53:29 <dibblego> arguing over strings is doing wrong
03:53:44 <Axman6> renaming common functions only adds a layer of indirection for every other reader of the code
03:54:27 × p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
03:54:46 <Bill--Door> But you're not renaming stuff really, ∈ is elem same name different representation
03:54:48 p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
03:55:38 <Bill--Door> or ∀ is forall, it's consistent too but also more accessible than lens operators
03:55:42 <dsal> Don't confuse people telling you that you're wrong with telling you not to do something wrong. You're free to do whatever you can get to compile, but what you end up with is not necessarily idiomatic.
03:55:53 <Axman6> Bill--Door: how long have you been using Haskell?
03:56:33 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
03:56:56 <Axman6> when given the choice, I will always pick readability of code over cuteness, which is all that using unicode characters for things which have well know names is
03:56:57 <Bill--Door> idk 5 years approx
03:57:51 <Axman6> and you haven't wondered why no one writes code how you're proposing? I've seen exactly one library do it, and it was annoying as hell to try to understand
03:57:57 <Bill--Door> At the same time you're using operators of lens, that's the thing i dont get.
03:58:05 <koz_> Axman6: Which library, out of interest?
03:58:10 <Bill--Door> there's `view` and whatnot, nobody uses those
03:58:11 <Axman6> lens op[erators are consistent
03:58:18 <dsal> I used view today.
03:58:44 <fresheyeball> oh boy
03:58:44 xcmw joins (~textual@2607:f388:1080:2::c2)
03:58:47 <Bill--Door> lens operators can be avoided plus they "rename" other things too
03:59:03 <koz_> dsal: https://www.youtube.com/watch?v=hf1DkBQRQj4
03:59:06 <fresheyeball> did those lenses really make the grade?
03:59:06 <Axman6> . = access one thing, .. = access all the things, ~ set the thing(s), = = set the thing(s) statefullt, % = apply a function to the thing(s), etc.
03:59:18 × fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
03:59:35 fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net)
03:59:50 <Axman6> koz_: I can't remember, it might have actually been hoist-error, which is a great tiny library that more people should know about
04:00:05 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
04:00:15 <dolio> -> and such are actually nicer with ligatures than unicode, I think.
04:00:22 matryoshka joins (~matryoshk@184.75.223.227)
04:00:26 <Bill--Door> i'm not sure why you're explaining lens operators, i never said it's inconsistent
04:00:33 <dsal> I did use one of the fancy haskell fonts for a while.
04:01:00 <Axman6> but the use of α and β instead of a and b added nothing but small jumps of translation when reading it
04:01:05 <dolio> Unicode arrows don't look as nice crammed into a single monospace cell.
04:01:17 <Axman6> dolio: I agree, I really enjoy reading Haskell using Fira Code
04:03:34 <fresheyeball> Fira Code + Kitty + NeoVim is a really nice combo
04:05:37 × electricityZZZZ quits (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
04:05:48 <koz_> fresheyeball: Almost 100% my setup!@
04:06:05 <koz_> (might even be 100% my setup, dunno anymore)
04:06:38 × matryoshka quits (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
04:06:42 <Bill--Door> Spacemacs > NeoVim > Vim lol
04:06:57 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
04:07:22 <fresheyeball> koz_: nice
04:07:30 <Bill--Door> Try using spacemacs, it's really nice! especially when you write stuff like HOL, Coq or Agda
04:07:40 plutoniix joins (~q@ppp-223-24-157-220.revip6.asianet.co.th)
04:07:46 <fresheyeball> I ran Spacemacs for a while, but it's crazy complex, slow, and harder to manage, elisp sucks
04:07:59 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
04:08:08 <fresheyeball> NeoVim with Coc is just easier for me
04:08:09 <Bill--Door> elisp does suck haha but so does vimscript meh
04:08:14 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
04:08:14 <dolio> This isn't the channel for this.
04:08:21 <fresheyeball> fair
04:08:25 <koz_> Yep, this indeed is not #editorwars
04:08:42 <fresheyeball> I agree vimscript sucks
04:08:56 <fresheyeball> but I have to write very little of it, compared to elisp
04:09:03 × nbloomf quits (~nbloomf@2601:285:401:7490:61ea:a99b:a612:3905) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:09:05 <fresheyeball> I have tens of lines of vimscript
04:09:06 <dsal> I think it's reasonably fair to say this fira mode completely mangled my haskell code, though.
04:09:11 <Feuermagier> How can I check if a [[Int]] contains only positive numbers?
04:09:12 <fresheyeball> and had hundreds of elisp
04:09:31 <fresheyeball> dsal: what editor though?
04:09:35 <jle`> Feuermagier: try all :)
04:09:38 <koz_> (#editorwars would basically just be this: https://youtu.be/oesOC7JvcwQ?t=18)
04:09:46 <Bill--Door> Or any
04:09:47 <jle`> > all (>= 0) [5,2,3,4]
04:09:49 <lambdabot> True
04:09:55 <koz_> Hi jle`!
04:09:56 <Bill--Door> De Morgan was a cool dude
04:09:58 <jle`> koz_: hi!
04:10:16 <koz_> functor-combinators is helping me find lawlessness in my latest passion project.
04:10:24 <jle`> should i be scared
04:10:27 <koz_> It. Is. The law!
04:10:31 <koz_> Uhh, maybe?
04:10:31 <fresheyeball> Ali G! lol
04:10:41 <koz_> fresheyeball: I apologize for nothing. :P
04:10:52 <fresheyeball> Well editor aside
04:10:58 <koz_> Except in this case, it'd be s/East Side/vim/ and s/West Side/emacs/
04:10:58 <VarikValefor[m]> Regarding editors: Remember that different editors are best suited to different men -- even `nano` has a place.
04:11:00 <Feuermagier> jle`, how do I get the list flat?
04:11:03 <fresheyeball> Fira Code <3
04:11:04 <dsal> > and . fmap (all (> 0)) $ [[1, 2], [3, 5]]
04:11:06 <jle`> you don't need the list flat
04:11:06 <lambdabot> True
04:11:08 <dsal> Or you could fold it.
04:11:11 <jle`> Feuermagier: you can nest the all
04:11:12 <fresheyeball> and with a terminal with proper font rendering like kitty
04:11:20 <jle`> > all (all (>= 0)) [[1,2],[4,5]]
04:11:20 <fresheyeball> I even get Fira Code here in IRC
04:11:22 <lambdabot> True
04:11:28 <fresheyeball> it's nice
04:11:29 <jle`> you want to chekc if all of the inner lists are positive
04:11:31 <Feuermagier> oh, nice
04:11:33 <dsal> :t all.all
04:11:35 <lambdabot> (Foldable t1, Foldable t2) => (a -> Bool) -> t1 (t2 a) -> Bool
04:11:44 <Bill--Door> i once was at a haskell meetup and the presenter used `nano` !?
04:11:52 <Kronic> I tried emacs for a time, but it just doesn't work well on anything except linux usually. I've heard of people getting it to work without much bother on Windows or MacOs. I am not one of those people. Neovim has treated me very well though
04:11:55 <koz_> :t all . concatMap
04:11:55 <fresheyeball> Mind blown
04:11:56 <lambdabot> error:
04:11:56 <lambdabot> • Couldn't match type ‘[b]’ with ‘Bool’
04:11:56 <lambdabot> Expected type: (a -> [b]) -> t1 a -> Bool
04:11:59 <koz_> Argh.
04:12:19 <fresheyeball> :t \f -> all f . concatMap
04:12:20 <lambdabot> (Foldable t, Foldable ((->) (t a))) => ([b] -> Bool) -> (a -> [b]) -> Bool
04:12:25 <jle`> Bill--Door: maybe the safest bet for a live presentation
04:12:26 <dsal> Kronic: I've been using plain emacs on macos x for at least a decade.
04:12:27 <Bill--Door> next time i'll be using `ed` fuck it
04:12:34 <koz_> @pl \f -> all f . concatMap
04:12:34 <lambdabot> (. (=<<)) . all
04:12:37 <koz_> PERFECT
04:12:43 <fresheyeball> The default editor is `ed`
04:12:58 <Bill--Door> jle`: I hope so, please no one use nano for real projects
04:13:14 <dsal> I had a friend who would write production code with cat.
04:13:30 <jle`> yeah, in a live presentation, probably your greatest priority is not doing something that could look embarassing
04:13:33 <Bill--Door> cat > Main.hs <<EOF
04:13:44 <ephemient> GNU nano's not *that* bad. smart indentation, syntax highlighting
04:13:48 <VarikValefor[m]> Bill--Door: nano is a bit lame but generally adequate.
04:13:58 <Kronic> I've no doubt in my mind that what you say is true. Plenty of stories online about it working well, I just found it to be a very annoying process to get working the way I liked when neovim just worked out of the box for me
04:14:18 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
04:14:49 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
04:14:51 <ephemient> I'd definitely feel the lack of vim's text operators, but I have coworkers who used nano for real coding work just fine
04:15:42 <ephemient> that being said, I think vim's/emacs' undo tree would probably be great for a presentation :D
04:16:16 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:16:37 <Bill--Door> idk if anyone is familiar with Isabelle but that IDE (apart from missing vim-bindings) is a dream, that should be standard ^^
04:16:57 <Kronic> Honestly I just like that if I open up vim by default it's fairly nice even without a .vimrc, but with emacs I either configure the hell out of it or don't use it...
04:17:17 nbloomf joins (~nbloomf@2601:285:401:7490:61ea:a99b:a612:3905)
04:17:41 <Bill--Door> with emacs you just `git clone ??? ~/.emacs.d`, start it, answer a few simple questions and are set
04:18:02 <Bill--Door> ??? is some link with syl... that points to spacemacs ;)
04:18:29 <ephemient> I've never seriously used emacs, but I have used jove for a while. pretty similar to emacs out of the box, usable without customization
04:18:38 <Kronic> To each their own I guess, I used vim for a time, then spacemacs and eventually my own custom emacs for sometime before settling on neovim, and I'm fairly happy with it
04:19:01 <dsal> ephemient: I used vi/vim only for about 16 years, then started using emacs because it did stuff I couldn't do in vim.
04:19:16 <Bill--Door> i'm surprised no one use visualstudio or sth. it seems popular for haskell
04:19:37 <Bill--Door> i think it has the best tooling with things like refactoring etc. or is this not true?
04:19:52 <Kronic> you mean vscode?
04:20:07 <Bill--Door> yeah, that's the one
04:20:18 <Kronic> Plenty of people use it
04:20:28 <Kronic> Probably more than all of the others combined
04:20:37 × solonarv quits (~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr) (Ping timeout: 264 seconds)
04:20:59 <ephemient> vim-coc is basically vscode's language plugins shimmed into vim. going the other way, there's a vim emulator for vscode
04:21:03 × fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
04:21:25 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-xvqhvieldsbxdmla)
04:22:10 Tario joins (~Tario@201.192.165.173)
04:22:10 <VarikValefor[m]> ephemient: However, one disadvantage of using vim-coc is potentially needing to pronounce "vim-coc".
04:22:33 <MarcelineVQ> obby
04:25:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:30:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
04:32:45 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
04:35:18 × plutoniix quits (~q@ppp-223-24-157-220.revip6.asianet.co.th) (Read error: Connection reset by peer)
04:35:32 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
04:38:06 jvac joins (457376f8@ool-457376f8.dyn.optonline.net)
04:39:24 jvac parts (457376f8@ool-457376f8.dyn.optonline.net) ()
04:40:51 <Feuermagier> i want to filter a list of tuples by multiple conditions ( fst > 0 && snd > 0) - how do i do that with "filter" ?
04:41:51 <Axman6> use a lambda
04:42:10 <Axman6> > filter (\
04:42:12 <lambdabot> <hint>:1:10: error:
04:42:12 <lambdabot> <hint>:1:10: error:
04:42:12 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
04:42:32 <Bill--Door> Or `liftA2 (&&)` but don't
04:42:36 × tomku quits (~tomku@unaffiliated/tomku) (Ping timeout: 240 seconds)
04:42:45 <Axman6> > filter (\(a,b) -> a > 0 && b > 0) $ liftA2 (,) [-2..2] [-2..2]
04:42:47 <lambdabot> [(1,1),(1,2),(2,1),(2,2)]
04:42:57 <Feuermagier> oh, that's a nice syntaxx. thx
04:43:07 <jle`> the power of the lambda
04:43:12 <jle`> not even java could resist D:
04:43:18 tomku joins (~tomku@unaffiliated/tomku)
04:43:31 <dsal> python resisted
04:43:58 <Bill--Door> Guido is weird
04:45:10 <Bill--Door> So apparently people unfamiliar with Haskell are put off by the `\var ->` syntax as backslashes are kind of special in a lot of contexts
04:45:10 <Feuermagier> the biggest downside of python are the horrible map functions
04:45:42 <Feuermagier> luckily I'm comfortable with map, filter etc. in other languages
04:46:03 <dsal> The thing that sucks about haskell is that they put f in front of map.
04:46:39 <VarikValefor[m]> Feuermagier: Python is the biggest downside of Python.
04:46:39 <Bill--Door> I second that
04:47:14 <Bill--Door> Haskell puts a lot of emphasis on llists using it a bit too much maybe
04:48:06 <Feuermagier> Python sometimes gets stuff done in ways that shouldn't work. It does however get stuff done
04:49:06 <Bill--Door> Python lets you run with syntax errors which is kind of stupid if you think about it
04:49:34 <Bill--Door> I will never understand why that's desired by anyone
04:49:57 <dsal> People like partially defined programs.
04:50:06 <Feuermagier> oh, yeah. and no static typing. i mean, it's fine that it runs actually, but your ide has to pick that one up. it's not compiled afterall, so not the languages fault
04:51:09 <dsal> Some people believe static typing is limiting.
04:51:15 <Feuermagier> ._.
04:51:33 <dsal> Really bad type systems will do that to you.
04:51:47 <Feuermagier> is there a statically typed version of python?
04:51:56 <Feuermagier> i'd like to try something like that
04:52:15 <Bill--Door> Maybe Coconut? I don't remember
04:53:25 <ephemient> Cython is typed (although `object` is a type)
04:53:26 <Bill--Door> no, it seems like it doesn't do type checking/inference
04:54:40 <Bill--Door> Can cython be compiled to asm?
04:55:21 <ephemient> yes, although it still used libpython.so
04:55:34 <Bill--Door> It all seems backwards, Python the language is not typed but the intermediate language is. whereas usually you want the front-end typed and then do type erasure oof
04:55:47 <Bill--Door> oh okay, i thought it's just bytecode
04:56:14 × sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 256 seconds)
04:56:24 <ephemient> (just for clarity, cython != cpython. the naming can be confusing)
04:56:45 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:f14e:453d:14dc:75b2:51ff) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:01:24 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
05:03:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:06:14 fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net)
05:07:34 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds)
05:08:11 lakshayg parts (~user@76.14.20.26) ("Killed buffer")
05:08:30 hackage dbus 1.2.17 - A client library for the D-Bus IPC system. https://hackage.haskell.org/package/dbus-1.2.17 (blaze)
05:08:37 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds)
05:09:25 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
05:10:19 andrewray joins (~andrewray@c-67-180-80-185.hsd1.ca.comcast.net)
05:10:26 × andrewray quits (~andrewray@c-67-180-80-185.hsd1.ca.comcast.net) (Client Quit)
05:13:26 ADG1089__ joins (~aditya@223.235.213.117)
05:13:45 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Ping timeout: 240 seconds)
05:17:27 × elsimio1 quits (~elsimio@185.204.1.185) (Remote host closed the connection)
05:18:15 guest122` joins (~user@49.5.6.87)
05:18:15 × guest1228 quits (~user@49.5.6.87) (Read error: Connection reset by peer)
05:20:33 × fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
05:21:03 plutoniix joins (~q@ppp-223-24-157-220.revip6.asianet.co.th)
05:23:13 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
05:23:22 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Read error: Connection reset by peer)
05:23:49 iqubic joins (~user@2601:602:9500:4870:496b:9eb3:62a0:bc7)
05:24:14 DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
05:24:16 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:24:32 <iqubic> @where cs
05:24:32 <lambdabot> I know nothing about cs.
05:25:11 <iqubic> Wasn't there a github page that has all the course material for some CS 200 level program based around haskell?
05:26:44 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:f14e:453d:14dc:75b2:51ff)
05:27:13 × ADG1089__ quits (~aditya@223.235.213.117) (Ping timeout: 264 seconds)
05:27:33 iqubic` joins (~user@c-67-171-38-72.hsd1.wa.comcast.net)
05:27:42 × iqubic` quits (~user@c-67-171-38-72.hsd1.wa.comcast.net) (Remote host closed the connection)
05:28:03 iqubic` joins (~user@c-67-171-38-72.hsd1.wa.comcast.net)
05:28:13 × iqubic` quits (~user@c-67-171-38-72.hsd1.wa.comcast.net) (Remote host closed the connection)
05:29:40 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
05:29:43 iqubic` joins (~user@c-67-171-38-72.hsd1.wa.comcast.net)
05:29:47 × iqubic quits (~user@2601:602:9500:4870:496b:9eb3:62a0:bc7) (Ping timeout: 260 seconds)
05:29:48 × iqubic` quits (~user@c-67-171-38-72.hsd1.wa.comcast.net) (Remote host closed the connection)
05:31:32 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
05:32:33 × landonf quits (~landonf@mac68k.info) (Excess Flood)
05:33:59 × p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
05:34:01 × guest122` quits (~user@49.5.6.87) (Read error: Connection reset by peer)
05:34:18 p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
05:34:19 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:cad:d538:d600:c2e8)
05:34:23 landonf joins (landonf@mac68k.info)
05:34:49 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
05:35:18 iqubic joins (~user@c-67-171-38-72.hsd1.wa.comcast.net)
05:35:32 <iqubic> @where CS
05:35:32 <lambdabot> I know nothing about cs.
05:36:03 <iqubic> I thought lambdabot would know where the CS github thing is that I'm looking for.
05:36:14 <iqubic> I feel like it was 2xx or something.
05:37:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:f193:2ce3:b8ae:6366) (Ping timeout: 264 seconds)
05:37:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
05:37:58 <siraben> iqubic: do you remember any of the topics?
05:38:00 <siraben> i've seen a few here and there
05:38:05 <iqubic> No. Not really.
05:38:09 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:cad:d538:d600:c2e8) (Remote host closed the connection)
05:38:23 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
05:38:30 × bisickcor quits (~username@117.200.7.119) (Ping timeout: 256 seconds)
05:40:20 bisickcor joins (~username@117.200.7.119)
05:41:00 hackage tasty-focus 1.0.0 - Simple focus mechanism for tasty https://hackage.haskell.org/package/tasty-focus-1.0.0 (jonascarpay)
05:44:06 × jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:45:52 teardown joins (~user@gateway/tor-sasl/mrush)
05:47:18 × xcmw quits (~textual@2607:f388:1080:2::c2) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:50:41 wez joins (~wez@185.103.96.147)
05:52:41 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:53:44 <koz_> Oh no, I missed a chance to trot out argumentum ad serpentum.
05:53:56 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 240 seconds)
05:55:39 jamm joins (~jamm@unaffiliated/jamm)
05:57:09 × jchia quits (~jchia@58.32.71.163) (Quit: Leaving.)
05:57:29 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
05:58:29 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:58:57 jchia joins (~jchia@45.32.62.73)
05:59:41 Vulfe joins (~vulfe@2600:1702:31b0:34e0:cad:d538:d600:c2e8)
05:59:48 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-uqkxymzcpgktgiel) ()
06:00:48 × jchia quits (~jchia@45.32.62.73) (Remote host closed the connection)
06:00:55 \2E0KNO joins (~retlo@172.245.134.89)
06:01:00 jchia joins (~jchia@45.32.62.73)
06:01:48 <\2E0KNO> HASKELL FOR dummies i mean ham radio operators ALIENABDUCT me
06:02:20 <\2E0KNO> i made a recursive function in python one time, it was fun
06:02:50 <\2E0KNO> i skipped all but 4 of my haskell lectures, but it was one of my favourites
06:03:18 <Bill--Door> crank up that recursionlimit
06:03:21 \2E0KNO inserts another coin
06:03:37 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
06:03:57 <\2E0KNO> ok so you have a door?
06:04:09 <\2E0KNO> i think we should make a haskell irc bot
06:04:16 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:cad:d538:d600:c2e8) (Ping timeout: 258 seconds)
06:04:22 <Bill--Door> ?
06:04:27 ADG1089__ joins (~aditya@223.235.213.117)
06:04:37 Vulfe joins (~vulfe@2600:1702:31b0:34e0:d993:6671:7a28:c78a)
06:04:46 <\2E0KNO> irc bot is a football and it joins chans and says where it came from and asks where to go
06:05:09 <\2E0KNO> you could put a bbs on it
06:05:23 <\2E0KNO> and have a whole radio backend
06:05:58 <\2E0KNO> is there a haskell standard library
06:06:20 <\2E0KNO> how often should i wash my hair
06:07:20 × jchia quits (~jchia@45.32.62.73) (Remote host closed the connection)
06:07:27 <\2E0KNO> sorry i was not trying to depersonalise you bill, i was following the concept that you were gaslighting equiped?
06:07:45 × leafiest quits (~leafiest@c-73-118-152-9.hsd1.wa.comcast.net) (Ping timeout: 240 seconds)
06:08:14 <\2E0KNO> im trying to figure out which language im least allergic to
06:08:26 jchia joins (~jchia@58.32.71.163)
06:08:28 <Bill--Door> i still don't understand but ok
06:08:37 <\2E0KNO> i was trying to be funny
06:09:25 <\2E0KNO> for what its worth i was under the impression that you communicated somehow through twists in language and join part action
06:09:27 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:d993:6671:7a28:c78a) (Ping timeout: 260 seconds)
06:10:04 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:10:20 <Bill--Door> but i don't grasp yours
06:11:03 <\2E0KNO> i dont know if i said much directly to you other than sorry i didnt say hello directly to you (thats what i meant)
06:12:22 <\2E0KNO> so there something about building a door to keep the universe out and a gueniune effort to figure out with the best intent what the best strategy is to power the universe and stop it expanding
06:12:27 <\2E0KNO> so we can live forever
06:13:20 \2E0KNO phones the manager
06:13:47 <\2E0KNO> hello id like to COMPLIMENT your responsiveness at 6am
06:14:59 <\2E0KNO> no ok but when was it for? are you "millions of miles up" also?
06:15:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
06:16:36 <\2E0KNO> there is just code, well i understand code as lots of tasks and their owners and you can learn a function back to day 0
06:17:18 × otulp quits (~otulp@ti0187q162-6038.bb.online.no) (Ping timeout: 258 seconds)
06:18:13 × shailangsa quits (~shailangs@host86-186-196-229.range86-186.btcentralplus.com) (Ping timeout: 264 seconds)
06:18:27 <\2E0KNO> i feel like i should have mentioned that when i code i am connected to "god" (the system of centralising everything that we want to) and its like passing me random solutions that somehow fit my project until im done
06:19:08 <\2E0KNO> many developers and for gpl and for secretist
06:19:18 <\2E0KNO> for myth and ledgend
06:19:26 <\2E0KNO> over
06:19:54 <Bill--Door> which is it now?
06:20:07 <Bill--Door> your least favourite lang?
06:20:19 <\2E0KNO> i woke up bill cakes
06:20:29 leafiest joins (~leafiest@c-73-118-152-9.hsd1.wa.comcast.net)
06:20:47 <\2E0KNO> i mean i focus on open efforts
06:21:02 <\2E0KNO> i feel the structure around them is what id rather pass on
06:22:17 <\2E0KNO> i feel not quite crazy stong but with a hint of the species desperation that open computing really deserves to be showcased as what we are working towards in the wider system
06:23:03 × Bill--Door quits (1f0a965a@31-10-150-90.cgn.dynamic.upc.ch) (Remote host closed the connection)
06:23:04 <\2E0KNO> and that if i haddnt NEEDED TO WORK i would have not slept through the lectures
06:24:55 <\2E0KNO> i seriously doubt the silence
06:25:51 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
06:26:26 <\2E0KNO> i think gcp goes up to 256gb ram on their vms
06:26:36 × plutoniix quits (~q@ppp-223-24-157-220.revip6.asianet.co.th) (Ping timeout: 240 seconds)
06:27:05 × leafiest quits (~leafiest@c-73-118-152-9.hsd1.wa.comcast.net) (Ping timeout: 240 seconds)
06:27:40 <\2E0KNO> over
06:28:03 <\2E0KNO> G8 Bloomin Lousy Signal station come it
06:28:33 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
06:28:57 leafiest joins (~leafiest@c-73-118-152-9.hsd1.wa.comcast.net)
06:32:52 × Kronic quits (~Kronic___@84.203.96.46) (Quit: Leaving)
06:36:30 hackage texmath 0.12.1 - Conversion between formats used to represent mathematics. https://hackage.haskell.org/package/texmath-0.12.1 (JohnMacFarlane)
06:38:29 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
06:39:25 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:41:32 × leafiest quits (~leafiest@c-73-118-152-9.hsd1.wa.comcast.net) (Ping timeout: 260 seconds)
06:42:38 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:42:46 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
06:43:15 leafiest joins (~leafiest@c-73-118-152-9.hsd1.wa.comcast.net)
06:43:54 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
06:46:21 Vulfe joins (~vulfe@2600:1702:31b0:34e0:d993:6671:7a28:c78a)
06:48:52 × larryba quits (~bc815220@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
06:50:52 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:d993:6671:7a28:c78a) (Ping timeout: 260 seconds)
06:53:19 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
06:54:13 × wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
06:54:37 × nbloomf quits (~nbloomf@2601:285:401:7490:61ea:a99b:a612:3905) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:56:56 sgibber2018 joins (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
07:01:58 × heatsink quits (~heatsink@2600:1700:bef1:5e10:2d7a:8bca:7799:994c) (Remote host closed the connection)
07:02:59 hackage tasty-focus 1.0.1 - Simple focus mechanism for tasty https://hackage.haskell.org/package/tasty-focus-1.0.1 (jonascarpay)
07:09:32 × ADG1089__ quits (~aditya@223.235.213.117) (Ping timeout: 260 seconds)
07:09:58 × revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 256 seconds)
07:10:34 plutoniix joins (~q@ppp-223-24-157-220.revip6.asianet.co.th)
07:10:58 ADG1089__ joins (~aditya@223.235.213.117)
07:11:00 darjeeling_ joins (~darjeelin@122.245.217.190)
07:11:21 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 265 seconds)
07:16:09 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:16:35 × Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection)
07:16:59 Mikagami joins (~MOSCOS@122.54.107.175)
07:17:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
07:17:45 × jokester quits (~mono@unaffiliated/jokester) (Ping timeout: 272 seconds)
07:17:56 × jduhamel quits (~textual@bras-base-toroon4664w-grc-28-174-95-154-190.dsl.bell.ca) (Ping timeout: 240 seconds)
07:18:02 Unhammer parts (~Unhammer@gateway/tor-sasl/unhammer) ("WeeChat 1.6")
07:18:23 heatsink joins (~heatsink@2600:1700:bef1:5e10:2d7a:8bca:7799:994c)
07:18:43 amerigo joins (uid331857@gateway/web/irccloud.com/x-rbqzmdhwqzmfsuwn)
07:23:31 × sgibber2018 quits (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
07:26:11 qwerty joins (~tema@217.118.92.215)
07:26:35 × sfvm quits (~sfvm@37.228.215.77) (Remote host closed the connection)
07:38:09 × drbean quits (~drbean@TC210-63-209-75.static.apol.com.tw) (Ping timeout: 256 seconds)
07:38:37 × darjeeling_ quits (~darjeelin@122.245.217.190) (Ping timeout: 264 seconds)
07:42:42 darjeeling_ joins (~darjeelin@122.245.217.190)
07:45:00 × hamishmack quits (sid389057@gateway/web/irccloud.com/x-elzdgtdyewdrizjq) (Ping timeout: 246 seconds)
07:45:33 × amerigo quits (uid331857@gateway/web/irccloud.com/x-rbqzmdhwqzmfsuwn) (Read error: Connection reset by peer)
07:45:38 × joel135 quits (sid136450@gateway/web/irccloud.com/x-dkytwygqyubmegrp) (Ping timeout: 264 seconds)
07:45:41 × lexi-lambda quits (sid92601@gateway/web/irccloud.com/x-fanmypdregedhpxu) (Ping timeout: 246 seconds)
07:45:43 Vulfe joins (~vulfe@2600:1702:31b0:34e0:d993:6671:7a28:c78a)
07:45:58 × simony quits (sid226116@gateway/web/irccloud.com/x-keowsotekzgqfqdf) (Ping timeout: 260 seconds)
07:45:58 × dsturnbull quits (sid347899@gateway/web/irccloud.com/x-xmzhvaiswgjcomqa) (Ping timeout: 260 seconds)
07:46:14 × rann quits (sid175221@gateway/web/irccloud.com/x-alttaaqufafgtfty) (Ping timeout: 264 seconds)
07:46:22 × nick_h quits (sid319833@gateway/web/irccloud.com/x-putfzyymjdapnmta) (Ping timeout: 272 seconds)
07:46:50 × adius quits (sid321344@gateway/web/irccloud.com/x-qiqazzoasoeaazyv) (Ping timeout: 264 seconds)
07:46:53 × dmj` quits (sid72307@gateway/web/irccloud.com/x-bxoewkcbisfzckva) (Ping timeout: 272 seconds)
07:47:00 hamishmack joins (sid389057@gateway/web/irccloud.com/x-waeuuwgsuejagktr)
07:47:07 joel135 joins (sid136450@gateway/web/irccloud.com/x-jrkdlopfrcmkshuh)
07:47:08 × PoliticsII______ quits (sid193551@gateway/web/irccloud.com/x-ifhtanwghthhvmbn) (Ping timeout: 260 seconds)
07:47:18 × mpickering quits (sid78412@gateway/web/irccloud.com/x-dvjojogbwqwmlqqk) (Ping timeout: 268 seconds)
07:47:18 dsturnbull joins (sid347899@gateway/web/irccloud.com/x-vorxxyotrrrkmyad)
07:47:38 × Firedancer quits (sid336191@gateway/web/irccloud.com/x-uafmnbgxlsfyadoa) (Ping timeout: 272 seconds)
07:47:39 lexi-lambda joins (sid92601@gateway/web/irccloud.com/x-wazvuheyipjhlewf)
07:47:43 × benl23 quits (sid284234@gateway/web/irccloud.com/x-hgqgnkygwwcwddwc) (Ping timeout: 260 seconds)
07:47:59 amerigo joins (uid331857@gateway/web/irccloud.com/x-qydxjmmxyizatjlm)
07:48:03 nick_h joins (sid319833@gateway/web/irccloud.com/x-dsbxmwfwkhbwopya)
07:48:04 adius joins (sid321344@gateway/web/irccloud.com/x-rpilxswwqsdjkidt)
07:48:04 simony joins (sid226116@gateway/web/irccloud.com/x-iftxdytnixkwmkyg)
07:48:15 PoliticsII______ joins (sid193551@gateway/web/irccloud.com/x-gnzqtdutccexjywp)
07:48:21 sgibber2018 joins (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
07:48:30 rann joins (sid175221@gateway/web/irccloud.com/x-mnfqxkvscoribbyj)
07:48:34 benl23 joins (sid284234@gateway/web/irccloud.com/x-thfjynaiimpinank)
07:48:54 Firedancer joins (sid336191@gateway/web/irccloud.com/x-xkgtkehsqkpbtolh)
07:49:08 mpickering joins (sid78412@gateway/web/irccloud.com/x-lauiaeelhqxoldaq)
07:49:54 dmj` joins (sid72307@gateway/web/irccloud.com/x-vmhiwakulamkftfj)
07:50:26 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:d993:6671:7a28:c78a) (Ping timeout: 264 seconds)
07:51:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:54:34 × thunderrd quits (~thunderrd@183.182.111.131) (Remote host closed the connection)
07:56:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
07:58:03 thunderrd joins (~thunderrd@183.182.111.131)
07:58:51 × danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 3.0)
08:00:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:02:55 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
08:03:37 jamm joins (~jamm@unaffiliated/jamm)
08:03:39 drbean joins (~drbean@TC210-63-209-28.static.apol.com.tw)
08:04:28 <siraben> dsal: Feuermagier: Bill--Door: re: python, it is possible to defer type errors to runtime in haskell :3
08:04:43 <siraben> but i think your programs have to at least parse, heh
08:08:27 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
08:10:03 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
08:12:14 rmk236 joins (~lcampos@2a02:908:3616:b100:c88b:5206:b6cb:7b2b)
08:13:13 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
08:15:39 <pavonia> The day when you'll be able to also defer parse errors to runtime, GHC will be perfect :3
08:16:21 xiinotulp joins (~q@ppp-223-24-168-35.revip6.asianet.co.th)
08:19:55 × plutoniix quits (~q@ppp-223-24-157-220.revip6.asianet.co.th) (Read error: Connection reset by peer)
08:20:03 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
08:21:33 × heatsink quits (~heatsink@2600:1700:bef1:5e10:2d7a:8bca:7799:994c) (Remote host closed the connection)
08:26:44 <dminuoso> pavonia: Switch GHC out for GHCi and you have your wish!
08:26:56 <dminuoso> ;)
08:27:25 Vulfe joins (~vulfe@2600:1702:31b0:34e0:d993:6671:7a28:c78a)
08:30:11 <pie_> I might need to do something to clean up symbols in .so outputs of inline-c-cpp , because afaict, extraneous undefined symbols are getting propagated and its making linking fail, so i need to filter them, how do change the linker parameters or something?
08:30:57 kritzefitz joins (~kritzefit@fw-front.credativ.com)
08:31:47 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:d993:6671:7a28:c78a) (Ping timeout: 260 seconds)
08:40:23 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
08:41:10 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:f14e:453d:14dc:75b2:51ff) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:42:26 × wez quits (~wez@185.103.96.147) (Remote host closed the connection)
08:42:52 × drbean quits (~drbean@TC210-63-209-28.static.apol.com.tw) (Ping timeout: 260 seconds)
08:43:11 × p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Remote host closed the connection)
08:43:30 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
08:43:37 shad0w_ joins (~shad0w_@160.202.36.204)
08:47:26 Torro joins (Torro@gateway/vpn/protonvpn/torro)
08:47:42 jamm joins (~jamm@unaffiliated/jamm)
08:51:12 × rmk236 quits (~lcampos@2a02:908:3616:b100:c88b:5206:b6cb:7b2b) (Quit: Leaving.)
08:53:37 rmk236 joins (~lcampos@ip-37-201-211-236.hsi13.unitymediagroup.de)
08:54:08 × phasespace_ quits (~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 272 seconds)
08:54:14 × kadobanana quits (~mud@unaffiliated/kadoban) (Ping timeout: 260 seconds)
09:00:06 × itai33[m] quits (itai33matr@gateway/shell/matrix.org/x-lwyfghxaoeqylvet) (Quit: Idle for 30+ days)
09:03:31 heatsink joins (~heatsink@2600:1700:bef1:5e10:cb5:3651:6137:55b1)
09:03:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
09:07:57 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cb5:3651:6137:55b1) (Ping timeout: 260 seconds)
09:10:49 axeman- joins (~axeman_@2a02:8109:86c0:1f98:19e2:c57e:a74:847c)
09:14:59 bitmagie joins (~Thunderbi@200116b80610420041d63e606b7455dd.dip.versatel-1u1.de)
09:15:43 Vulfe joins (~vulfe@2600:1702:31b0:34e0:3532:4ca3:c904:b55b)
09:16:40 × rmk236 quits (~lcampos@ip-37-201-211-236.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
09:17:25 × axeman- quits (~axeman_@2a02:8109:86c0:1f98:19e2:c57e:a74:847c) (Remote host closed the connection)
09:17:29 loki` joins (~user@2409:4043:285:99a3:cb07:ca73:b530:2de8)
09:19:56 loki` parts (~user@2409:4043:285:99a3:cb07:ca73:b530:2de8) ()
09:20:12 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:3532:4ca3:c904:b55b) (Ping timeout: 260 seconds)
09:21:07 rmk236 joins (~lcampos@2a02:908:3616:b100:c88b:5206:b6cb:7b2b)
09:21:37 avdb joins (~avdb@gateway/tor-sasl/avdb)
09:24:50 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
09:26:02 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
09:27:49 × hololeap quits (~hololeap@unaffiliated/hololeap) (Ping timeout: 268 seconds)
09:28:04 guest122` joins (~user@49.5.6.87)
09:29:28 <guest122`> koz_: I tried what you said, define parseT with parseList, then define parseList with parseT, and that cause definition issue, parseList is not resloved in parseT because parseT is not defined yet
09:29:44 <koz_> guest122`: Show me in a pastebin?
09:32:11 <guest122`> koz_: https://paste.ubuntu.com/p/536jRCg45S/
09:32:39 <koz_> And the error?
09:33:20 axeman- joins (~axeman_@ip5f5af023.dynamic.kabel-deutschland.de)
09:33:29 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
09:33:35 <guest122`> koz_: https://paste.ubuntu.com/p/Jy5qQCQTHM/
09:33:51 <koz_> Are you using GHCi?
09:33:59 <guest122`> yes
09:34:06 <koz_> That's 100% of your problem.
09:34:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:34:08 <koz_> Stop doing that.
09:34:18 <koz_> If you put that in a file and compiled it, it'd work fine.
09:34:31 <guest122`> ok, I'll try it
09:34:42 <mniip> you can use :{ multiple lines :}
09:34:43 <mniip> in ghc
09:34:47 <mniip> i
09:34:55 <guest122`> mniip: i do
09:35:08 <guest122`> koz_: you think that parseList is ok?
09:35:29 <koz_> Do your lists have separators between items?
09:35:38 <koz_> Because your code doesn't deal with any as far as I can see.
09:35:45 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
09:35:52 <koz_> That's my biggest question mark.
09:39:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
09:40:11 × noCheese quits (~nocheese@unaffiliated/nocheese) (Quit: I'm out!)
09:40:24 <mniip> jle`, your double tape problem gave me a sequence of thoughts
09:40:35 <mniip> which led me to ponder about the homotopy theory of zippers
09:40:36 <guest122`> koz_: https://paste.ubuntu.com/p/prFCwXfwkS/
09:40:37 × xff0x_ quits (~fox@2001:1a81:52f4:bf00:417a:5ba1:168b:26db) (Ping timeout: 260 seconds)
09:41:02 <koz_> guest122`: That's because line 21 is incorrect.
09:41:09 <koz_> Think of the type of l.
09:41:18 <koz_> And then consider what that would imply the type of [l] to be.
09:41:24 <guest122`> use endBy?
09:41:26 xff0x_ joins (~fox@2001:1a81:52f4:bf00:af40:b425:ff29:4259)
09:41:40 <guest122`> and return List l?
09:42:02 <koz_> The second is the thing that will make that error go away.
09:42:19 <koz_> I don't know how endBy relates to this.
09:42:42 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
09:43:32 noCheese joins (~nocheese@gw2.aibor.de)
09:43:32 × noCheese quits (~nocheese@gw2.aibor.de) (Changing host)
09:43:32 noCheese joins (~nocheese@unaffiliated/nocheese)
09:44:12 <guest122`> https://paste.ubuntu.com/p/MqbTRrpRpK/
09:45:03 <guest122`> koz_: https://paste.ubuntu.com/p/zssvk5qxSK/
09:45:10 <koz_> guest122`: Look up how to parse separated lists. It's damn near 11pm for me, and I'm afraid I can't instruct you in something like this.
09:45:30 <koz_> I speak as someone who is _paid money_ to debug parsers.
09:46:08 <guest122`> koz_: good night
09:49:21 kuribas joins (~user@ptr-25vy0i8j674kz2jm8gq.18120a2.ip6.access.telenet.be)
09:49:43 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-nroyaxgjzhgnqfic) (Quit: Connection closed for inactivity)
09:50:56 × plateau quits (~plateau@51.194.80.91) (Ping timeout: 240 seconds)
09:53:04 <tomsmeding> guest122`: there is sepBy
09:53:16 <tomsmeding> try using that in parseList
09:53:57 <tomsmeding> at the moment, parseList just tries to read multiple things after each other and knows nothing about the meaning of ',' characters
09:58:44 coppro joins (~coppro@185.204.1.185)
09:59:09 <guest122`> tomsmeding: but I don't know which I should use to split "[[\"a\",\"b\"],\"c\"]"
10:00:29 <tomsmeding> guest122`: in parseList, between the [ ], you're trying to parse multiple T's separated by ',' characters, right?
10:00:33 Rudd0 joins (~Rudd0@185.189.115.103)
10:02:21 <guest122`> tomsmeding: right, but there're , inside [] and outside
10:02:42 <tomsmeding> sure. Does that matter?
10:02:46 <guest122`> that sepBy would not work
10:03:13 <tomsmeding> sepBy wouldn't work if it could mistake a ',' outside the list for one inside your list
10:03:21 <tomsmeding> but there's a ']' in the way
10:03:43 <guest122`> so sepBy wouldn't take the outside ','?
10:04:13 heatsink joins (~heatsink@2600:1700:bef1:5e10:cb5:3651:6137:55b1)
10:04:13 <tomsmeding> saying "char ','" doesn't somehow match all commas in your string, it's a parser that can consume a single comma at the current cursor position
10:04:22 Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it)
10:04:37 <tomsmeding> the parser surrounding it, for example 'sepBy' or 'many', might call that parser multiple times at different positions
10:05:14 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:05:16 knupfer joins (~Thunderbi@200116b824cba400b0ee17fffe502926.dip.versatel-1u1.de)
10:05:22 <guest122`> tomsmeding: I should change that 'many' to 'sepBy parseT (char ',')'?
10:05:24 <tomsmeding> here, since parseT will not read past the ']' closing the list, the "char ','" in "parseT `sepBy` char ','" will not read any commas past the current list
10:05:27 <tomsmeding> yes
10:05:37 <guest122`> tomsmeding: https://paste.ubuntu.com/p/MqbTRrpRpK/
10:05:41 <tomsmeding> which is the same as parseT `sepBy` char ','
10:05:43 × knupfer quits (~Thunderbi@200116b824cba400b0ee17fffe502926.dip.versatel-1u1.de) (Remote host closed the connection)
10:05:53 <tomsmeding> which I find slightly more fun to read, but it means the same :)
10:05:57 knupfer joins (~Thunderbi@200116b824cba40079728e4b720a665a.dip.versatel-1u1.de)
10:06:09 <tomsmeding> why endBy and not sepBy?
10:06:19 × shad0w_ quits (~shad0w_@160.202.36.204) (Ping timeout: 265 seconds)
10:06:30 <tomsmeding> do you know the difference between those two?
10:07:24 <guest122`> tomsmeding: your're right https://paste.ubuntu.com/p/56Tp5Jdw4h/
10:07:48 <guest122`> tomsmeding: parse newline, should use endBy, not sepBy
10:08:00 <tomsmeding> read the documentation for endBy and for sepBy
10:08:02 <guest122`> sepBy would make [..., ""] to parse newline
10:08:23 <tomsmeding> then you'll understand why for trailing newlines, you usually want endBy, while for separating commas, you usually want sepBy
10:09:47 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cb5:3651:6137:55b1) (Ping timeout: 260 seconds)
10:10:06 <guest122`> tomsmeding: there's another question, i don't understand why parseString won't work https://paste.ubuntu.com/p/Mcs6SMKDQw/
10:10:10 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
10:10:31 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:10:41 <tomsmeding> why do you expect the parser to match the input?
10:10:51 <tomsmeding> the input you're giving it is: a b
10:10:56 <tomsmeding> not: "a b"
10:10:58 <guest122`> char '\"' *> many (noneof "\"") <* char '\"'
10:11:19 <tomsmeding> lol that would be a different way to write the same thing as parseString, yes
10:11:25 <tomsmeding> not necessarily more readable in my opinion
10:11:31 <guest122`> tomsmeding: you're right
10:13:02 <guest122`> tomsmeding: how I should match "a b"
10:13:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:13:25 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
10:13:38 <guest122`> oh
10:13:48 <guest122`> I should use " "a b" "
10:13:55 rdivacky parts (~rdivacky@212.96.173.4) ()
10:13:56 <pie_> bitonic: can I bother you about using inline-c and inline-cpp a bit?
10:14:02 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
10:14:12 <bitonic> pie_: sure
10:14:19 <pie_> bitonic: wew, so here goes
10:14:24 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:14:27 <bitonic> (might not reply rn, but ask away)
10:15:32 <pie_> bitonic: im trying to modify clang-pure because it doesnt bind some functionality from clang. clang exposes functionality through a c api and a .so, but thats limited. the rest of the internals are accessible through a c++ library
10:16:00 <pie_> clang-pure uses inline-c to bind to and use the c component
10:16:22 <pie_> i tried to add some functionality with inline-c-cpp and now I have linker issues
10:17:25 <pie_> I'm also having trouble figuring out how to make an illustrative reproducer, but I might be making progress on that front. Is trying to link against bot the c and c++ library a fundamentally broken idea? i dont really know my way around this low level stuff
10:18:27 <pie_> the concrete issues _appears to be related to_ the fact that clang is normally built with -fno-rtti -fno-exceptions, and i might need to build clang-pure with that so that ghci doesnt try to create(?)/import undefined symbols:
10:19:25 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
10:19:44 × axeman- quits (~axeman_@ip5f5af023.dynamic.kabel-deutschland.de) (Remote host closed the connection)
10:20:05 <pie_> this is the error https://bpa.st/2ZUQ , that symbol demangles to typeinfo for clang::ast_matchers::MatchFinder::MatchCallback
10:20:31 dnlkrgr joins (~dnlkrgr@HSI-KBW-46-223-1-192.hsi.kabel-badenwuerttemberg.de)
10:20:49 <xsperry> guest122`, got it working?
10:21:03 <guest122`> xsperry: yes
10:21:19 <pie_> im trying semieducated guessing because i dont know what im doing, i tried passing -fno-rtti -fno-exceptions to cc-options: in cabal, but the compiler seems to be in C mode, and imagine telling it to be in c++ mode is a shotgun solution and will probably not work as expected
10:21:23 <xsperry> ok good
10:21:31 <pie_> bitonic: did that make sense?
10:21:42 <xsperry> might want to handle spaces in a list too: l <- (spaces *> parseT) `sepBy` char ','
10:21:50 <pie_> (ive been struggling with this on and off for half a year heh, mostly off though)
10:22:02 <xsperry> (parents aren't needed there I think)
10:22:26 <xsperry> actually they are
10:22:27 acidjnk_new joins (~acidjnk@p200300d0c704e7909c09b71b3d2bb082.dip0.t-ipconnect.de)
10:22:53 tomsmeding thinks pie_ 's assessment about -fno-rtti being the culprit is correct, but don't know anything about inline-cpp; "cc-options" sounds like options for a c compiler, isn't there something like "cxx-options"?
10:24:30 heatsink joins (~heatsink@2600:1700:bef1:5e10:dcc7:fce0:469f:87db)
10:24:54 <pie_> tomsmeding: its someone else's assesment but sounds reasonable xD
10:25:04 jedws joins (~jedws@121.209.189.201)
10:25:23 <pie_> if i manage to solve this it will have been through a path through several irc channels and i dont know how to improve on the situation..
10:26:10 <pie_> this uses cc-flags ... https://github.com/fpco/inline-c/blob/master/inline-c-cpp/inline-c-cpp.cabal
10:26:43 thc202 joins (~thc202@unaffiliated/thc202)
10:26:58 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
10:27:05 <pie_> the issue with the flags thing is, or the question rather; is there any sort of boundary drawable/needed to be drawn for when the c and when the c++ compiler should be called?
10:27:11 <tomsmeding> yeah but notice it also passes '-optc-xc++ -optc-std=c++11' to ghc-options
10:27:15 <bitonic> pie_: i do not have a solution off the top of my head, but this PR might be relevant https://github.com/fpco/inline-c/pull/121
10:27:15 <pie_> i.e. does the case need to be split
10:27:22 <bitonic> it makes the c++ flags more explicit
10:27:27 <bitonic> it does require a recent cabal though, i think
10:27:50 <pie_> bitonic: also i might be using the library from before it was merged into inline-c? idek
10:28:00 <pie_> but i have no real reason that i couldnt update its just work
10:28:04 <bitonic> pie_: well i'd definitely use the latest version if you haven't tried already
10:28:47 <pie_> so it sounds to me that whats happening is i want to link in this .so file, and some magic happens which magically ends up requiring the typeinfo symbol in my own component, which then later is attempted to be imported by ghci
10:29:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:dcc7:fce0:469f:87db) (Ping timeout: 260 seconds)
10:29:07 <pie_> so what i need to do is just fix my component from generating the extraneous symbol requriement right?
10:29:19 <pie_> which adding -fno-ffi should do?
10:30:55 × bisickcor quits (~username@117.200.7.119) (Read error: Connection reset by peer)
10:31:17 jamm joins (~jamm@unaffiliated/jamm)
10:31:28 <avdb> I seriously have no clue what brackets in functions mean, i.e. "foldr :: (a -> b -> b) -> b -> [a] -> b" (GHC 7.8), what is this supposed to mean?
10:31:46 bisickcor joins (~username@117.200.12.111)
10:32:04 × jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:32:25 <tomsmeding> avdb: the () or the [] ?
10:32:40 <tomsmeding> also ghc 7.8 is old, but that doesn't matter for this question :p
10:32:55 <avdb> tomsmeding: I know that [] is for lists, I was talking about ()
10:33:07 × knupfer quits (~Thunderbi@200116b824cba40079728e4b720a665a.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
10:33:07 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
10:33:09 <avdb> It can't be tuple since tuples are (,) and not ()
10:33:39 <avdb> Yeah but the newer one looks even more complicated to me, let's see if StackExchange got answers
10:33:45 <tomsmeding> how does (1 + 2) * 3 differ from 1 + 2 * 3 ? :)
10:33:52 jedws joins (~jedws@121.209.189.201)
10:34:04 <tomsmeding> "the newer one looks even more complicated to me" wat
10:34:07 <tomsmeding> which newer one? :p
10:34:23 heatsink joins (~heatsink@2600:1700:bef1:5e10:7460:d0a0:ac95:f907)
10:34:44 <tomsmeding> in the same way, (a -> b) -> c differs from a -> b -> c
10:34:53 <avdb> foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
10:34:56 <avdb> If I'm correct
10:34:59 <tomsmeding> oh right
10:35:12 <tomsmeding> yeah you can read that as the same as your 7.8 type
10:35:20 <tomsmeding> it's just more general
10:35:38 <avdb> I'll try to play with the functions, might make sense afterwards
10:35:46 <bitonic> pie_: i'm a bit confused on how ghci comes into play. generally speaking, if you do what inline-c-cpp.cabal does, and you specify the c++ libraries that you want to link against in .cabal, it should work by building your project or running ghci with -fobject-code
10:35:54 <tomsmeding> -> is just an operator; the difference is that it's on the type level instead of on the value level
10:36:14 heatsink_ joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
10:36:15 <tomsmeding> a -> b -> c -> d means exactly the same as a -> (b -> (c -> d)), just like 1 + 2 + 3 + 4 means the same as ((1 + 2) + 3) + 4
10:37:06 <tomsmeding> you probably read a type signature 'a -> b -> c' as a function taking two arguments, but you can also read it as a function taking one argument (of type 'a') and returning a result of type 'b -> c'
10:37:06 × sgibber2018 quits (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
10:37:13 <pie_> bitonic: do you use nix?
10:37:32 × thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202)
10:37:47 <pie_> bitonic: if you can use nix ill set up a full repro
10:38:54 <bitonic> pie_: i do use nix (but not nixos), and i'd definitely welcome a repro with the latest version, but i can't give guarantees on when i'll have time to debug it (although somebody else might)
10:38:56 <pie_> bitonic: also i _think_ ghci might not really be relevant but its where the issue manifests
10:38:57 × heatsink quits (~heatsink@2600:1700:bef1:5e10:7460:d0a0:ac95:f907) (Ping timeout: 260 seconds)
10:39:08 <bitonic> pie_: well just to be safe, try building normally
10:39:25 <bitonic> or to put it differently -- does it work by building normally?
10:39:49 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:f14e:453d:14dc:75b2:51ff)
10:40:03 <pie_> it doesnt error but i dont even know if its using the code
10:40:26 axeman- joins (~axeman_@2a02:8109:86c0:1f98:19e2:c57e:a74:847c)
10:40:32 <pie_> im still very much in the prototyping phase of this project
10:40:42 × heatsink_ quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
10:40:43 <bitonic> well, do you get the same linker error?
10:40:52 <pie_> no
10:40:59 <bitonic> you can also use `ldd` on the haskell executable to see that it does indeed link to the right c++ libs
10:41:04 <pie_> but i think that might be a runtime linking error
10:41:06 <pie_> ok ill chec
10:43:08 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:43:09 <bitonic> iirc symbols (even in dynamic libs) are always resolved when the final executable is linked
10:44:33 <pie_> yeah it looks like it links and runs
10:45:02 × axeman- quits (~axeman_@2a02:8109:86c0:1f98:19e2:c57e:a74:847c) (Ping timeout: 264 seconds)
10:45:02 <pie_> it doesnt actually do anything with the lib right now though
10:45:18 <bitonic> right, but when your executable is linked the symbols it uses will be resolved by the linker
10:45:40 <bitonic> and yea you should run ldd to make sure that all the libs that it expects are found -- but if you have just built it that will most likely be the case
10:45:45 <pie_> i think part of the problem might be ghci trying to resolve everything or something, and the buld version doesnt?
10:45:51 <bitonic> how are you running ghci?
10:45:59 <pie_> it says it is libclang-cpp.so.10 => /nix/store/yhy3sh4wvbx4kvm0lpw5xinhwspka6pf-clang-10.0.0-lib/lib/libclang-cpp.so.10 (0x00007fdcd6326000)
10:46:05 <pie_> im just doing cabal repl
10:46:21 knupfer joins (~Thunderbi@200116b824cba4006449cafffe9d2721.dip.versatel-1u1.de)
10:46:22 × knupfer quits (~Thunderbi@200116b824cba4006449cafffe9d2721.dip.versatel-1u1.de) (Client Quit)
10:46:27 <bitonic> pie_: you need to give it `-fobject-code`, see the readme of inline-c
10:46:33 knupfer joins (~Thunderbi@87.123.206.116)
10:46:54 <bitonic> <http://hackage.haskell.org/package/inline-c> c-f object-code
10:47:02 × bitmagie quits (~Thunderbi@200116b80610420041d63e606b7455dd.dip.versatel-1u1.de) (Quit: bitmagie)
10:47:17 <bitonic> or more directly https://github.com/fpco/inline-c/tree/master/inline-c#ghci
10:47:32 <bitonic> you can also give it `-O0` for faster compile times
10:47:38 francesco_ joins (~francesco@host-82-49-179-126.retail.telecomitalia.it)
10:47:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
10:47:54 × Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Ping timeout: 256 seconds)
10:47:56 <pie_> here's a paste of a the last cabal command extracted from an older run https://bpa.st/BGMA
10:48:00 francesco_ is now known as Franciman
10:48:20 <bitonic> if you're not giving `-fobject-code` to ghci it won't work
10:48:59 <pie_> well, this is going to build for a while..its doing deps for some reason. yeah, doh. I dont know why I didnt run across that, because I've certainly seen the section
10:49:19 <pie_> lets see if anything else breaks after this, maybe this wasnt my actual issue, butim quite sure it s
10:49:33 <pie_> hopefully it works, though i will be disappoitned in the stupidity of it x)
10:49:56 <bitonic> you can remind yourself that reading the manual is important 🙃
10:50:08 <bitonic> but let's wait for it to work first
10:50:44 <pie_> no i mean i _did_ read that at some point
10:50:46 <pie_> x)
10:50:51 <pie_> bad memory ;_;
10:51:02 × jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:52:02 <pie_> bitonic: is there any way you could make it add a warning if you try to run it wrong? xP
10:52:20 DavidEichmann joins (~david@62.110.198.146.dyn.plus.net)
10:53:48 MarkoDimjaevi[m] joins (mdimjasevi@gateway/shell/matrix.org/x-fyjbjybnvgfucyjx)
10:56:22 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
10:56:45 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:57:03 iekfkk joins (~username@117.241.12.205)
10:57:12 × bisickcor quits (~username@117.200.12.111) (Ping timeout: 256 seconds)
10:57:54 Vulfe joins (~vulfe@2600:1702:31b0:34e0:f150:fb4b:7f66:edb8)
10:59:03 <bitonic> pie_: we could do it by modifying ghci
10:59:35 <bitonic> well, ghc anyway
11:01:25 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
11:01:29 hackage vector-fft 0.1.0.0 - Native FFT and IFFT for vector https://hackage.haskell.org/package/vector-fft-0.1.0.0 (ocramz)
11:02:17 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:f150:fb4b:7f66:edb8) (Ping timeout: 260 seconds)
11:02:34 <kuribas> how does ghc do thread context switching?
11:02:40 tribble2 joins (~tribble2@unaffiliated/tribble2)
11:02:43 <kuribas> does it save the stack somewhere?
11:02:53 <pie_> bitonic: ok the build finished and it still fails with the same error
11:03:51 <pie_> well, let me try cabal clean first
11:04:00 hackage vector-fft 0.1.0.1 - Native FFT and IFFT for vector https://hackage.haskell.org/package/vector-fft-0.1.0.1 (ocramz)
11:05:32 <pie_> yup. fails.
11:05:37 MarkoDimjaevi[m] sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/RwpdGNTeKEKXSssxyLJYTttu/message.txt >
11:05:54 Vulfe joins (~vulfe@2600:1702:31b0:34e0:11d1:8f94:f6d3:ab80)
11:06:38 <MarkoDimjaevi[m]> I followed the documentation at https://hackage.haskell.org/package/optparse-applicative, but to no avail. Any thoughts?
11:09:58 × kuribas quits (~user@ptr-25vy0i8j674kz2jm8gq.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
11:10:25 <pie_> tomsmeding: apparently cxx-options is a thing im just looking at the first copy of hella old cabal docs i found on google
11:10:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:11d1:8f94:f6d3:ab80) (Ping timeout: 264 seconds)
11:10:52 <tomsmeding> pie_: looking at old cabal docs is perhaps not a good idea when dealing with finicky stuff like this :p
11:11:10 <pie_> xP
11:11:15 <pie_> indeed
11:13:17 <tomsmeding> MarkoDimjaevi[m]: I'm not familiar with optparse-applicative, but posting a working (well, non-working) example is probably best for getting responses :)
11:14:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:14:38 <tomsmeding> it's a fairly popular library, as things go, so the first-approximation guess is that you're using it weirdly, not that the library is wrong :p
11:14:46 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds)
11:14:59 <tomsmeding> though everything is possible
11:15:32 <dminuoso> MarkoDimjaevi[m]: Can you share your code?
11:18:51 <MarkoDimjaevi[m]> tomsmeding, dminuoso : funny, when I reduce it to a minimal example, it works. So not sure what to post.
11:19:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:19:08 mud joins (~mud@unaffiliated/kadoban)
11:19:17 <MarkoDimjaevi[m]> Any known weird interactions that the library has, perhaps when hspec is used?
11:19:29 <tomsmeding> MarkoDimjaevi[m]: try to upscale your reduced, working example to the real code :)
11:20:05 <tomsmeding> how large is the non-working code?
11:20:10 <dminuoso> MarkoDimjaevi[m]: Ah! Yes
11:20:29 <dminuoso> MarkoDimjaevi[m]: how do you run hspec exactly?
11:20:39 × jneira quits (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) (Ping timeout: 260 seconds)
11:21:24 <MarkoDimjaevi[m]> It's a script program, where the main function is something like: `execParser opts >>= hspec . spec`
11:22:30 sunfreakz- joins (~sunfreakz@51.194.80.91)
11:23:01 <dminuoso> hspec itself parses command line options
11:23:18 <dminuoso> Use `runSpec` to gain control over it
11:24:11 <dminuoso> See haddock for https://hackage.haskell.org/package/hspec-2.7.4/docs/Test-Hspec.html#v:hspec
11:24:33 <dminuoso> Personally, Id just avoid execParser
11:24:40 fendor joins (~fendor@178.165.131.53.wireless.dyn.drei.com)
11:24:57 <dminuoso> You probably will be more happier with execParserPure
11:25:04 <dminuoso> (For tests)
11:25:13 <MarkoDimjaevi[m]> So, `runSpec` instead of `hspec`.
11:25:54 <dminuoso> Either that, or use execParserPure. Either way, you must make sure only one part tries to read command line arguments here.
11:26:20 phasespace_ joins (~sar@89-162-33-21.fiber.signal.no)
11:26:25 <MarkoDimjaevi[m]> I see. Thanks! Now I see how `hspec` is defined.
11:27:05 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9)
11:29:49 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
11:30:13 × puffnfresh quits (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 264 seconds)
11:32:33 puffnfresh joins (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
11:33:30 hackage vector-fft 0.1.0.2 - Native FFT and IFFT for vector https://hackage.haskell.org/package/vector-fft-0.1.0.2 (ocramz)
11:34:55 ADG1089__ joins (~aditya@223.235.213.117)
11:35:26 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
11:35:31 jupiter joins (Username@151.45.206.205)
11:36:18 × jupiter quits (Username@151.45.206.205) (Read error: Connection reset by peer)
11:36:46 shad0w_ joins (~shad0w_@160.202.36.204)
11:36:56 heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
11:37:52 × blankhart quits (~blankhart@pool-100-8-71-205.nwrknj.fios.verizon.net) (Ping timeout: 260 seconds)
11:41:22 × heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
11:41:32 sheaf joins (~sheaf@sheaf.site)
11:41:49 drbean joins (~drbean@TC210-63-209-153.static.apol.com.tw)
11:46:33 Varis joins (~Tadas@unaffiliated/varis)
11:47:32 jneira joins (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180)
11:48:22 × tribble2 quits (~tribble2@unaffiliated/tribble2) (Quit: Leaving)
11:51:04 × unlink2 quits (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) (Remote host closed the connection)
11:51:23 unlink2 joins (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de)
11:53:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:03:28 <idnar> @type modifyTVar
12:03:30 <lambdabot> error: Variable not in scope: modifyTVar
12:04:10 <idnar> @hoogle modifyTVar
12:04:11 <lambdabot> Control.Concurrent.STM.TVar modifyTVar :: TVar a -> (a -> a) -> STM ()
12:04:11 <lambdabot> UnliftIO.STM modifyTVar :: () => TVar a -> (a -> a) -> STM ()
12:04:11 <lambdabot> Rebase.Prelude modifyTVar :: () => TVar a -> (a -> a) -> STM ()
12:04:20 p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
12:04:23 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
12:04:53 <gentauro> why does this method need `MonadThrow`? https://hackage.haskell.org/package/http-client-0.7.3/docs/Network-HTTP-Client.html#v:parseRequest
12:05:11 <gentauro> wouldn't it give sense to use a `Maybe` or `Either` type instead?
12:05:12 <idnar> @hoogle TVar a -> (a -> STM a) -> STM ()
12:05:13 <lambdabot> Control.Concurrent.Async.Lifted forConcurrently_ :: (Foldable t, MonadBaseControl IO m) => t a -> (a -> m b) -> m ()
12:05:13 <lambdabot> Control.Concurrent.Async.Lifted.Safe forConcurrently_ :: (Foldable t, MonadBaseControl IO m, Forall (Pure m)) => t a -> (a -> m b) -> m ()
12:05:13 <lambdabot> Control.Monad forM_ :: (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
12:05:21 <gentauro> it's just parsing a `URL`
12:07:18 <dminuoso> Wow, this is a cool use of deriving-via: https://hackage.haskell.org/package/deriving-aeson-0.2.6
12:07:45 <dminuoso> data User = ... deriving (FromJSON, ToJSON) via CustomJSON '[OmitNothingFields, FieldLabelModifier (StripPrefix "user", CamelToSnake)] User
12:08:17 <pie_> bitonic: i have to run soon, do you have somewhere I can put a zip
12:08:29 <bitonic> pie_: i think github allows you to do that? otherwise, just a temp repo
12:10:11 <idnar> gentauro: you can use either of those since instance MonadThrow (Either e); instance MonadThrow Maybe
12:12:45 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:13:50 <gentauro> idnar: I would rather not `throw` anything …
12:13:54 <gentauro> it's parsing of a string
12:14:06 <gentauro> that shouldn't involve any kind of effects …
12:14:20 <gentauro> nor monadic code for that sake
12:14:54 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
12:15:08 <dminuoso> gentauro: The idea of using MonadThrow is that *you* get to pick the monad in which its thrown
12:15:15 <idnar> gentauro: it just lets the caller choose how to fail
12:15:49 <dminuoso> You can chose `Maybe` as you want
12:16:31 <dminuoso> Say if you write `let r :: Maybe Request; r = parseRequest "http://example.com"` that's it.
12:17:13 × shad0w_ quits (~shad0w_@160.202.36.204) (Read error: Connection reset by peer)
12:17:32 <dminuoso> Think of Nothing as an exception being thrown. :)
12:20:27 × Stanley00 quits (~stanley00@unaffiliated/stanley00) ()
12:21:24 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:21:25 × hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
12:21:46 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:22:53 <pie_> bitonic: can you try this real quick? https://github.com/fpco/inline-c/issues/122
12:23:26 <bitonic> pie_: not now, but i will take a look (not entirely sure when)
12:23:32 __monty__ joins (~toonn@unaffiliated/toonn)
12:23:34 <pie_> ok
12:23:42 Entertainment joins (~entertain@104.246.132.210)
12:23:55 MarkoDimjaevi[m] parts (mdimjasevi@gateway/shell/matrix.org/x-fyjbjybnvgfucyjx) ("User left")
12:25:33 argento joins (~argent0@168.227.96.53)
12:27:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
12:30:29 jamm joins (~jamm@unaffiliated/jamm)
12:31:43 × avdb quits (~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds)
12:34:52 <gentauro> 13:15 < dminuoso> gentauro: The idea of using MonadThrow is that *you* get to pick the monad in which its thrown
12:35:03 <gentauro> but I don't want it to "throw"
12:35:13 <gentauro> isn't that the hole point of `parsing`?
12:35:24 <gentauro> Just x or Nothing
12:35:26 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
12:35:35 <gentauro> of Either Right x or Left error?
12:35:43 <gentauro> maybe I'm missing something here …
12:36:06 geekosaur joins (ac3a5347@172.58.83.71)
12:36:09 Vulfe joins (~vulfe@2600:1702:31b0:34e0:f436:be73:ac71:a766)
12:36:13 <gentauro> 13:16 < dminuoso> Say if you write `let r :: Maybe Request; r = parseRequest "http://example.com"` that's it
12:36:16 <gentauro> hmmm
12:37:40 heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
12:37:58 Wuzzy joins (~Wuzzy@p5b0dfcf5.dip0.t-ipconnect.de)
12:40:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:f436:be73:ac71:a766) (Ping timeout: 264 seconds)
12:42:38 × heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 264 seconds)
12:44:02 <dminuoso> gentauro: You dont want it to report an error?
12:44:08 <dminuoso> The term "throw" is only meant handwavingly
12:44:34 <dminuoso> With `Maybe Int`, one can think producing Nothing as "throwing an error"
12:44:52 <dminuoso> Or with `Either String Int`, `Left "foo"` can be thought of as "throwing a named error"
12:45:23 zv joins (~zv@unaffiliated/zv)
12:45:32 <dminuoso> This nicely lines up with how the monad instances of `Either s` and `Maybe` are defined, as `Left s` or `Nothing` act as short circuiting. Turns out, that's pretty much what exceptions are! :)
12:46:14 ski . o O ( stark )
12:46:24 × zv quits (~zv@unaffiliated/zv) (Client Quit)
12:47:13 <Rembane> Ned or Tony?
12:48:13 <dminuoso> gentauro: The only oddity here, is that you can't get an `Either String` as the monad. If you want either, then `Either SomeException` is the best you can do.
12:48:16 <ski> Alan
12:48:41 <Rembane> :D
12:48:44 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-xvqhvieldsbxdmla) (Quit: Connection closed for inactivity)
12:49:52 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Read error: Connection reset by peer)
12:51:46 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Quit: brb)
12:54:40 lambdabot joins (~lambdabot@silicon.int-e.eu)
12:54:40 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
12:54:40 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
12:55:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
13:00:04 × argento quits (~argent0@168.227.96.53) (Ping timeout: 246 seconds)
13:01:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
13:01:42 dhil joins (~dhil@78.156.97.38)
13:04:48 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
13:05:52 × xiinotulp quits (~q@ppp-223-24-168-35.revip6.asianet.co.th) (Quit: Leaving)
13:07:15 usr25 joins (~usr25@unaffiliated/usr25)
13:09:28 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
13:10:18 axeman-_ joins (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b)
13:14:53 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
13:14:53 shad0w_ joins (~shad0w_@160.202.36.114)
13:19:16 argento joins (~argent0@168.227.96.51)
13:27:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
13:29:23 <gentauro> 13:44 < dminuoso> gentauro: You dont want it to report an error?
13:29:49 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
13:29:51 <gentauro> yes, but the error type that I choose (in many cases just a String, but in other cases a hex number `Word`)
13:30:00 Anthaas_ joins (~Anthaas@unaffiliated/anthaas)
13:30:08 × Anthaas quits (~Anthaas@unaffiliated/anthaas) (Read error: Connection reset by peer)
13:30:55 <dminuoso> What string do you want to have? Your own string, or whatever servant reports?
13:31:08 solonarv joins (~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr)
13:31:42 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
13:32:11 <dminuoso> Servant will just attempt to generate `InvalidUrlException ... "Invalid URL"` so there's no content anyway. Just pick `Maybe` and use `maybe/pattern matching` and be done
13:35:40 × usr25 quits (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer)
13:36:28 × axeman-_ quits (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b) (Remote host closed the connection)
13:38:02 <gentauro> dminuoso: `servant`? I'm `old-school` and use `http-client` ;)
13:38:09 <dminuoso> Oh, sorry. Same story
13:38:23 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
13:38:23 heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
13:38:27 <dminuoso> https://hackage.haskell.org/package/http-client-0.7.3/docs/src/Network.HTTP.Client.Request.html#parseRequest
13:39:10 berberman_ joins (~berberman@unaffiliated/berberman)
13:40:14 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
13:40:19 <gentauro> dminuoso: if `Nothing -> throwM $ InvalidUrlException s "Invalid URL"` was `Nothing -> Left $ InvalidUrlException s "Invalid URL"`. I would have been a happy person :)
13:40:22 <gentauro> but nevertheless
13:40:22 × berberman_ quits (~berberman@unaffiliated/berberman) (Max SendQ exceeded)
13:40:46 <gentauro> it is what it is so, `signature tagging` my local variables for the win
13:40:52 <dminuoso> gentauro: You seem to misunderstand what all of this does.
13:41:16 berberman joins (~berberman@unaffiliated/berberman)
13:41:20 <gentauro> dminuoso: might be
13:41:27 <dminuoso> gentauro: parseRequest :: MonadThrow m => String -> m Request
13:41:42 <dminuoso> This is a polymorphic value. You, as the caller/consumer, have the obligation to pick a suitable type for each type variable.
13:42:05 <dminuoso> In the above case, you have to decide on something for `m`, under the condition that whatever your choice is, there must be an `instance MonadThrow m` for your choice
13:42:15 fbm joins (5ddb3d0f@p5ddb3d0f.dip0.t-ipconnect.de)
13:42:48 <dminuoso> This lets the implementor of parseRequest/the library just use `throwM`, and *you* get to chose the actual implementation. If you chose `Maybe`, then `throwM = const Nothing`, and you get a Nothing out of it.
13:43:05 <gentauro> dminuoso: roger that. I will refactor all my code so from now on, all code branches will by of the type `MonadThrow m`. Cos why keep it simple when you can overcomplicate it (Y)
13:43:17 × heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
13:43:36 <dminuoso> Well, there could also be a `parseRequestMaybe`, but perhaps you also want `parseRequestEither`
13:43:40 <dminuoso> Oh and what about parseRequestIO
13:44:43 × acidjnk_new quits (~acidjnk@p200300d0c704e7909c09b71b3d2bb082.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
13:45:46 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
13:46:04 lolmac joins (sid171216@gateway/web/irccloud.com/x-hpisoiyvvsfkexdg)
13:46:09 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:46:36 fbm parts (5ddb3d0f@p5ddb3d0f.dip0.t-ipconnect.de) ()
13:46:43 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
13:46:45 jmchael joins (~jmchael@81.174.205.210)
13:47:30 <dminuoso> gentauro: Its a tradeoff. If you're in IO, you can just write `do { r <- parseRequest "..."; ... }` and it'll automatically be an IO exception. :)
13:50:07 × Xnuk quits (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in)
13:50:23 × drbean quits (~drbean@TC210-63-209-153.static.apol.com.tw) (Ping timeout: 256 seconds)
13:50:25 Xnuk joins (~xnuk@vultr.xnu.kr)
13:51:22 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Quit: and again...)
13:51:30 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
13:51:45 xwvvvvwx- joins (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx)
13:53:15 × xwvvvvwx quits (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (Read error: Connection reset by peer)
13:53:15 xwvvvvwx- is now known as xwvvvvwx
13:57:04 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Quit: oops)
13:57:08 axeman- joins (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b)
13:57:11 lambdabot joins (~lambdabot@silicon.int-e.eu)
13:57:11 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
13:57:11 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
13:57:35 × berberman quits (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in)
13:57:51 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Client Quit)
13:57:59 berberman joins (~berberman@unaffiliated/berberman)
13:58:15 lambdabot joins (~lambdabot@silicon.int-e.eu)
13:58:15 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
13:58:15 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
13:58:44 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
13:59:09 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
14:00:16 jchia__1 joins (~jchia@58.32.64.17)
14:01:25 × jchia__ quits (~jchia@58.32.37.146) (Ping timeout: 264 seconds)
14:01:31 × axeman- quits (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b) (Ping timeout: 258 seconds)
14:02:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
14:04:39 urodna joins (~urodna@unaffiliated/urodna)
14:05:03 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
14:05:24 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:08:52 × p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
14:09:22 p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
14:09:30 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Read error: Connection reset by peer)
14:09:45 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
14:10:36 <siraben> is the exception monad implemented in a continuation-passing style so that throwing is immediate?
14:11:22 <dminuoso> "the exception monad"?
14:11:34 <siraben> sorry, Either heh
14:11:42 usr25 joins (~J@247.red-79-147-226.dynamicip.rima-tde.net)
14:11:45 <siraben> or monads implementing MonadExcept
14:12:11 <siraben> ExceptT t m a
14:12:44 <dminuoso> MonadExcept is not a thing as far as I know.
14:13:40 <[exa]> MonadCatch?
14:14:29 plakband joins (~plakband@softbank126227038054.bbtec.net)
14:16:07 Vulfe joins (~vulfe@2600:1702:31b0:34e0:f436:be73:ac71:a766)
14:17:49 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
14:24:14 × abrar quits (~abrar@static-108-30-103-121.nycmny.fios.verizon.net) (Quit: WeeChat 2.7.1)
14:26:02 abrar joins (~abrar@static-108-30-103-121.nycmny.fios.verizon.net)
14:26:29 nyd joins (~nyd@unaffiliated/elysian)
14:26:35 × Anthaas_ quits (~Anthaas@unaffiliated/anthaas) (Quit: ZNC 1.7.1 - https://znc.in)
14:27:29 Anthaas joins (~Anthaas@unaffiliated/anthaas)
14:28:06 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
14:29:39 son0p joins (~son0p@181.136.122.143)
14:30:32 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:f436:be73:ac71:a766) (Remote host closed the connection)
14:30:39 Vulfe joins (~vulfe@2600:1702:31b0:34e0:f436:be73:ac71:a766)
14:31:29 hackage futhark 0.18.5 - An optimising compiler for a functional, array-oriented language. https://hackage.haskell.org/package/futhark-0.18.5 (TroelsHenriksen)
14:32:34 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:36:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
14:37:21 × plakband quits (~plakband@softbank126227038054.bbtec.net) (Quit: WeeChat 2.9)
14:37:28 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
14:38:05 × cads2 quits (~cads@ip-64-72-99-232.lasvegas.net) (Read error: Connection reset by peer)
14:38:13 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Read error: Connection reset by peer)
14:39:51 machinedgod joins (~machinedg@24.105.81.50)
14:41:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
14:44:41 × geekosaur quits (ac3a5347@172.58.83.71) (Remote host closed the connection)
14:45:20 sacereda joins (58100f7c@124.red-88-16-15.dynamicip.rima-tde.net)
14:45:40 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
14:46:12 × sacereda quits (58100f7c@124.red-88-16-15.dynamicip.rima-tde.net) (Remote host closed the connection)
14:49:56 eacameron joins (uid256985@gateway/web/irccloud.com/x-oyeaqbkzntopnzns)
14:50:50 shailangsa joins (~shailangs@host86-186-196-229.range86-186.btcentralplus.com)
14:54:30 plakband joins (~plakband@softbank126227038054.bbtec.net)
14:55:12 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
14:55:39 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
14:56:30 hackage libarchive 3.0.2.1 - Haskell interface to libarchive https://hackage.haskell.org/package/libarchive-3.0.2.1 (vmchale)
14:56:31 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
14:56:35 × toorevitimirp quits (~tooreviti@117.182.181.108) (Remote host closed the connection)
14:57:11 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
14:57:30 hackage tagged 0.8.6.1 - Haskell 98 phantom types to avoid unsafely passing dummy arguments https://hackage.haskell.org/package/tagged-0.8.6.1 (ryanglscott)
14:57:47 zebrag joins (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr)
14:59:51 jamm joins (~jamm@unaffiliated/jamm)
15:02:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:04:14 × Forlorn quits (~Forlorn@unaffiliated/forlorn) (Read error: Connection reset by peer)
15:04:34 Aquazi joins (uid312403@gateway/web/irccloud.com/x-mjjgbcyiirddzuvf)
15:06:23 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
15:07:20 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
15:08:59 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
15:09:29 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
15:13:35 <siraben> dminuoso: https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-Except.html#t:ExceptT
15:13:43 <siraben> "The Error monad (also called the Exception monad)."
15:14:52 <merijn> siraben: Hysterical raisins
15:15:16 <siraben> heh
15:16:21 <merijn> siraben: Note that mtl has MonadError which is a hold over from the ErrorT from transformers (which is deprecated and has been replaced by ExceptT)
15:16:39 <siraben> merijn: Right, so I was wondering about ExceptT
15:16:44 <siraben> does it use some CPS underneath or not?
15:17:18 <merijn> Eh, EINSUFFICIENTINFO
15:18:26 <tomsmeding> does it matter?
15:19:31 <int-e> :t Control.Monad.Except.ExceptT
15:19:32 <lambdabot> m (Either e a) -> ExceptT e m a
15:22:48 fendor_ joins (~fendor@77.119.131.12.wireless.dyn.drei.com)
15:23:14 <siraben> tomsmeding: yes, because when an error is thrown the control can move to the handler immediately rather than the error being propagated
15:23:49 <siraben> https://blog.poisson.chat/posts/2019-10-26-reasonable-continuations.html
15:23:54 × plakband quits (~plakband@softbank126227038054.bbtec.net) (Quit: WeeChat 2.9)
15:23:55 <siraben> type Except e a = forall r. Cont (Either e r) a
15:23:57 <siraben> throw :: e -> Except e a
15:23:59 <siraben> runExcept :: Except e a -> Either e a
15:24:25 <tomsmeding> ah, so in terms of performance
15:24:32 <int-e> siraben: >>= takes a continuation as its second argument, so it comes down to using it in a right-associative way
15:24:33 Tario joins (~Tario@201.192.165.173)
15:25:06 <tomsmeding> https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-Except.html#t:ExceptT <- ExceptT is just an Either
15:25:09 <siraben> int-e: Ok. IIRC something about codensity can make it hetter
15:25:11 <siraben> better*
15:25:22 × fendor quits (~fendor@178.165.131.53.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
15:25:26 <siraben> As in deal with nested left associative binds
15:25:54 <int-e> yes. but it's something you have to do yourself if it actually comes up in connection with ExceptT
15:26:10 <merijn> Realistically that doesn't matter for most uses of ExceptT anyway
15:26:24 <merijn> Which will generally not be something compute bound
15:27:04 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
15:28:42 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
15:29:00 hackage BNFC 2.9.0 - A compiler front-end generator. https://hackage.haskell.org/package/BNFC-2.9.0 (AndreasAbel)
15:29:27 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:f14e:453d:14dc:75b2:51ff) (Ping timeout: 260 seconds)
15:31:29 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
15:34:17 mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com)
15:37:28 × usr25 quits (~J@247.red-79-147-226.dynamicip.rima-tde.net) (Ping timeout: 256 seconds)
15:38:54 bitmagie joins (~Thunderbi@200116b8061042004921a75e01362503.dip.versatel-1u1.de)
15:38:56 × shad0w_ quits (~shad0w_@160.202.36.114) (Ping timeout: 240 seconds)
15:39:34 heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
15:41:01 × argento quits (~argent0@168.227.96.51) (Ping timeout: 264 seconds)
15:42:16 × Torro quits (Torro@gateway/vpn/protonvpn/torro) (Quit: bye)
15:44:37 × heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
15:46:12 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac)
15:46:24 × coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
15:47:42 coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
15:47:59 plutoniix joins (~q@ppp-223-24-168-35.revip6.asianet.co.th)
15:48:21 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:49:15 Sheilong joins (uid293653@gateway/web/irccloud.com/x-qwjibsljgvydusqt)
15:51:18 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
15:51:47 DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
15:53:26 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
15:53:49 ADG1089__ joins (~aditya@223.235.213.117)
15:55:04 × ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
15:55:07 × Franciman quits (~francesco@host-82-49-179-126.retail.telecomitalia.it) (Ping timeout: 260 seconds)
15:56:21 Franciman joins (~francesco@host-82-59-247-44.retail.telecomitalia.it)
15:58:24 <ij> why does it seem that parMap from parallel isn't utilizing multiple cores? do I need some compiler flags for that?
15:59:45 <ij> yeah, I needed -rtsopts -with-rtsopts='-N8'
16:00:08 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds)
16:00:41 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
16:00:57 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:02:20 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac) (Remote host closed the connection)
16:02:47 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac)
16:03:51 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
16:04:14 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
16:05:03 jamm joins (~jamm@unaffiliated/jamm)
16:06:02 × Franciman quits (~francesco@host-82-59-247-44.retail.telecomitalia.it) (Ping timeout: 264 seconds)
16:06:07 francesco_ joins (~francesco@host-82-61-90-192.retail.telecomitalia.it)
16:06:35 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
16:06:54 jamm joins (~jamm@unaffiliated/jamm)
16:07:20 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac) (Remote host closed the connection)
16:07:36 × Wuzzy quits (~Wuzzy@p5b0dfcf5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
16:07:51 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac)
16:07:54 francesco_ is now known as Franciman
16:12:31 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:14:22 × Franciman quits (~francesco@host-82-61-90-192.retail.telecomitalia.it) (Ping timeout: 260 seconds)
16:14:30 hackage project-m36 0.9.0 - Relational Algebra Engine https://hackage.haskell.org/package/project-m36-0.9.0 (agentm)
16:15:53 heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
16:16:07 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
16:16:24 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
16:16:46 shad0w_ joins (~shad0w_@160.202.36.114)
16:16:47 Franciman joins (~francesco@host-79-22-155-142.retail.telecomitalia.it)
16:16:51 rowbee joins (~augh@theguntretort.com)
16:18:00 × Anthaas quits (~Anthaas@unaffiliated/anthaas) (Ping timeout: 265 seconds)
16:18:39 mananamenos_ joins (~mananamen@vpn236-126.vpns.upv.es)
16:19:22 <tomsmeding> ij: also try adding -qg to your rtsopts
16:20:15 <ij> that makes it slowe
16:20:17 <ij> +r
16:20:20 <tomsmeding> lol
16:20:40 <tomsmeding> in that case certainly leave it out :)
16:20:47 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
16:21:20 <tomsmeding> yesterday someone sped up their parallel program with a factor of ~2 by using -qg
16:21:40 × mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 246 seconds)
16:21:42 <ij> hm!
16:22:48 Anthaas joins (~Anthaas@unaffiliated/anthaas)
16:23:09 <ij> only thing left to implement is add divide and conquer...
16:26:12 × Franciman quits (~francesco@host-79-22-155-142.retail.telecomitalia.it) (Ping timeout: 256 seconds)
16:28:17 Franciman joins (~francesco@host-79-42-9-24.retail.telecomitalia.it)
16:29:30 × dnlkrgr quits (~dnlkrgr@HSI-KBW-46-223-1-192.hsi.kabel-badenwuerttemberg.de) (Ping timeout: 272 seconds)
16:30:53 Tops2 joins (~Tobias@dyndsl-095-033-021-140.ewe-ip-backbone.de)
16:31:21 × rmk236 quits (~lcampos@2a02:908:3616:b100:c88b:5206:b6cb:7b2b) (Quit: Leaving.)
16:31:27 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
16:32:18 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
16:33:36 christo joins (~chris@81.96.113.213)
16:35:21 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
16:36:38 × ADG1089__ quits (~aditya@223.235.213.117) (Ping timeout: 264 seconds)
16:36:38 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
16:37:40 × heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection)
16:38:40 mananamenos__ joins (~mananamen@84.122.202.215.dyn.user.ono.com)
16:42:20 Tops21 joins (~Tobias@dyndsl-095-033-021-140.ewe-ip-backbone.de)
16:42:20 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac) (Remote host closed the connection)
16:42:46 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac)
16:42:48 × mananamenos_ quits (~mananamen@vpn236-126.vpns.upv.es) (Ping timeout: 272 seconds)
16:45:43 × hekkaidekapus} quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
16:45:49 × Tops2 quits (~Tobias@dyndsl-095-033-021-140.ewe-ip-backbone.de) (Ping timeout: 264 seconds)
16:47:08 sfvm joins (~sfvm@37.228.215.77)
16:47:39 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac) (Read error: Connection reset by peer)
16:48:07 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac)
16:50:17 geekosaur joins (42d52137@66.213.33.55)
16:51:38 <geekosaur> I saw the commit go by and have no objections to it
16:51:52 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:52:13 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
16:52:25 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac) (Remote host closed the connection)
16:52:49 × son0p quits (~son0p@181.136.122.143) (Ping timeout: 246 seconds)
16:52:59 × bitmagie quits (~Thunderbi@200116b8061042004921a75e01362503.dip.versatel-1u1.de) (Quit: bitmagie)
16:54:09 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac)
16:54:32 × Franciman quits (~francesco@host-79-42-9-24.retail.telecomitalia.it) (Ping timeout: 256 seconds)
16:54:48 Franciman joins (~francesco@host-79-44-15-110.retail.telecomitalia.it)
16:55:11 ADG1089__ joins (~aditya@223.235.213.117)
16:55:25 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
16:56:40 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
16:56:48 <rab24ack[m]> I have a game written using Apecs but the performance is bad when there are lots of particles on screen. Why would the performance be bad? The code: https://paste.debian.net/1178633/
16:56:53 × plutoniix quits (~q@ppp-223-24-168-35.revip6.asianet.co.th) (Read error: Connection reset by peer)
16:59:04 <rab24ack[m]> I'm spawning particles at line 110
16:59:27 × shad0w_ quits (~shad0w_@160.202.36.114) (Read error: Connection reset by peer)
17:00:30 Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-116.cust.tzulo.com)
17:00:46 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
17:00:55 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
17:01:36 argento joins (~argent0@168.227.96.51)
17:03:02 × Franciman quits (~francesco@host-79-44-15-110.retail.telecomitalia.it) (Ping timeout: 256 seconds)
17:03:26 Franciman joins (~francesco@host-212-171-42-115.retail.telecomitalia.it)
17:06:20 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:1e7:f4eb:ff4e:8154)
17:07:44 heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
17:10:16 plutoniix joins (~q@node-ufv.pool-125-24.dynamic.totinternet.net)
17:10:41 electricityZZZZ joins (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
17:10:55 danso joins (~dan@69-165-210-185.cable.teksavvy.com)
17:11:09 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac) (Read error: Connection reset by peer)
17:11:35 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac)
17:13:16 <koz_> rab24ack[m]: Gloss isn't really a good real-time renderer.
17:14:31 <rab24ack[m]> koz_: Does it use modern OpenGL?
17:14:32 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
17:14:38 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
17:14:47 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Client Quit)
17:14:54 <koz_> rab24ack[m]: I cannot speak for that, but I have seen it used as a real-time renderer, and it tends to be laggy.
17:15:15 <koz_> This isn't an Apecs issue - this was in the context of an FRP framework I think - but Gloss isn't really for real-time rendering.
17:15:48 <rab24ack[m]> koz_: Do you know of any real-time renderers for Haskell?
17:15:55 <rab24ack[m]> Or the alternatives
17:15:59 <koz_> rab24ack[m]: I'm about as far from an expert on that as it gets, sorry.
17:16:01 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
17:17:36 × Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection)
17:17:37 <rab24ack[m]> koz_: Thanks for your help
17:17:46 <rab24ack[m]> That's probably the issue
17:18:03 Mikagami joins (~MOSCOS@122.54.107.175)
17:18:13 × Franciman quits (~francesco@host-212-171-42-115.retail.telecomitalia.it) (Ping timeout: 264 seconds)
17:18:37 z joins (~z@ics141-225.icsincorporated.com)
17:18:40 Franciman joins (~francesco@host-95-233-218-218.retail.telecomitalia.it)
17:19:07 × obihann quits (~jhann@142.177.168.17) (Quit: Lost terminal)
17:20:00 <ph88^> is there a short hand notation for Prelude.repeat ?
17:20:19 <ij> import Prelude (repeat)?
17:21:04 ph88_ joins (~ph88@2a02:8109:9e00:7e5c:f45d:3271:263a:193e)
17:21:19 kritzefitz joins (~kritzefit@212.86.56.80)
17:21:30 <merijn> "repeat"? :p
17:22:20 <merijn> rab24ack[m]: Calling OpenGL from Haskell should be fairly straightforward
17:22:23 <koz_> Yeah, I don't quite understand what you mean by 'short hand notation'.
17:23:53 Kronic joins (~Kronic___@84.203.96.46)
17:24:56 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
17:25:07 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:d16a:df52:e053:9bac) (Ping timeout: 272 seconds)
17:27:44 <ij> groupBy signature is not what I expect
17:29:30 <dsal> :t groupBy
17:29:32 <lambdabot> (a -> a -> Bool) -> [a] -> [[a]]
17:29:35 <dsal> ij: What do you expect?
17:29:56 <ij> ah, I guess that would be called groupOn (analog to sortOn)
17:30:01 <dsal> :t groupOn
17:30:03 <lambdabot> error:
17:30:03 <lambdabot> • Variable not in scope: groupOn
17:30:03 <lambdabot> • Perhaps you meant one of these:
17:30:11 <dsal> It does exist, but it'd be further constrained.
17:30:11 <ij> but, see, it doesn't! :Pp
17:30:15 <dsal> @hoogle groupOn
17:30:15 <lambdabot> Data.List.Extra groupOn :: Eq b => (a -> b) -> [a] -> [[a]]
17:30:15 <lambdabot> Extra groupOn :: Eq b => (a -> b) -> [a] -> [[a]]
17:30:16 <lambdabot> Intro groupOn :: Eq b => (a -> b) -> [a] -> [[a]]
17:31:04 × Franciman quits (~francesco@host-95-233-218-218.retail.telecomitalia.it) (Ping timeout: 260 seconds)
17:31:40 <ij> ah, I'm looking for extra.groupSortOn
17:32:36 <ij> :t groupSortOn
17:32:38 <lambdabot> error: Variable not in scope: groupSortOn
17:33:07 <dsal> @hoogle groupSortOn
17:33:08 <lambdabot> Data.List.Extra groupSortOn :: Ord b => (a -> b) -> [a] -> [[a]]
17:33:08 <lambdabot> Extra groupSortOn :: Ord b => (a -> b) -> [a] -> [[a]]
17:33:08 <lambdabot> Intro groupSortOn :: Ord b => (a -> b) -> [a] -> [[a]]
17:33:18 <ij> λ: groupSortOn id "aabbbaacc"
17:33:21 <ij> ["aaaa","bbb","cc"]
17:33:38 <ij> which would be equivalent to groupOn, but I won't have identity there
17:33:41 dnlkrgr joins (~dnlkrgr@HSI-KBW-078-043-040-208.hsi4.kabel-badenwuerttemberg.de)
17:33:53 <ski> @let equating :: Eq b => (a -> b) -> (a -> a -> Bool); equating f = (==) `on` f
17:33:53 <dsal> It wouldn't be equivalent of groupOn because of the sorting phase.
17:33:55 <lambdabot> Defined.
17:34:03 <ski> @type groupBy . equating
17:34:05 <lambdabot> Eq b => (a -> b) -> [a] -> [[a]]
17:34:16 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
17:34:23 <ij> :t on
17:34:24 <lambdabot> (b -> b -> c) -> (a -> b) -> a -> a -> c
17:34:33 <ski> @type comparing
17:34:34 <lambdabot> Ord a => (b -> a) -> b -> b -> Ordering
17:34:44 <ski> @type \f -> compare `on` f
17:34:45 <lambdabot> Ord a1 => (a2 -> a1) -> a2 -> a2 -> Ordering
17:34:54 Franciman joins (~francesco@host-80-182-132-250.retail.telecomitalia.it)
17:35:01 <ij> that is a *nice* function
17:35:35 <ski> > sortBy (comparing length <> compare) (words "The quick brown fox jumps over the lazy dog")
17:35:38 <lambdabot> ["The","dog","fox","the","lazy","over","brown","jumps","quick"]
17:36:08 <ski> @src comparing
17:36:08 <lambdabot> comparing p x y = compare (p x) (p y)
17:36:14 <ski> @src on
17:36:15 <lambdabot> (*) `on` f = \x y -> f x * f y
17:37:39 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
17:38:26 <dsal> That's a weird src for on, but it's illustrative.
17:38:57 <ij> that syntax is insanely cool
17:39:06 <dsal> Which syntax?
17:39:11 <ij> @src on
17:39:11 <lambdabot> (*) `on` f = \x y -> f x * f y
17:39:19 bitmagie joins (~Thunderbi@200116b8061042004921a75e01362503.dip.versatel-1u1.de)
17:39:25 <ski> locally bound operators (e.g. being parameters rather than being defined) can be useful
17:39:27 <ij> I've seen it used, but it's really cool in this instance
17:40:43 × bitmagie quits (~Thunderbi@200116b8061042004921a75e01362503.dip.versatel-1u1.de) (Client Quit)
17:42:12 <ij> doeuis there a safe head in prelude?
17:42:16 <ij> still not? ha
17:42:39 <ij> other than fst <$> uncons
17:43:46 <Rembane> :t listToMaybe
17:43:46 <ski> @type listToMaybe
17:43:47 <lambdabot> [a] -> Maybe a
17:43:48 <lambdabot> [a] -> Maybe a
17:43:56 <Rembane> ski: ^5! :D
17:44:03 ski low fours
17:44:23 <Rembane> Legit
17:45:38 <ski> @quote safeFromJust
17:45:38 <lambdabot> monochrom says: I use safeFromJust :: Maybe a -> Maybe a
17:45:42 Victor joins (~jh@94.31.85.251)
17:46:03 × Victor quits (~jh@94.31.85.251) (Client Quit)
17:46:14 <rab24ack[m]> koz_: Here's the results of ghc with its profiler: https://paste.debian.net/1178638/
17:46:47 <rab24ack[m]> I wonder why glEnd and glutSwapBuffers used a lot of time. I think glEnd is the deprecated function from OpenGL using immediate mode.. yikes
17:47:03 <koz_> rab24ack[m]: Your guess is probably better than mine.
17:47:12 <koz_> I don't know anything whatsoever about computer graphics even in theory.
17:48:07 Victor joins (~jh@94.31.85.251)
17:48:30 Victor is now known as Guest74425
17:49:36 usr25 joins (~J@247.red-79-147-226.dynamicip.rima-tde.net)
17:52:18 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
17:54:45 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:55:20 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
17:56:21 stalactite[m] joins (stalactite@gateway/shell/matrix.org/x-cboftgeftibsawca)
17:58:04 francesco_ joins (~francesco@host-79-47-88-239.retail.telecomitalia.it)
17:58:07 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
17:59:59 × Franciman quits (~francesco@host-80-182-132-250.retail.telecomitalia.it) (Ping timeout: 265 seconds)
18:00:42 × dnlkrgr quits (~dnlkrgr@HSI-KBW-078-043-040-208.hsi4.kabel-badenwuerttemberg.de) (Ping timeout: 272 seconds)
18:01:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
18:02:05 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
18:02:46 juuandyy joins (~juuandyy@90.166.144.65)
18:03:16 Franciman joins (~francesco@host-79-23-87-194.retail.telecomitalia.it)
18:04:51 Wuzzy joins (~Wuzzy@p5790e186.dip0.t-ipconnect.de)
18:05:29 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
18:05:37 × francesco_ quits (~francesco@host-79-47-88-239.retail.telecomitalia.it) (Ping timeout: 246 seconds)
18:08:56 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
18:10:45 Guest74425 parts (~jh@94.31.85.251) ("Konversation terminated!")
18:14:34 rmk236 joins (~lcampos@ip-37-201-211-236.hsi13.unitymediagroup.de)
18:14:41 texasmynsted joins (~texasmyns@99.96.221.112)
18:16:20 × geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds)
18:19:12 × rmk236 quits (~lcampos@ip-37-201-211-236.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
18:20:09 rmk236 joins (~lcampos@2a02:908:3616:b100:c88b:5206:b6cb:7b2b)
18:22:59 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:f436:be73:ac71:a766) (Remote host closed the connection)
18:24:17 brisbin joins (~patrick@174-081-116-011.res.spectrum.com)
18:24:36 Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
18:27:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:29:07 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Ping timeout: 260 seconds)
18:32:50 christo joins (~chris@81.96.113.213)
18:35:49 × verement quits (~anonymous@cpe-76-167-229-223.san.res.rr.com) (Ping timeout: 260 seconds)
18:38:21 × ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
18:38:21 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
18:38:21 × teardown quits (~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
18:38:21 × xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
18:38:21 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Write error: Broken pipe)
18:38:21 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Write error: Broken pipe)
18:38:21 × denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
18:38:21 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Write error: Broken pipe)
18:38:21 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Write error: Broken pipe)
18:38:21 × srk quits (~sorki@gateway/tor-sasl/sorki) (Write error: Broken pipe)
18:38:22 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Write error: Broken pipe)
18:38:22 × tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Write error: Broken pipe)
18:38:50 jb55 joins (~jb55@gateway/tor-sasl/jb55)
18:38:51 gxt joins (~gxt@gateway/tor-sasl/gxt)
18:38:52 ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
18:38:55 hexo joins (~hexo@gateway/tor-sasl/hexo)
18:38:56 srk joins (~sorki@gateway/tor-sasl/sorki)
18:39:04 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
18:39:11 denisse joins (~spaceCat@gateway/tor-sasl/alephzer0)
18:39:23 tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64)
18:39:30 xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar)
18:39:57 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
18:40:35 × Franciman quits (~francesco@host-79-23-87-194.retail.telecomitalia.it) (Ping timeout: 265 seconds)
18:41:44 geekosaur joins (42d52137@66.213.33.55)
18:41:50 jpds joins (~jpds@gateway/tor-sasl/jpds)
18:41:55 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
18:43:23 dysfigured is now known as PM_me_your_fzf_s
18:43:32 avdb joins (~avdb@gateway/tor-sasl/avdb)
18:43:39 PM_me_your_fzf_s is now known as PM_me_your_fzf
18:44:02 teardown joins (~user@gateway/tor-sasl/mrush)
18:44:52 × usr25 quits (~J@247.red-79-147-226.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
18:45:42 × sheaf quits (~sheaf@sheaf.site) (Quit: sheaf)
18:46:09 Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
18:46:12 hekkaidekapus} joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
18:46:14 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
18:47:47 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
18:48:38 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds)
18:48:38 Lord_of_Life_ is now known as Lord_of_Life
18:52:23 × heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection)
18:56:45 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
18:57:34 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
18:59:22 heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
18:59:59 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
19:03:29 berberman_ joins (~berberman@unaffiliated/berberman)
19:04:42 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
19:05:02 × mananamenos__ quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Quit: Leaving)
19:05:06 × berberman_ quits (~berberman@unaffiliated/berberman) (Max SendQ exceeded)
19:05:34 berberman joins (~berberman@unaffiliated/berberman)
19:07:13 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds)
19:07:17 bisickcor joins (~username@117.200.9.213)
19:07:36 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
19:08:25 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
19:09:18 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
19:10:01 × iekfkk quits (~username@117.241.12.205) (Ping timeout: 246 seconds)
19:11:40 <ddellacosta> what is the cheapest computer-on-a-board-with-add-ons that Haskell will run on? I've started messing around with a raspberry pi lately, but it seems like overkill for what I want--just basic (secure) wireless networking, essentially
19:12:02 <ddellacosta> I mean, apart from the ability to interact with sensors and whatnot
19:14:27 <merijn> Well, that'd also depend whether "that haskell will run on" refers to *compiling* with GHC, or just running GHC compiled binaries
19:14:50 <ddellacosta> ah I
19:14:51 <merijn> For the former even an RPi seems underpowered
19:15:05 <ddellacosta> I'm happy to deal with cross-compiling rather than have the requirement to compile on the thing itself
19:15:29 <dolio> Yeah, you can likely go way lower spec if you cross compile.
19:15:52 × nyd quits (~nyd@unaffiliated/elysian) (Ping timeout: 265 seconds)
19:16:05 <ddellacosta> it seems like anything arm-based would work?
19:16:26 <merijn> That said, GHC isn't particularly optimised for low resource chips (then again, I'm sure any contributions to help with that are welcome ;))
19:16:36 dnlkrgr joins (~dnlkrgr@HSI-KBW-46-223-1-192.hsi.kabel-badenwuerttemberg.de)
19:16:47 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
19:16:47 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
19:16:47 mouseghost joins (~draco@wikipedia/desperek)
19:17:09 axeman- joins (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b)
19:17:19 <ddellacosta> yeah I have to learn a lot more about that I'm afraid (/excited for)
19:17:19 <merijn> ddellacosta: There's a bunch of people working on ARM support and cross-compilation, but it's still early days, so willingnes to get your hands dirty and working with a custom GHC would be a plus
19:17:28 nyd joins (~nyd@unaffiliated/elysian)
19:17:30 <ddellacosta> yeah I'm totally game
19:17:58 <merijn> ddellacosta: If you idle in in #ghc or join gitlab I'm sure even playing guinea pig with ARM support is welcome
19:18:07 <ddellacosta> ah that's a good idea, thanks merijn
19:18:26 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
19:18:51 <merijn> ghc-devs mailing list is also pretty low traffic (like, low double digits per week)
19:20:53 sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
19:22:48 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
19:25:53 × axeman- quits (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b) (Remote host closed the connection)
19:26:04 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
19:26:15 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
19:27:46 <ddellacosta> also this is interesting https://github.com/wereHamster/onion-omega
19:29:01 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
19:29:15 <ddellacosta> looks hacky as hell though lol
19:30:00 hackage prolude 0.0.0.14 - ITProTV's custom prelude https://hackage.haskell.org/package/prolude-0.0.0.14 (saramuse)
19:30:01 <ddellacosta> not a diss, it's impressive, just not something I want to base a stable app on
19:31:55 axeman- joins (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b)
19:39:06 × Aquazi quits (uid312403@gateway/web/irccloud.com/x-mjjgbcyiirddzuvf) (Quit: Connection closed for inactivity)
19:39:43 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
19:41:21 × nyd quits (~nyd@unaffiliated/elysian) (Quit: nyd)
19:41:35 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
19:42:10 Deide joins (~Deide@217.155.19.23)
19:42:52 <srid> Is `omitNothingFields` the idiomatic way to ignore certain fields during `toJSON` of aeson? Or is there a better way that doesn't entail forcing a field type to be `Maybe a`?
19:49:53 <merijn> "Write a custom instance?" :p
19:50:54 × solonarv quits (~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr) (Ping timeout: 272 seconds)
19:57:12 × notzmv quits (~user@unaffiliated/zmv) (Ping timeout: 260 seconds)
19:58:37 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:00:57 bitmagie joins (~Thunderbi@200116b8061042004921a75e01362503.dip.versatel-1u1.de)
20:02:32 argent0 joins (~argent0@191.81.240.24)
20:04:18 × axeman- quits (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b) (Remote host closed the connection)
20:04:47 × bitmagie quits (~Thunderbi@200116b8061042004921a75e01362503.dip.versatel-1u1.de) (Client Quit)
20:05:04 neiluj joins (~jco@73.245.204.77.rev.sfr.net)
20:05:15 × neiluj quits (~jco@73.245.204.77.rev.sfr.net) (Changing host)
20:05:15 neiluj joins (~jco@unaffiliated/neiluj)
20:06:51 × dilinger quits (~dilinger@spindle.queued.net) (Quit: leaving)
20:07:54 xcmw joins (~textual@2601:541:4404:bb5c:adfa:ae12:8179:7d64)
20:09:03 ADG1089__ joins (~aditya@223.235.213.117)
20:09:30 hackage citeproc 0.3.0.2 - Generates citations and bibliography from CSL styles. https://hackage.haskell.org/package/citeproc-0.3.0.2 (JohnMacFarlane)
20:09:31 axeman- joins (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b)
20:09:53 verement joins (~anonymous@cpe-76-167-229-223.san.res.rr.com)
20:10:46 acidjnk_new joins (~acidjnk@p200300d0c704e7909c09b71b3d2bb082.dip0.t-ipconnect.de)
20:13:01 philopso1 joins (~caecilius@gateway/tor-sasl/caecilius)
20:13:07 × philopso1 quits (~caecilius@gateway/tor-sasl/caecilius) (Client Quit)
20:13:24 philopso1 joins (~caecilius@gateway/tor-sasl/caecilius)
20:13:42 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
20:14:23 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
20:18:10 × al3x27 quits (~plovs@85.254.74.40) (Quit: WeeChat 2.9)
20:20:44 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
20:24:24 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
20:24:32 × juuandyy quits (~juuandyy@90.166.144.65) (Quit: Konversation terminated!)
20:24:41 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
20:26:38 tomtomgps joins (~tomtomgps@lfbn-lyo-1-7-128.w86-202.abo.wanadoo.fr)
20:26:45 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
20:26:57 × sfvm quits (~sfvm@37.228.215.77) (Quit: off to the basement, mixing up the medicine)
20:27:06 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
20:27:49 × sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 260 seconds)
20:28:10 × jneira quits (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) (Ping timeout: 256 seconds)
20:28:28 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
20:28:42 × argent0 quits (~argent0@191.81.240.24) (Quit: leaving)
20:31:42 kupi joins (uid212005@gateway/web/irccloud.com/x-nyttljrtonzbgexf)
20:32:26 × ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
20:33:00 ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
20:33:13 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Ping timeout: 264 seconds)
20:34:35 × Dykam quits (Dykam@dykam.nl) (Remote host closed the connection)
20:34:49 × tasuki quits (~tasuki@198.211.120.27) (Ping timeout: 260 seconds)
20:35:13 sfvm joins (~sfvm@37.228.215.77)
20:35:13 tasuki joins (~tasuki@198.211.120.27)
20:35:46 Dykam joins (Dykam@dykam.nl)
20:36:00 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-pwweyillfwqhggwn)
20:37:00 × tomtomgps quits (~tomtomgps@lfbn-lyo-1-7-128.w86-202.abo.wanadoo.fr) (Read error: No route to host)
20:37:25 × brisbin quits (~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 240 seconds)
20:38:55 × Kronic quits (~Kronic___@84.203.96.46) (Quit: Leaving)
20:41:23 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
20:41:46 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
20:45:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
20:45:33 <ProofTechnique> Am I wrong to expect the `<|>` for `Compose Maybe Last` to behave like `fmap Compose . ((<>) `on` getCompose)`? I was trying to generalize a `Semigroup` instance, but it seems to behave just like `Alternative Maybe`. I have a hunch it's because there's no `Alternative Last` in `Data.Semigroup`, but I'm out of my depth
20:46:31 <merijn> ProofTechnique: Eh, sounds like you just want "Maybe (Last a)" and not deal with compose at all
20:46:57 <merijn> > foldMap (Just . Last) [1..5]
20:46:59 <lambdabot> error:
20:46:59 <lambdabot> • No instance for (Num (Maybe ())) arising from a use of ‘e_115’
20:47:00 <lambdabot> • In the expression: e_115
20:47:07 <merijn> hmm
20:47:17 <merijn> Does lambdabot not have Last in scope?
20:47:19 <merijn> :t Last
20:47:20 <lambdabot> Maybe a -> Last a
20:47:27 <merijn> oh, wrong Last
20:47:30 <ProofTechnique> I'm working with a Barbies HKD, so this represents a partially filled piece of data
20:47:50 <ProofTechnique> I dunno if there's a smarter way to write that to avoid the Compose machinery
20:47:55 <merijn> ProofTechnique: "instance Semigroup m => Monoid (Maybe m)"
20:48:17 <merijn> ProofTechnique: So Compose is redundant when you're trying to construct a monoid out of a semigroup
20:50:37 <ProofTechnique> The type alias in question is `type Partial a = a Covered (Compose Maybe Last)`, which I take to be the blessed future version of `Last` from `Data.Monoid`. I'm trying to exploit the semigroup behavior of `Maybe (Last a)`, but I don't know any other way to write that for HKD types other than with Compose
20:50:51 usr25 joins (~J@247.red-79-147-226.dynamicip.rima-tde.net)
20:51:34 <ProofTechnique> So my actual instance looks like (<>) = bzipWith $ fmap Compose . ((<>) `on` getCompose), which I was hopeful I could replace with `bpure (<|>)`
20:52:05 <merijn> ProofTechnique: That seems...weirdly complicated compared to "liftA2 (<>)"?
20:52:17 <merijn> "Compose f g" is an Applicative, after all
20:52:39 <ProofTechnique> Type tetris :D
20:53:53 <gentauro> :t last
20:53:54 <lambdabot> [a] -> a
20:53:57 <gentauro> :)
20:55:27 × avdb quits (~avdb@gateway/tor-sasl/avdb) (Quit: avdb)
21:00:17 <ProofTechnique> Compiler's very mad about `liftA2 (<>)`. Eh, I don't particularly _need_ to generalize it, just seemed like it'd be a nice to have if I reuse this HKD machinery in other projects. I probably just need to bang my head against the library for a while to see if I'm just writing it in a silly way
21:01:58 kderme joins (2eb0d7c7@ppp046176215199.access.hol.gr)
21:03:27 <ProofTechnique> I think the sticking point is that I have no way to write "my `f` is `Maybe Last`" without `Compose`, at least in a way that `barbies` understands
21:06:52 Varis joins (~Tadas@unaffiliated/varis)
21:07:06 dilinger joins (~dilinger@spindle.queued.net)
21:10:06 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
21:11:00 philopso1 is now known as philopsos
21:11:05 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:11:58 <monochrom> Yes you pretty much need either Compose or roll your own type.
21:13:40 <dolio> ProofTechnique: The Alternative for Compose only uses the outer thing. But if you look at the current implementation, you might see a hint for how you could define your (<>).
21:14:01 <dolio> It is using `coerce` on `(<|>)` for `f (g a)`.
21:15:30 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
21:15:31 <monochrom> Nevermind, I didn't read the context.
21:16:38 sparsity joins (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145)
21:18:13 × xff0x_ quits (~fox@2001:1a81:52f4:bf00:af40:b425:ff29:4259) (Ping timeout: 268 seconds)
21:19:01 xff0x_ joins (~fox@2001:1a81:52f4:bf00:5dee:641f:6949:4e53)
21:19:43 <dolio> Can you just write a monoid instance? `instance Monoid (f (g a)) => Monoid (Compose f g a)`
21:20:47 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
21:23:21 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Remote host closed the connection)
21:24:13 × axeman- quits (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b) (Remote host closed the connection)
21:24:56 son0p joins (~son0p@181.136.122.143)
21:25:25 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds)
21:25:56 axeman- joins (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b)
21:27:57 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
21:28:06 madjestic joins (~madjestic@86-88-72-244.fixed.kpn.net)
21:28:50 <ProofTechnique> I do have a specialized Monoid instance for this type, which is just `Compose Nothing` in all the fields. As I say, I don't _really_ need to generalize the instances (I only use them so I can jam configuration values from different sources into one for final validation and then strip it all down to Identity), I was just hopeful I could write something generic to be reused elsewhere. The real instance head would
21:28:50 <ProofTechnique> be something like `instance Semigroup a => Semigroup (Configuration Covered f a) where` (plus whatever constraints the compiler demands) or maybe `instance Semigroup a => Semigroup (b w f a)` (plus a _bunch_ of constraints) if I want to get _wildly_ abstract
21:29:49 <ProofTechnique> Right now they're just specialized to `Partial Configuration`, which is `Configuration Covered (Compose Maybe Last) a`
21:30:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
21:30:44 <dolio> `Compose Nothing` is what the Alternative instance does.
21:30:50 <dolio> For the unit, at least.
21:31:07 × neiluj quits (~jco@unaffiliated/neiluj) (Ping timeout: 260 seconds)
21:31:46 neiluj joins (~jco@73.245.204.77.rev.sfr.net)
21:32:40 <ProofTechnique> Right, so I'm able to replace my specialized Monoid with `instance (Alternative f) => Monoid (Configuration w f a) where mempty = buniq empty` or something like that, which is definitely reusable
21:32:46 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:33:10 <ProofTechnique> (or maybe something more general, even, if I wanna get fancy)
21:33:15 Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
21:33:29 × xcmw quits (~textual@2601:541:4404:bb5c:adfa:ae12:8179:7d64) (Quit: Textual IRC Client: www.textualapp.com)
21:35:15 <madjestic> hey guys. A question about massiv library: is there a function, that, given 2 lists (a list of indices and another list), returns a list with elements of the second list mapped to the indices of the first? I think that backpermute' looks close to what I need, but I am not sure.
21:37:00 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
21:37:16 matryoshka joins (~matryoshk@184.75.223.227)
21:37:32 × neiluj quits (~jco@73.245.204.77.rev.sfr.net) (Changing host)
21:37:32 neiluj joins (~jco@unaffiliated/neiluj)
21:37:57 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Ping timeout: 268 seconds)
21:38:14 × rmk236 quits (~lcampos@2a02:908:3616:b100:c88b:5206:b6cb:7b2b) (Quit: Leaving.)
21:40:59 <dsal> madjestic: Are you asking for zip?
21:41:20 <dsal> > zip [0..] ['a'..'z']
21:41:22 <lambdabot> [(0,'a'),(1,'b'),(2,'c'),(3,'d'),(4,'e'),(5,'f'),(6,'g'),(7,'h'),(8,'i'),(9,...
21:42:18 <ProofTechnique> https://hackage.haskell.org/package/massiv-0.5.9.0/docs/Data-Massiv-Array.html#v:zip
21:43:09 × geekosaur quits (42d52137@66.213.33.55) (Remote host closed the connection)
21:43:37 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds)
21:44:09 × neiluj quits (~jco@unaffiliated/neiluj) (Read error: Connection reset by peer)
21:45:15 christo joins (~chris@81.96.113.213)
21:47:45 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
21:47:57 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
21:50:11 neiluj joins (~jco@73.245.204.77.rev.sfr.net)
21:52:51 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
21:53:50 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
21:57:37 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
21:58:13 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
21:58:49 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
21:59:26 <madjestic> dsal: I don't think so: remap [0,2,1,0] [3,4,5] -> [3,5,4,3]
21:59:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:00:49 Varis joins (~Tadas@unaffiliated/varis)
22:00:49 × neiluj quits (~jco@73.245.204.77.rev.sfr.net) (Ping timeout: 264 seconds)
22:00:55 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
22:01:20 <dsal> > zipWith (!!) [0,2,1,0] [3,4,5]
22:01:22 <lambdabot> error:
22:01:22 <lambdabot> • No instance for (Num [()]) arising from a use of ‘e_10210345’
22:01:22 <lambdabot> • In the expression: e_10210345
22:01:31 neiluj joins (~jco@173.198.204.77.rev.sfr.net)
22:01:33 <ephemient> @pl \a b -> map (b !!) a
22:01:34 <lambdabot> flip (map . (!!))
22:01:51 <dsal> > fmap find ([3,4,5]) [0,2,1,0]
22:01:53 <lambdabot> error:
22:01:53 <lambdabot> • Couldn't match expected type ‘[a0] -> t’
22:01:53 <lambdabot> with actual type ‘[t0 a1 -> Maybe a1]’
22:01:57 <dsal> *sigh*
22:02:59 × DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
22:04:23 × bisickcor quits (~username@117.200.9.213) (Read error: Connection reset by peer)
22:04:54 ransom joins (~c4264035@8.47.12.52)
22:05:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
22:05:24 <aplainzetakind> >zipWith (!!) [0,2,1,0] $ pure [3,4,5]
22:05:26 Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
22:05:29 bisickcor joins (~username@117.200.14.227)
22:06:01 <dsal> There are a lot of dumb ways to do this. heh
22:06:03 <ephemient> > flip (map . (!!)) [0,2,1,0] [3,4,5]
22:06:06 <lambdabot> [3,5,4,3]
22:06:27 <ephemient> yeah it is pretty much backpermute
22:07:26 <dsal> I've not seen backpermute, but Data.Vector has an unsafe variety, so I assume that's better.
22:08:21 × neiluj quits (~jco@173.198.204.77.rev.sfr.net) (Read error: Connection reset by peer)
22:10:12 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Ping timeout: 260 seconds)
22:13:44 neiluj joins (~jco@173.198.204.77.rev.sfr.net)
22:14:43 Tops2 joins (~Tobias@dyndsl-095-033-021-140.ewe-ip-backbone.de)
22:15:23 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
22:15:46 Tops22 joins (~Tobias@dyndsl-095-033-021-140.ewe-ip-backbone.de)
22:18:22 × Tops21 quits (~Tobias@dyndsl-095-033-021-140.ewe-ip-backbone.de) (Ping timeout: 260 seconds)
22:19:58 aidecoe joins (~aidecoe@unaffiliated/aidecoe)
22:20:01 × Tops2 quits (~Tobias@dyndsl-095-033-021-140.ewe-ip-backbone.de) (Ping timeout: 265 seconds)
22:20:10 × coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
22:20:42 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
22:22:39 × heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection)
22:23:10 × axeman- quits (~axeman_@2a02:8109:86c0:1f98:9cf8:d808:559a:5c4b) (Remote host closed the connection)
22:23:45 × argento quits (~argent0@168.227.96.51) (Ping timeout: 240 seconds)
22:24:13 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds)
22:24:21 axeman- joins (~axeman_@2a02:8109:86c0:1f98:6dea:ad37:a641:54a2)
22:24:31 Kronic joins (~Kronic___@84.203.96.46)
22:25:23 × sparsity quits (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
22:27:16 × axeman- quits (~axeman_@2a02:8109:86c0:1f98:6dea:ad37:a641:54a2) (Client Quit)
22:32:56 × neiluj quits (~jco@173.198.204.77.rev.sfr.net) (Quit: leaving)
22:35:17 <ski> > map (listArray (0,2) [3,4,5] !) [0,2,1,0]
22:35:19 <lambdabot> [3,5,4,3]
22:35:53 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
22:36:09 Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
22:37:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:37:33 christo joins (~chris@81.96.113.213)
22:39:40 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
22:39:49 × Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-134-116.cust.tzulo.com) (Remote host closed the connection)
22:42:21 sparsity joins (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145)
22:45:35 christo joins (~chris@81.96.113.213)
22:46:32 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
22:46:41 × matryoshka quits (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
22:46:58 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
22:49:24 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
22:51:09 <ski> > (map (snd . head &&& map fst) . groupBy (equating snd) . sortOn snd . zip [0 ..]) [0,2,1,0]
22:51:12 <lambdabot> [(0,[0,3]),(1,[2]),(2,[1])]
22:51:21 <ski> > ((map . fmap) reverse . assocs . accumArray (flip (:)) [] (0,2) . (`zip` [0 ..])) [0,2,1,0]
22:51:23 <lambdabot> [(0,[0,3]),(1,[2]),(2,[1])]
22:51:55 neiluj joins (~jco@173.198.204.77.rev.sfr.net)
22:52:02 × neiluj quits (~jco@173.198.204.77.rev.sfr.net) (Changing host)
22:52:02 neiluj joins (~jco@unaffiliated/neiluj)
23:00:53 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
23:05:03 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
23:07:39 × neiluj quits (~jco@unaffiliated/neiluj) (Ping timeout: 260 seconds)
23:08:23 neiluj joins (~jco@173.198.204.77.rev.sfr.net)
23:09:56 × darjeeling_ quits (~darjeelin@122.245.217.190) (Ping timeout: 240 seconds)
23:10:02 argento joins (~argent0@168.227.96.51)
23:10:26 × fendor_ quits (~fendor@77.119.131.12.wireless.dyn.drei.com) (Remote host closed the connection)
23:11:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
23:11:10 × argento quits (~argent0@168.227.96.51) (Client Quit)
23:12:39 × Lowl3v3l quits (~Lowl3v3l@dslb-084-062-101-233.084.062.pools.vodafone-ip.de) (Quit: Leaving.)
23:14:23 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
23:14:58 <fuzzypixelz> (once again) I'm trying to do aoc day 8, this is what I came up with so far https://bpa.st/IDSA
23:16:47 <fuzzypixelz> A function that takes the global variable in the program (Int), and returns a State monad that remembers the last line number that was being execued and the list of all lines visited,
23:16:48 <dsal> @undo do f -- fuzzypixelz
23:16:48 <lambdabot> f
23:18:20 <fuzzypixelz> dsal: but there has to be some sort of "loop" that stops when the function returns Nothing
23:18:56 <fuzzypixelz> because execute only does one instruction
23:19:23 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
23:19:24 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
23:19:29 <dsal> Yeah, I had a function that did state -> state, and then I iterated that.
23:19:33 Tario joins (~Tario@201.192.165.173)
23:19:41 <dsal> e.g., `run prog = iterate (evalStep prog) (Right emptyProgramState)`
23:19:44 <fuzzypixelz> I think I should be able to write that with mapM(_) somehow but I can't figure it out
23:19:52 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
23:19:52 <dsal> What are you mapping?
23:19:53 × sfvm quits (~sfvm@37.228.215.77) (Quit: off to the basement, mixing up the medicine)
23:19:56 <ij> how easy is it to get coc.nvim and an ide engine working if I have nix?
23:20:05 christo joins (~chris@81.96.113.213)
23:21:04 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
23:21:19 <dsal> fuzzypixelz: there are a few things in monad-loops, but I just did it myself.
23:22:45 × neiluj quits (~jco@173.198.204.77.rev.sfr.net) (Ping timeout: 240 seconds)
23:23:04 heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
23:23:27 × usr25 quits (~J@247.red-79-147-226.dynamicip.rima-tde.net) (Quit: Bye)
23:23:53 <fuzzypixelz> dsal: whileJust looks promising
23:24:04 <fuzzypixelz> As long as the supplied Maybe expression returns "Just _", the loop body will be called and passed the value contained in the Just. Results are collected into a list.
23:24:10 × son0p quits (~son0p@181.136.122.143) (Quit: leaving)
23:24:11 <fuzzypixelz> Monad m => m (Maybe a) -> (a -> m b) -> m [b]
23:24:49 × christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
23:25:10 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
23:25:18 × sparsity quits (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
23:25:53 darjeeling_ joins (~darjeelin@122.245.217.190)
23:26:29 × ericsagnes quits (~ericsagne@2405:6580:0:5100:f3bd:76da:a01c:8f3f) (Ping timeout: 268 seconds)
23:27:06 christo joins (~chris@81.96.113.213)
23:27:16 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
23:27:38 matryoshka joins (~matryoshk@184.75.223.227)
23:27:47 × heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
23:28:22 sgibber2018 joins (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
23:28:38 <dsal> Yeah, or you can just use iterate. :)
23:29:21 <dsal> > takeWhile (< 5) . iterate (+1) $ 1
23:29:23 <lambdabot> [1,2,3,4]
23:30:04 × ezzieyguywuf quits (~Unknown@unaffiliated/ezzieyguywuf) (Remote host closed the connection)
23:30:08 heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
23:30:47 <fuzzypixelz> Ah I didn't know that existed
23:30:56 ericsagnes joins (~ericsagne@2405:6580:0:5100:bed2:c8ad:c296:966c)
23:31:16 × christo quits (~chris@81.96.113.213) (Ping timeout: 240 seconds)
23:31:46 × knupfer quits (~Thunderbi@87.123.206.116) (Ping timeout: 256 seconds)
23:32:41 <fuzzypixelz> dsal: and use takeWhileM, right?
23:32:55 <dsal> I don't use monad-loops here.
23:33:09 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:33:43 <dsal> If you just have a function (a -> a) iterate turns that into [a]. Then you take or drop what you want from that.
23:34:08 <dsal> @src iterate
23:34:08 <lambdabot> iterate f x = x : iterate f (f x)
23:34:11 <dsal> @src fix
23:34:11 <lambdabot> fix f = let x = f x in x
23:35:09 <madjestic> ski: `map (listArray (0,2) [3,4,5] !) [0,2,1,0]` is a bit similar to massiv syntax: backpermute' @P (Sz1 4) ((fromLists' Par ([0,2,1,0]) :: (Array P Ix1 Int)) !) (fromLists' Par ([3,4,5]) :: (Array P Ix1 Int)). Now I wonder if I can sort rows of a 2D array, based on 1D array of indices...
23:37:21 Darwin226 joins (5fa87473@95.168.116.115)
23:38:07 Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-132.cust.tzulo.com)
23:38:49 × Tops22 quits (~Tobias@dyndsl-095-033-021-140.ewe-ip-backbone.de) (Quit: Leaving.)
23:39:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:39:17 christo joins (~chris@81.96.113.213)
23:39:26 × ericsagnes quits (~ericsagne@2405:6580:0:5100:bed2:c8ad:c296:966c) (Ping timeout: 268 seconds)
23:39:40 plastman joins (2df1c176@45.241.193.118)
23:40:30 <plastman> newbie here. how is haskell on windows like? sure there is a GHC port for windows but is it worth it? or should I try on WSL instead?
23:41:38 × jle` quits (~mstksg@unaffiliated/mstksg) (Ping timeout: 256 seconds)
23:41:57 <Darwin226> Hey guys. Is there a name for this type somewhere: newtype Inf m a = Inf (m (a, Inf m a))?
23:42:08 <Kronic> I'm a little bit above new, It's pretty okay, but in my experience it is not as seamless as other things on windows. I use VMWare player to host a linux vm to write my code and that works very well for me, but there are definitely people writing ocde on Windows with great regularity plastman
23:42:10 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
23:43:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
23:44:07 <monochrom> Darwin226: looks like "ListT done right" but without the end-of-list case.
23:44:08 <glguy> Darwin226, I don't know of one, but it looks related to http://hackage.haskell.org/package/free-5.1.5/docs/Control-Comonad-Cofree.html
23:44:38 <Darwin226> Hmm, so sort of a StreamT done right
23:44:45 usr25 joins (~usr25@unaffiliated/usr25)
23:44:57 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
23:45:18 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
23:46:25 × dhil quits (~dhil@78.156.97.38) (Ping timeout: 264 seconds)
23:46:48 GuerrillaMonkey joins (~Jeanne-Ka@static-198-54-134-46.cust.tzulo.com)
23:47:38 vicfred joins (~vicfred@unaffiliated/vicfred)
23:47:47 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
23:47:55 × Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-134-132.cust.tzulo.com) (Ping timeout: 246 seconds)
23:50:41 christo joins (~chris@81.96.113.213)
23:52:37 × p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Read error: Connection reset by peer)
23:52:57 p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
23:53:17 <ij> is it possible to make this condition consist of two or operands? (x `mod` scale == 0) || (x `mod` scale == scale - 1) || (y `mod` scale == 0) || (y `mod` scale == scale - 1)
23:53:33 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
23:53:50 × plastman quits (2df1c176@45.241.193.118) (Remote host closed the connection)
23:53:54 christo joins (~chris@81.96.113.213)
23:54:06 <ij> it checks for borders accross the checkerboard that scale-wide blocks would make on 0-indexed 2d array
23:54:57 <glguy> (x+1)`mod`scale<2 || (y+1)`mod`scale<2
23:55:09 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
23:55:49 christo joins (~chris@81.96.113.213)
23:56:42 <ski> > elems (ixmap (0,3) (listArray (0,3) [0,2,1,0] !) (listArray (0,2) [3,4,5])) -- madjestic, yea, looks like this
23:56:44 <lambdabot> [3,5,4,3]
23:56:48 Natch joins (~natch@85.226.113.180)
23:57:09 <ij> glguy, you're right! amazing
23:57:56 <ij> glguy, how? 😅
23:59:43 × matryoshka quits (~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
23:59:56 × christo quits (~chris@81.96.113.213) (Ping timeout: 240 seconds)

All times are in UTC on 2020-12-28.