2020/12/28

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