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