Home liberachat/#haskell: Logs Calendar

Logs on 2022-03-29 (liberachat/#haskell)

00:00:18 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
00:00:19 <geekosaur> aren't there already languages that work that way? (sather?)
00:00:36 <abastro[m]> IIRC yes
00:01:11 <hpc> all unit tests are runnable constraints, just not in a language that looks particularly like constraints
00:01:21 <hpc> maybe if it was prolog
00:01:24 <dminuoso> What does "runnable constraint" even mean?
00:02:46 <abastro[m]> Btw this post comes to my mind
00:02:46 <abastro[m]> https://hirrolot.github.io/posts/why-static-languages-suffer-from-complexity
00:06:12 dminuoso finds the vast majority of blogs to be not readworthy
00:07:13 <abastro[m]> Why tho
00:07:27 <abastro[m]> It at least reveals various perspectives of ppl
00:07:39 <dminuoso> I find that published papers generally have a higher chance to fit in the 4 categories monochrom mentioned.
00:07:45 <jackdk> Because someone said "you should blog, it's good for your career", so now everyone blogs, and the signal is lost in the noise
00:07:53 × xff0x quits (~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Ping timeout: 260 seconds)
00:08:15 <geekosaur> and every wrong opinion out there is now broadcast to everyone
00:08:21 <hpc> a person's perspective can be anything
00:08:27 <monochrom> Frankly I am not interested in the perspectives of flatearthers and antivaxxers, for example.
00:08:27 <hpc> see also: social networks :P
00:08:30 <dminuoso> Mostly because people tend to spend a great deal of time on papers, there's usually peer review, there's cited literature, there's a standard format by which I can quickly get a gist of its content by skimming its abstracft and conclusions.
00:08:46 <monochrom> Just examples to show that a ton of perspectives are valueless.
00:09:12 <jackdk> monochrom: you just need to do the research. Then you'll understand how the lizards living inside the hollow flat earth established their system of control.
00:09:32 <hpc> @quote staircase
00:09:32 <lambdabot> hpc says: mountains are a lie perpetrated by big staircase
00:09:53 <jackdk> That makes my day
00:09:54 <monochrom> Human nature being human nature, programmers' blogs are no different. Like I said, failing in well-informed and unbiased, as most humans do.
00:11:18 <abastro[m]> Well yep but it is how the world today runs
00:11:31 <abastro[m]> Vast majority of ppl do not read papers
00:12:24 <dminuoso> The world is run on technology whose foundation is in academia, though.
00:12:57 × fendor_ quits (~fendor@77.119.209.169.wireless.dyn.drei.com) (Remote host closed the connection)
00:13:08 <abastro[m]> I often hear that academia is too slow, so technology is detached nowadays
00:13:25 <abastro[m]> And companies do their own research if needed
00:13:39 <abastro[m]> I mean, otherwise I cannot comprehend Go
00:13:40 sayola joins (~vekto@dslb-002-201-085-116.002.201.pools.vodafone-ip.de)
00:13:49 fendor_ joins (~fendor@77.119.209.169.wireless.dyn.drei.com)
00:13:54 <jackdk> Go is not a product of research
00:13:55 <abastro[m]> The very existence of it
00:14:02 × boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Ping timeout (120 seconds))
00:14:12 <monochrom> Before the web, you could have rightfully bet that if someone bothered to publish a book through a large publisher, then just all the hurdles of the process were enough screening that even if eventually the book proved to be wrong, you would still get some value out of going through the reading and refuting, for example maybe it's only partly wrong or it made some good points. That would be what you call "at least some perspective".
00:14:34 <abastro[m]> I mean, what does it indicate if not detachment of industry from research?
00:14:36 × paul1 quits (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) (Ping timeout: 240 seconds)
00:14:37 <dminuoso> Go was designed by Google as a means to hire masses of young developers. So its design was centered around "make this teachable to people out of high school in under three weeks" (a bit of a hyperbole here, but I hope you get the idea)
00:14:40 <monochrom> Today, it's so cheap to just shout on the internet, you can't bet like that anymore.
00:14:43 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
00:14:54 × sayola1 quits (~vekto@dslb-002-201-085-116.002.201.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
00:14:56 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
00:15:02 <hpc> dminuoso: not much hyperbole
00:15:15 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
00:15:32 <hpc> i would put maybe a factor of 50% either way on 3 weeks, and that's it
00:15:37 kaskal joins (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8)
00:15:47 <dminuoso> And I dont mean it to critize, Go exceeded that design goal.
00:16:11 <dminuoso> Don't let the trolly gopher mascot side track you. :)
00:16:28 <monochrom> I thought it was "make the language so easy that people out of high school can write a compiler for it under three weeks" >:)
00:16:30 <hpc> in any event, most of what people perceive as corporate "research" is just discovering the right application for the right academic thing
00:16:31 <abastro[m]> I wonder there was a branch of PL dedicated for learn-ability
00:16:57 <hpc> to use another google example, mapreduce has it right in the name
00:17:06 <hpc> they were not even remotely close to doing original research there
00:17:07 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
00:17:15 <abastro[m]> Which research is `Go` based on
00:17:28 <dminuoso> abastro[m]: companies do their own research not because of speed, but because of financial interests.
00:17:30 <abastro[m]> I mean some are from research, yes
00:17:34 <abastro[m]> Tho others?
00:17:47 <dminuoso> Why publish a result? That would enable competitors to use your findings.
00:18:15 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
00:18:19 <hpc> everything in go is basically algol, including the concurrency primitives - https://en.wikipedia.org/wiki/ALGOL_68#par:_Parallel_processing
00:18:31 <dminuoso> The only way companies can usually fund research is by keeping results under a tight lock, getting patents, and then hoping they get to the goal faster than the competetion.
00:18:44 HotblackDesiato_ joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
00:18:55 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
00:19:15 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
00:19:22 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
00:19:26 <dminuoso> And usually the private sector has *tons* more money. A lot of research in universities is funded either by the private sector (in which case there's often agreements that keep the resulting master thesis secret), or by research grants, which are extremely limited.
00:19:30 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
00:19:45 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
00:19:48 <dminuoso> This applies particularly to high tech
00:19:57 chexum joins (~quassel@gateway/tor-sasl/chexum)
00:20:03 <hpc> probably the last truly effective bit of "research" to come out of industry was packet switching from bell labs
00:20:09 × Trattue quits (~Trattue@152.70.182.158) (Ping timeout: 240 seconds)
00:20:09 × feliix42_ quits (~felix@gibbs.uberspace.de) (Ping timeout: 240 seconds)
00:20:09 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
00:20:19 feliix42 joins (~felix@gibbs.uberspace.de)
00:20:34 <Axman6> Hmmm, anyone else just have a bunch of messages arrive all at once?
00:20:46 Trattue joins (~Trattue@152.70.182.158)
00:20:53 <monochrom> Yeah, blaming academic research to be slow is a mixture of blaming the victim and denying that doing things properly is slow.
00:21:09 <Axman6> I have nothing between 15 past and 20 pastm, then about 20 messages all together
00:21:37 <hpc> Axman6: just you
00:21:38 img joins (~img@2405:6580:b1c0:2500:7fee:4a8a:9cab:420)
00:21:38 × img quits (~img@2405:6580:b1c0:2500:7fee:4a8a:9cab:420) (Changing host)
00:21:38 img joins (~img@user/img)
00:21:44 <abastro[m]> I mean see the projection of university going largely out of fashion due to detachment from industry
00:21:44 <abastro[m]> Due to fast-moving world
00:21:44 <abastro[m]> Wait wha
00:21:44 <abastro[m]> Go was (nearly) algol?
00:21:44 <abastro[m]> Yea, by research of industry I meant them studying by themselves and not publishing
00:21:44 <abastro[m]> Well, it is not blaming
00:21:44 <abastro[m]> It is just that university student is taught something increasingly detached
00:21:52 <hpc> oh, or maybe not
00:21:53 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
00:21:55 <hpc> just got a burst myself
00:22:01 <abastro[m]> Anyway I am honestly intimidated by Go's rising
00:22:08 <Axman6> yeah, abastro[m] flood :P
00:22:09 <abastro[m]> Sorry for being on matrix bridge
00:22:26 <hpc> maybe one of libera's servers is slow
00:22:33 <abastro[m]> I should perhaps get a proper libera client
00:22:37 <Axman6> I don't think this is a matrix thing. glguy you know if something's going on with libra's servers?
00:22:53 chenqisu12 joins (~chenqisu1@183.217.200.168)
00:23:12 <abastro[m]> I am on matrix posting to this server, which is going through the matrix bridge btw
00:24:38 <abastro[m]> Perhaps i am a bit irritated of some ppl I know pushing heavily on Go for its simplicity and "readability"
00:24:54 <dminuoso> At the end businesses strive from finding the ideal balancing point between "ship early but potentially broken" and "ship late but potentially stable" in all kinds of technology.
00:24:59 <abastro[m]> Tho tbf they are relatively beginner in programming
00:25:04 <dminuoso> If you want, you end up spending more and giving the competition more time.
00:25:06 <dminuoso> *wait
00:25:40 × chenqisu1 quits (~chenqisu1@183.217.200.168) (Ping timeout: 272 seconds)
00:26:01 <dminuoso> If you publish products too early, you risk shipping an unviable product. So I guess a lot of the technologies in compsci in the last 20 years are an artifact of businesses looking for their own sweet spot.
00:27:43 <abastro[m]> I guess In the end haskell was too restrictive
00:27:49 <dminuoso> So yeah, some businesses have an interest in using JavaScript because, from a business perspective, you get masses of low-skilled developers, that can just plug and play half of npm together, and produce something that 80% of the time does its job.
00:28:07 <dminuoso> And if that enables you to get more money from investors constantly
00:28:14 <dminuoso> Then it's a successful business strategy
00:28:33 <glguy> Axman6: it seems like a hub was having network lag for a moment but I show it as recovered now
00:29:44 <dminuoso> glguy: By the way, config-schema pull request. Can you weigh in on that? If that has a chance of getting merged, I would start rewriting a bunch of nixos modules against it. :p
00:29:47 <Axman6> Cool, just thought I'd point it out in case it was something the champions running the place hadn't seen
00:30:42 <monochrom> Yeah I think industry chooses languages by just how many people can apply to their jobs. Not even anything to do with type systems or "paradigms". Recall that, for example, there was a time Java and C++ was more fashionable than Tcl/Tk and Python (which did exist back then).
00:31:26 <dminuoso> And availability of existing libraries they can plug in. Every used library is developer time saved.
00:31:36 <abastro[m]> So if one is developing language nowadays, I guess it is better to be extremely easy
00:31:41 <dminuoso> Which also explains why some of these products have an exploding depedency closure
00:31:48 <monochrom> And today Java and C++ are still very important, despite how people pretend to talk only about Python and Javascript.
00:31:51 <dminuoso> It's simply an artifact of saving developer time
00:32:17 <abastro[m]> I thought ppl only talk about Java
00:32:44 <hpc> java has a monopoly by way of android phones
00:32:57 <hpc> anything high-performance on a desktop is going to be C++
00:33:24 <hpc> including all those great big javascript interpreters
00:33:39 <hpc> most python libraries are thin wrappers for C code
00:33:54 <dminuoso> java is also very ubiquitous in corporate software
00:34:41 <hpc> php is still everywhere too
00:34:46 <hpc> and ruby
00:34:47 <dminuoso> It's very hard to find larger companies that dont have either a few or even entire landscapes of Java software
00:35:58 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
00:38:55 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
00:39:08 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
00:40:12 <glguy> dminuoso: Is that a big improvement over using a customSpec on textSpec?
00:40:21 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
00:41:49 × pnotequalnp quits (~kevin@user/pnotequalnp) (Ping timeout: 246 seconds)
00:41:51 × dpratt quits (sid193493@2a03:5180:f:1::2:f3d5) (Ping timeout: 250 seconds)
00:41:51 × hook54321 quits (sid149355@user/hook54321) (Ping timeout: 250 seconds)
00:41:51 × ysh quits (sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 250 seconds)
00:41:51 × megeve quits (sid523379@id-523379.hampstead.irccloud.com) (Ping timeout: 250 seconds)
00:42:14 <glguy> dminuoso: like the hastily written: let textLiteral x = customSpec ("\"" <> x <> "\" literal") textSpec (\y -> if y == x then Right () else Left ("expected \"" <> x <> "\""))
00:43:05 xff0x joins (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp)
00:43:34 megeve joins (sid523379@id-523379.hampstead.irccloud.com)
00:43:36 ysh joins (sid6017@id-6017.ilkley.irccloud.com)
00:44:03 <glguy> or I wonder if it'd be better to replace AtomSpec and TextSpec with a more general ExactSpec that takes an arbitrary Value
00:44:44 hook54321 joins (sid149355@user/hook54321)
00:45:04 dpratt joins (sid193493@id-193493.helmsley.irccloud.com)
00:46:02 <abastro[m]> And software will always be unreliable
00:48:23 <abastro[m]> I hope ppl would not ditch research because "it is not worth the cost"
00:50:57 <glguy> dminuoso: at a minimum I can imagine someone wanting to use specific numbers
00:51:06 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
00:53:39 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
00:57:51 <tapas> sm: yo how was yesod blocked by base64 btw?
00:58:11 <tapas> i'm not seeing the package being used, grepping through the code base. Is yesod migrating to it on some branch?
00:59:28 <abastro[m]> (Any suggestion of using haskell in math btw? I am going for math major and it would be great if I could.. use it for sth)
00:59:33 Mags0001 joins (~Mags@host-79-26-197-11.retail.telecomitalia.it)
01:00:47 Mags0001 parts (~Mags@host-79-26-197-11.retail.telecomitalia.it) ()
01:01:02 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
01:01:32 <tapas> just do math
01:04:28 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
01:05:56 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer)
01:06:11 euandreh joins (~euandreh@2804:14c:33:9fe5:2ad9:1465:5fb9:8672)
01:06:14 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
01:06:14 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
01:06:14 wroathe joins (~wroathe@user/wroathe)
01:10:27 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:10:38 × dka quits (~code-is-a@ns3059207.ip-193-70-33.eu) (Ping timeout: 272 seconds)
01:12:09 dka joins (~code-is-a@ns3059207.ip-193-70-33.eu)
01:12:17 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
01:12:49 × Akiva quits (~Akiva@user/Akiva) (Quit: WeeChat 3.4)
01:13:15 boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
01:14:41 geoduck joins (~X@71.182.184.253)
01:15:07 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
01:15:32 <abastro[m]> Welp okay..
01:16:33 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:18 × sprout quits (~quassel@2a02:a467:ccd6:1:950:287b:c4be:ac00) (Ping timeout: 260 seconds)
01:21:28 neurocyte1 joins (~neurocyte@IP-094016066081.dynamic.medianet-world.de)
01:21:29 × neurocyte1 quits (~neurocyte@IP-094016066081.dynamic.medianet-world.de) (Changing host)
01:21:29 neurocyte1 joins (~neurocyte@user/neurocyte)
01:23:50 × neurocyte quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
01:23:50 neurocyte1 is now known as neurocyte
01:26:01 Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
01:27:31 ddb joins (~ddb@2607:5300:203:9993::196)
01:28:43 <sm> tapas that's a good question. It allowed stack install yesod to work here, but I saw the stackage folks didn't need it. Maybe somebody did a bounds revision, or I messed up somehow.
01:29:42 × euandreh quits (~euandreh@2804:14c:33:9fe5:2ad9:1465:5fb9:8672) (Ping timeout: 260 seconds)
01:30:31 euandreh joins (~euandreh@2804:14c:33:9fe5:203:625:d7c4:9b0)
01:30:55 <sm> I assumed it just facilitated a viable install plan for yesod, rather than being used by yesod
01:31:27 vglfr joins (~vglfr@88.155.45.251)
01:35:58 × nosewings quits (~ngpc@2603-8081-3e05-e2d0-e11f-0c89-4074-605e.res6.spectrum.com) (Remote host closed the connection)
01:40:16 × mixfix41 quits (~homefame@user/mixfix41) (Ping timeout: 246 seconds)
01:40:45 paraseba joins (~paraseba@187.10.123.216)
01:40:59 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
01:45:18 mixfix41 joins (~homefame@user/mixfix41)
01:45:55 justsomeguy joins (~justsomeg@user/justsomeguy)
01:47:07 <paraseba> How would one write isSorted using lens? It would have to zip together contiguous elements of a Fold I suppose?
01:48:18 srk- joins (~sorki@user/srk)
01:48:53 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
01:49:27 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
01:49:39 × srk quits (~sorki@user/srk) (Ping timeout: 250 seconds)
01:50:08 <janus> sm: it was enabled a couple of days ago: https://github.com/commercialhaskell/stackage/commit/74cfdcf03f96459a396f1b9b6f307b57069ea69b#diff-9949098b9af80e5fcef9a718fdda416f3fa8272ca8add4d67ae65fe892990939R5245
01:51:02 srk- is now known as srk
01:51:57 dcoutts__ joins (~duncan@host86-151-9-10.range86-151.btcentralplus.com)
01:54:25 × dcoutts_ quits (~duncan@host86-151-44-233.range86-151.btcentralplus.com) (Ping timeout: 250 seconds)
01:56:57 pnotequalnp joins (~kevin@user/pnotequalnp)
01:59:17 × vglfr quits (~vglfr@88.155.45.251) (Ping timeout: 260 seconds)
02:02:25 lispy joins (~lispy@82.212.115.165)
02:08:22 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
02:08:27 × justOkay quits (~justache@user/justache) (Quit: The Lounge - https://thelounge.chat)
02:13:03 justOkay joins (~justache@user/justache)
02:17:07 <Zemyla> :t \g s -> foldrOf g (\a r -> maybe (r (Just a)) (\b -> a >= b && r (Just a))) (const True) s Nothing -- paraseba
02:17:08 <lambdabot> Ord a => Getting (Endo (Maybe a -> Bool)) s a -> s -> Bool
02:21:05 <paraseba> huh, that's a mouthful... interesting. Thank you!
02:27:38 <abastro[m]> Very interesting code
02:27:41 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
02:28:07 <abastro[m]> Continuation style, right?
02:29:57 <Zemyla> Yep. I'm pretty sure there's a way to do it with less code.
02:30:52 <abastro[m]> I wonder if continuation monad could be actually more manageable
02:32:02 <Zemyla> Also, I spent all day getting excited that Mealy machines were Traversing Profunctors.
02:32:39 <abastro[m]> ?!?!
02:33:38 <Zemyla> newtype Mealy a b = Mealy { runMealy :: a -> (b, Mealy a b) }
02:34:35 <Zemyla> It's a Profunctor and an Arrow, and it turns out it'd a Traversing as well.
02:35:25 <Zemyla> class Traversing p where traverse' :: Traversable t => p a b -> p (t a) (t b)
02:36:42 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
02:36:50 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:39:46 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:39:46 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:39:46 finn_elija is now known as FinnElija
02:39:55 <abastro[m]> Woah
02:40:07 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
02:40:13 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
02:40:15 <jle`> nice
02:40:56 <abastro[m]> <del>`(b, Mealy a b)` requires applying `b -> c` to both side of the tuple tho</del>
02:42:08 × boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Connection closed)
02:42:27 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
02:42:28 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
02:43:29 <abastro[m]> What is the easy way to apply `f : a -> b` to `(a, a)` so I obtain `(b, b)`?
02:43:37 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
02:43:52 <c_wraith> Zemyla: if I remember your definition correctly, anything with the two type arguments on the opposite side of the same -> type constructor is Traversing
02:43:52 <Axman6> @hoogle (a -> b) -> (a,a) -> (b,b)
02:43:52 <lambdabot> Data.Tuple.Extra both :: (a -> b) -> (a, a) -> (b, b)
02:43:53 <lambdabot> Extra both :: (a -> b) -> (a, a) -> (b, b)
02:43:53 <lambdabot> Text.Ginger.GVal pairwise :: (a -> b) -> (a, a) -> (b, b)
02:44:01 <c_wraith> :t join bimap
02:44:02 <lambdabot> Bifunctor p => (c -> d) -> p c c -> p d d
02:44:51 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
02:45:38 <abastro[m]> Oh now `join bimap`, that is better
02:45:39 <Axman6> abastro[m]: re: your earlier question, what sort of maths?
02:46:02 <abastro[m]> Think I am going for algebra
02:46:11 <Axman6> :t join `asAppliedTo` bimap
02:46:12 <lambdabot> Bifunctor p => ((c -> d) -> (c -> d) -> p c c -> p d d) -> (c -> d) -> p c c -> p d d
02:47:49 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
02:48:08 <abastro[m]> I mean, I am currently pursuing academic (traditional) mathematics
02:48:18 <Axman6> I don't know of anything specifically aimed at algebra, but there is a lot of mathc related haskell stuff, given how mathy everything tends to be.
02:48:27 <Axman6> there's some nice number theory stuff IIRC
02:48:46 <abastro[m]> Well true, but in math we also use lots of set theory rather than type theory
02:49:52 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
02:50:14 <abastro[m]> I am curious about the number theory stuffs!
02:50:26 <abastro[m]> How is haskell involved there?
02:51:16 <Axman6> I haven't used it much but arithmoi has... things that are useful for... stuff. I remember there being alot of functions for number theoretic stuff
02:51:21 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
02:51:38 <Axman6> most of my number theory stuff has been crypto related and cryptonite had everything I needed in it
02:51:46 <abastro[m]> Hmm
02:55:17 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
02:56:13 <abastro[m]> arithmoi?
02:56:25 <Axman6> @hackage arithmoi
02:56:25 <lambdabot> https://hackage.haskell.org/package/arithmoi
02:58:47 rekahsoft joins (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
02:59:52 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
03:01:00 <byorgey> abastro[m]: in math we SAY that we use lots of set theory, but math as it is actually practiced is really something more like type theory.
03:01:26 <byorgey> no one actually encodes everything as sets or even thinks about things that way.
03:02:29 <abastro[m]> Thanks, Axman6!
03:02:34 vglfr joins (~vglfr@88.155.45.251)
03:02:57 <Axman6> Don't thank me, thank \x -> "https://hackage.haskell.org/package/" ++ x
03:02:57 <Axman6> :P
03:03:06 <abastro[m]> Hahaha
03:03:49 <abastro[m]> byorgey, well mathematicians do practice alike type theory, but IIRC many stuffs actually benefit from flexibility set theory offers.
03:03:54 <Axman6> @hackage abastro[m]
03:03:54 <lambdabot> https://hackage.haskell.org/package/abastro[m]
03:04:02 <abastro[m]> And subset being one huge factor
03:04:47 <abastro[m]> Actually Quotient is bigger one but anyway
03:05:11 <Axman6> subsets are just type classes, change my mind
03:05:57 Buggys joins (~Buggys@185.149.90.52)
03:07:04 <abastro[m]> Well then how do you deal with unions of subsets
03:07:17 <Axman6> more type classes
03:07:17 <Axman6> :P
03:09:38 <abastro[m]> XD
03:13:22 <abastro[m]> Type theory fluent on quotients when
03:14:03 × paraseba quits (~paraseba@187.10.123.216) (Quit: Client closed)
03:14:46 <monochrom> One might say, type theory confluent on quotients, haha.
03:15:55 <abastro[m]> wha
03:24:13 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
03:29:00 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
03:30:18 × euandreh quits (~euandreh@2804:14c:33:9fe5:203:625:d7c4:9b0) (Ping timeout: 260 seconds)
03:30:24 nate1 joins (~nate@98.45.167.61)
03:32:04 nosewings joins (~ngpc@2603-8081-3e05-e2d0-ab92-d9c1-c016-553e.res6.spectrum.com)
03:34:22 × Graham31515 quits (~Graham@user/Graham31415) (Read error: Connection reset by peer)
03:34:28 Graham31415 joins (~Graham@user/Graham31415)
03:34:58 × nate1 quits (~nate@98.45.167.61) (Ping timeout: 260 seconds)
03:38:55 × benin quits (~benin@183.82.24.110) (Ping timeout: 246 seconds)
03:42:40 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
03:45:55 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
03:51:46 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
03:52:00 mbuf joins (~Shakthi@122.173.70.161)
03:53:16 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
03:55:01 × vglfr quits (~vglfr@88.155.45.251) (Ping timeout: 246 seconds)
03:55:33 boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
03:56:42 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
03:57:42 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
04:00:46 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
04:05:10 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
04:05:10 × zyklotomic quits (~ethan@res380d-128-61-85-52.res.gatech.edu) (Ping timeout: 246 seconds)
04:06:36 × mvk quits (~mvk@2607:fea8:5cc3:7e00::7980) (Ping timeout: 245 seconds)
04:07:11 zyklotomic joins (~ethan@res380d-128-61-83-149.res.gatech.edu)
04:22:13 benin joins (~benin@183.82.24.110)
04:23:46 benin5 joins (~benin@183.82.24.110)
04:25:19 × zmt00 quits (~zmt00@user/zmt00) (Quit: Leaving)
04:25:20 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:26:53 × benin quits (~benin@183.82.24.110) (Ping timeout: 260 seconds)
04:26:53 benin5 is now known as benin
04:27:57 zmt00 joins (~zmt00@user/zmt00)
04:36:33 <tapas> sm: sounds more like this was a stackage issue than a yesod one
04:36:34 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
04:36:50 <tapas> more precisely a stackage nightly
04:37:47 <tapas> just tryna understand
04:37:52 cdman joins (~dcm@user/dmc/x-4369397)
04:40:10 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
04:45:35 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds)
04:47:34 bahamas joins (~lucian@86.120.21.179)
04:48:54 <tapas> gotta know thy stakeholders y'feel me
04:49:15 <energizer> when haskellers talk about 'pretty printing' what are they referring to?
04:50:10 <Axman6> formatting some data textually in a way that is nice for humans to read
04:51:21 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
04:51:23 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
04:51:45 <energizer> ok
04:52:58 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
04:54:11 dut joins (~dut@user/dut)
04:56:21 Guest2 joins (~Guest2@2405:201:6002:a800:4d6a:452:e4e8:6bd9)
04:56:31 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
04:57:39 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
04:57:44 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
05:02:27 × bahamas quits (~lucian@86.120.21.179) (Ping timeout: 260 seconds)
05:05:11 × Guest2 quits (~Guest2@2405:201:6002:a800:4d6a:452:e4e8:6bd9) (Quit: Client closed)
05:05:56 <Axman6> @hoogle Bool -> (a -> a) -> a -> a
05:05:57 <lambdabot> Data.Function.Tools applyWhen :: Bool -> (a -> a) -> a -> a
05:05:57 <lambdabot> Data.Function.Tools applyUnless :: Bool -> (a -> a) -> a -> a
05:05:57 <lambdabot> Util applyWhen :: Bool -> (a -> a) -> a -> a
05:06:14 <Axman6> "Util" *glares*
05:11:56 dcoutts_ joins (~duncan@host86-151-9-10.range86-151.btcentralplus.com)
05:14:31 × dcoutts__ quits (~duncan@host86-151-9-10.range86-151.btcentralplus.com) (Ping timeout: 260 seconds)
05:16:10 deadmarshal_ joins (~deadmarsh@95.38.119.235)
05:21:17 merijn joins (~merijn@c-001-002-001.client.esciencecenter.eduvpn.nl)
05:25:13 × deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds)
05:25:27 dcoutts__ joins (~duncan@host86-151-9-10.range86-151.btcentralplus.com)
05:28:59 × dcoutts_ quits (~duncan@host86-151-9-10.range86-151.btcentralplus.com) (Ping timeout: 260 seconds)
05:29:53 × boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
05:32:47 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
05:34:19 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
05:39:15 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
05:46:43 mncheck joins (~mncheck@193.224.205.254)
05:47:28 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:52:06 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Read error: No route to host)
05:52:16 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:52:18 deadmarshal_ joins (~deadmarsh@95.38.119.235)
05:54:29 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:55:33 × merijn quits (~merijn@c-001-002-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
05:56:59 × deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds)
05:57:32 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds)
06:09:57 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
06:11:26 dcoutts_ joins (~duncan@host86-150-41-212.range86-150.btcentralplus.com)
06:11:52 vglfr joins (~vglfr@coupling.penchant.volia.net)
06:12:02 <jackdk> Axman6: `bool id f`
06:12:29 <abastro[m]> `@hoogle bool`
06:12:31 <abastro[m]> > @hoogle bool
06:12:32 <lambdabot> <hint>:1:1: error: parse error on input ‘@’
06:12:43 <jackdk> > :i bool
06:12:44 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
06:12:48 <jackdk> % :i bool
06:12:48 <yahb> jackdk: bool :: a -> a -> Bool -> a -- Defined in `Data.Bool'
06:12:51 <abastro[m]> Sorry..
06:12:58 <abastro[m]> Data.Bool?
06:13:01 <jackdk> we got there in the end
06:13:13 <abastro[m]> `base`????
06:13:41 <abastro[m]> And I thought there were no boolean eliminator in base
06:14:15 × dcoutts__ quits (~duncan@host86-151-9-10.range86-151.btcentralplus.com) (Ping timeout: 260 seconds)
06:14:33 <jackdk> False
06:14:54 <abastro[m]> was my entire worldview
06:16:37 sprout joins (~quassel@2a02:a467:ccd6:1:950:287b:c4be:ac00)
06:18:05 acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de)
06:18:59 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
06:23:24 × unyu quits (~pyon@user/pyon) (Ping timeout: 240 seconds)
06:24:09 <Axman6> \f t -> f
06:24:36 unyu joins (~pyon@user/pyon)
06:26:57 Everything joins (~Everythin@37.115.210.35)
06:28:42 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
06:29:53 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
06:32:28 dut_ joins (~dut@user/dut)
06:33:22 dut__ joins (~dut@user/dut)
06:36:12 × dut quits (~dut@user/dut) (Ping timeout: 260 seconds)
06:37:33 × dut_ quits (~dut@user/dut) (Ping timeout: 260 seconds)
06:39:23 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
06:44:07 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds)
06:44:33 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
06:45:09 Sgeo joins (~Sgeo@user/sgeo)
06:46:11 img joins (~img@user/img)
06:47:01 × lechner quits (~lechner@debian/lechner) (Ping timeout: 245 seconds)
06:48:50 × Sgeo__ quits (~Sgeo@user/sgeo) (Ping timeout: 272 seconds)
06:49:16 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
06:50:12 jonathanx joins (~jonathan@c-5eea3313-74736162.cust.telenor.se)
06:53:12 × jonathanx quits (~jonathan@c-5eea3313-74736162.cust.telenor.se) (Read error: Connection reset by peer)
06:53:30 jonathanx joins (~jonathan@94.234.51.19)
06:55:43 michalz joins (~michalz@185.246.204.97)
06:58:14 lortabac joins (~lortabac@2a01:e0a:541:b8f0:c0ae:bf23:cf6b:67df)
06:59:49 × jonathanx quits (~jonathan@94.234.51.19) (Ping timeout: 246 seconds)
07:00:08 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
07:01:06 jonathanx joins (~jonathan@94.234.51.19)
07:04:28 alp joins (~alp@user/alp)
07:08:14 fef joins (~thedawn@user/thedawn)
07:08:40 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
07:15:51 × dextaa_ quits (~dextaa@user/dextaa) (Remote host closed the connection)
07:18:27 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
07:20:05 × acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
07:24:35 ccntrq joins (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a)
07:25:48 zeenk joins (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94)
07:26:15 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
07:27:07 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
07:27:23 × alp quits (~alp@user/alp) (Ping timeout: 252 seconds)
07:28:38 × jonathanx quits (~jonathan@94.234.51.19) (Quit: Leaving)
07:29:29 jakalx parts (~jakalx@base.jakalx.net) ()
07:30:08 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
07:31:49 alp joins (~alp@user/alp)
07:32:05 neurocyte8 joins (~neurocyte@IP-094016066081.dynamic.medianet-world.de)
07:32:06 × neurocyte8 quits (~neurocyte@IP-094016066081.dynamic.medianet-world.de) (Changing host)
07:32:06 neurocyte8 joins (~neurocyte@user/neurocyte)
07:32:13 kmein joins (~weechat@user/kmein)
07:33:33 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
07:34:03 × neurocyte quits (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds)
07:34:04 neurocyte8 is now known as neurocyte
07:34:25 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
07:34:55 jakalx joins (~jakalx@base.jakalx.net)
07:35:12 MajorBiscuit joins (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e)
07:35:27 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
07:37:52 cfricke joins (~cfricke@user/cfricke)
07:39:16 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:41:06 deadmarshal_ joins (~deadmarsh@95.38.119.235)
07:44:09 Hemmo joins (~Hemmo@185.112.82.222)
07:45:44 [_] is now known as [itchyjunk]
07:46:03 <Hemmo> Hello. I have a function I have managed to do with list comprehension and filter, but I would like to implement it with foldl as an exercise, but I am not sure how to go about it. Here's my function with filter; distanceFilter :: (String -> String -> Float) -> Float -> String
07:46:03 <Hemmo> -> [String] -> [String]
07:46:03 <Hemmo> distanceFilter f d s ss = filter (\x -> f s x <= d) ss
07:46:25 <Hemmo> and my attempt so far with foldl; distanceFilter f d s ss = foldl (\x -> f s x) <= d ss
07:46:58 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
07:47:17 <Hemmo> The foldl simply throws errors, any pointers toward the right direction are appreciated =)
07:47:46 dyeplexer joins (~dyeplexer@user/dyeplexer)
07:48:03 × deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds)
07:48:22 <Hemmo> And oh, here's what it does; given a distance function f, a Float d, a String s and a list of Strings ss, returns all the strings in ss that are at most d distance away from s.
07:48:48 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
07:49:02 machinedgod joins (~machinedg@24.105.81.50)
07:50:02 <merijn> Hemmo: You're writing: "(foldl (\x -> f s x)) <= d ss"
07:50:32 <merijn> That's trying to compare a function with "d ss" using <=
07:50:48 <merijn> Presumably wrong parenthesis?
07:57:23 × Hemmo quits (~Hemmo@185.112.82.222) (Ping timeout: 260 seconds)
07:58:26 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
07:59:03 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
08:02:42 × Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
08:03:14 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
08:04:27 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
08:05:05 <abastro[m]> Implementing filter with foldl could be a bit complex at least from looks
08:05:17 <Franciman> Zemyla: haskell's Cont monad represents delimited continuations
08:05:36 <abastro[m]> One thing, `foldl` is just a folder which folds a list. So, you need some way to construct list other than folding
08:06:18 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
08:06:53 Codaraxis joins (~Codaraxis@user/codaraxis)
08:10:27 × Codaraxis__ quits (~Codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
08:15:10 kuribas joins (~user@ptr-25vy0i96ymkampl0mim.18120a2.ip6.access.telenet.be)
08:16:41 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
08:17:20 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
08:20:55 × cdman quits (~dcm@user/dmc/x-4369397) (Remote host closed the connection)
08:21:18 cdman joins (~dcm@27.2.217.171)
08:21:18 × cdman quits (~dcm@27.2.217.171) (Changing host)
08:21:18 cdman joins (~dcm@user/dmc/x-4369397)
08:24:11 × chenqisu12 quits (~chenqisu1@183.217.200.168) (Quit: Leaving)
08:24:44 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:24:55 × alMalsamo quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
08:29:00 Midjak joins (~Midjak@82.66.147.146)
08:31:48 × pnotequalnp quits (~kevin@user/pnotequalnp) (Ping timeout: 240 seconds)
08:32:03 alMalsamo joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:35:52 gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
08:41:26 × ccntrq quits (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) (Remote host closed the connection)
08:41:43 ccntrq joins (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a)
08:42:24 bahamas joins (~lucian@86.120.77.115)
08:43:20 Hemmo joins (~Hemmo@91.221.67.198)
08:43:51 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
08:45:27 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
08:46:46 <phma> I'm using "stack ghci" and I get a long prompt "*Data.GosperBase.Internals Data.GosperBase Data.GosperBase.Internals>". How do I shorten it? And what does the star mean?
08:47:22 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
08:48:57 <abastro[m]> Uhm wait, it is listed twice?
08:49:03 <abastro[m]> Doesn't look normal to me
08:49:19 <Hemmo> abastro[m]: yeah it does seem a bit complex. I had no trouble coming up with a list comprehension and filter to solve it, but there was simply a suggestion by my teacher to solve it with foldl as well
08:49:55 <abastro[m]> Hemmo: Yep, would be a great exercise, but would also take quite a bit of effort
08:49:58 acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de)
08:50:08 <abastro[m]> Do you know how to construct the list, and how to pattern match on the list?
08:50:46 <abastro[m]> If you can write recursive function for `filter`, you are halfway there
08:52:00 <maerwald> phma: :set prompt
08:52:22 <maerwald> e.g. :set prompt "> "
08:53:00 <phma> maerwald: do I have to set prompt every time I run ghci?
08:53:33 <maerwald> you can add that line to the file .ghci I think
08:53:57 <phma> is .ghci in my home directory or the project directory?
08:54:09 `2jt joins (~jtomas@210.red-88-24-179.staticip.rima-tde.net)
08:54:10 <Hemmo> abastro[m]: well yeah I mean I can match it on list comprehension, but not sure if I know how to do it without it
08:54:46 <Hemmo> abastro[m]: recursive function for filter as in call filter on each item again or after each item?
08:54:47 <abastro[m]> Yep, I propose you to write barebone recursion without using list comprehension
08:55:04 × lavaman quits (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
08:55:11 <maerwald> phma: https://downloads.haskell.org/ghc/8.10.7/docs/html/users_guide/ghci.html?highlight=dot%20file#the-ghci-and-haskeline-files
08:55:30 <abastro[m]> I mean, write:
08:55:30 <abastro[m]> ```haskell
08:55:30 <abastro[m]> filter :: (a -> Bool) -> [a] -> [a]
08:55:30 <abastro[m]> ```
08:55:47 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
08:56:00 <abastro[m]> `filter f l = (write your definition here, preferably by pattern matching on l)`
08:56:54 × lispy quits (~lispy@82.212.115.165) (Quit: Client closed)
08:58:55 <Hemmo> abastro[m]: yeah cheers i'll give it a shot!
08:59:53 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 260 seconds)
09:00:08 × pareto-optimal-d quits (~pareto-op@2001:470:69fc:105::1:b61f) (Quit: You have been kicked for being idle)
09:11:42 dyeplexer joins (~dyeplexer@user/dyeplexer)
09:11:52 jgeerds joins (~jgeerds@55d4548e.access.ecotel.net)
09:13:18 × cdman quits (~dcm@user/dmc/x-4369397) (Ping timeout: 260 seconds)
09:13:36 mc47 joins (~mc47@xmonad/TheMC47)
09:14:18 boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
09:15:49 cdman joins (~dcm@27.2.217.171)
09:15:49 × cdman quits (~dcm@27.2.217.171) (Changing host)
09:15:49 cdman joins (~dcm@user/dmc/x-4369397)
09:21:29 × cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving)
09:25:35 × tiferrei quits (~tiferrei@user/tiferrei) (Ping timeout: 240 seconds)
09:25:45 tiferrei2000 joins (~tiferrei@user/tiferrei)
09:26:15 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
09:26:24 Major_Biscuit joins (~MajorBisc@c-001-024-026.client.tudelft.eduvpn.nl)
09:26:48 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
09:27:11 × Major_Biscuit quits (~MajorBisc@c-001-024-026.client.tudelft.eduvpn.nl) (Client Quit)
09:27:28 Major_Biscuit joins (~MajorBisc@c-001-024-026.client.tudelft.eduvpn.nl)
09:29:35 × MajorBiscuit quits (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 256 seconds)
09:30:33 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
09:32:26 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
09:32:51 × xff0x quits (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 245 seconds)
09:37:40 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
09:37:43 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
09:37:57 widelec-BB joins (~widelec@cpe-109-207-144-181.docsis.tczew.net.pl)
09:39:06 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
09:39:07 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
09:41:04 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
09:43:47 × cosimone` quits (~user@93-44-187-176.ip98.fastwebnet.it) (Ping timeout: 260 seconds)
09:44:20 cosimone` joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
09:44:36 widelec-BB parts (~widelec@cpe-109-207-144-181.docsis.tczew.net.pl) ( )
09:48:52 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
09:50:07 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
09:50:35 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
09:52:39 × cosimone` quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 260 seconds)
09:56:29 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:56:38 nattiestnate joins (~nate@202.138.250.9)
09:57:56 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
09:58:37 Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
09:58:43 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
09:59:47 lavaman joins (~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
09:59:58 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
10:00:27 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:01:03 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
10:01:27 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
10:07:25 xff0x joins (~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
10:07:41 tfeb joins (~tfb@88.98.95.237)
10:08:08 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
10:10:05 <tomsmeding> sm: maerwald: http://play-haskell.tomsmeding.com:8123/play
10:11:08 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
10:12:41 __monty__ joins (~toonn@user/toonn)
10:13:23 <maerwald> excellent
10:15:08 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds)
10:16:52 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
10:18:16 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
10:18:19 × acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
10:19:19 × bahamas quits (~lucian@86.120.77.115) (Ping timeout: 246 seconds)
10:21:48 DNH joins (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3)
10:22:16 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
10:24:26 <carbolymer> tomsmeding: nice! what was the reason this thing was born?
10:26:28 <tomsmeding> https://github.com/haskell-infra/www.haskell.org/issues/185
10:27:11 <tomsmeding> If y'all crash it it's not coming back, just in a simple tmux lol, sorry
10:30:04 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
10:30:11 <maerwald> tomsmeding: it's not using bwrap?
10:30:33 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
10:30:51 <Profpatsch> I’m looking into profiling a handler of ours a little.
10:31:09 <Profpatsch> And a dumb idea before going for a full-blown benchmarking setup wa?:
10:31:35 <Profpatsch> Is there a GHC function that I can call on a thunk, which will return the residential memory of that thunk at runtime?
10:31:38 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
10:32:24 <Profpatsch> e.g. if I have a json value from a request, can I somehow introspect how much of it is realized into memory at runtime?
10:36:04 <carbolymer> Profpatsch: something of that kind: https://stackoverflow.com/questions/3254758/memory-footprint-of-haskell-data-types ?
10:36:28 <carbolymer> Profpatsch: https://hackage.haskell.org/package/ghc-datasize-0.1.2/docs/GHC-DataSize.html
10:37:28 ProfSimm joins (~ProfSimm@87.227.196.109)
10:37:28 <Hemmo> GHCI gives me an error message: Variable not in scope:
10:37:28 <Hemmo> clusters :: (String -> String -> Float) -> t0 -> [String] -> t
10:37:41 <Hemmo> but i have defined the function yet it won't work??clusters :: (String -> String -> Float) -> Float -> [String] -> [String]
10:37:41 <Hemmo> clusters f d ss = [x | x <- ss, y <- ss, f x y < d]
10:38:07 <Hecate> it's trying to look for a variable called cluster with the "wrong" type signature I think
10:38:18 <Hecate> (or you've messed something when importing things? idk)
10:38:28 <Hemmo> Uhh is it fixable somehow? ;D
10:38:36 <Hecate> Hemmo: can you put a minimal repro code on paste.tomsmeding.com/ ?
10:38:53 <Hemmo> Yes I can, uno momento
10:39:37 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
10:40:04 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:40:23 <Profpatsch> carbolymer: hah, thank you
10:40:27 <Profpatsch> not sure I could have found that
10:41:13 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
10:41:44 <Hemmo> Hecate: Pasted it in there
10:41:59 <Hecate> Hemmo: I'm gonna need the link now :)
10:42:16 <Hemmo> Hecate: https://paste.tomsmeding.com/pUtz76bH
10:42:17 <Hemmo> ;D
10:42:44 alMalsamo is now known as lumberjack123
10:43:38 <Hecate> λ❯ clusters distance1 0.3 ["aaabc", "aabdd", "a", "aa", "abdd", "bcbcb", "", "abcdefghij"]
10:43:41 <Hecate> ["aaabc","aaabc","aabdd","aabdd","a","a","aa","aa","aa","abdd","abdd","bcbcb","","abcdefghij"]
10:43:44 <Hecate> it :: [String]
10:43:51 <Hecate> hmm.
10:44:18 <Hemmo> It works for you?
10:44:26 <Hecate> it does
10:44:30 <Hecate> hmm
10:44:31 <Hemmo> Yeah curious. Should for me too.
10:44:32 <Hecate> what could it be
10:44:41 <Hemmo> Let me do the classic thing and restart ghci lol
10:44:45 <Hecate> I have a bunch of extensions in my .ghci that could affect the behaviour
10:45:15 × califax quits (~califax@user/califx) (Ping timeout: 240 seconds)
10:45:25 <Hemmo> Lol. Restarting did the trick.
10:45:31 <Profpatsch> carbolymer: do you know the difference between the `closureSize` function and the `recursiveSize` function?
10:45:31 <Hemmo> My ghci bugs at times I've noticed
10:45:42 <Hemmo> Ty though.
10:45:45 <Profpatsch> I don’t think I understand the documentation
10:45:49 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
10:46:06 <Hecate> Hemmo: well, nothing that can't be fixed by restoring to a previously known state. :) That's what aeronautics and Erlang do all the time!
10:46:15 califax joins (~califax@user/califx)
10:46:36 <Hemmo> Indeed. Should've thought of that first! Classic rookie mistake.
10:47:04 <Hemmo> Related to that function and in general, is it possible to use list compr. and have a predicate that checks whether that element is in the list already?
10:47:22 <Profpatsch> carbolymer: oh there’s a user guide, maybe that will make it clearer http://felsin9.de/nnis/ghc-datasize/
10:47:27 <Hemmo> so in my example there are some duplicates
10:48:06 <carbolymer> Profpatsch: not sure
10:48:16 <Profpatsch> carbolymer: I think nothing beats just trying it out :)
10:48:46 <Hecate> Hemmo: just `List.nub` them afterwards ;-)
10:49:37 <Hecate> because if you looking for the whole list each time a new element is produced (to determine if it's already there), your complexity goes through the roof, as you have what amounts to a nested for-loop
10:50:02 <Hecate> just create your list, and go over it to remove the duplicates once it's finished
10:50:18 × benin quits (~benin@183.82.24.110) (Quit: The Lounge - https://thelounge.chat)
10:50:29 xkuru joins (~xkuru@user/xkuru)
10:51:22 <Hemmo> Hecate: Thanks
10:52:47 × Hemmo quits (~Hemmo@91.221.67.198) (Remote host closed the connection)
10:57:08 <dminuoso> Hecate: Well, I guess in some sense its not as much as "this definitely fixes it", but its rather "once your system doesn't behave as specified, you cant reason about it anymore"
10:57:16 <dminuoso> That's at least the mentality in aeronautics
10:57:34 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:59:38 × boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
11:01:55 jonathanx joins (~jonathan@dyn-2-sc.cdg.chalmers.se)
11:02:23 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
11:02:45 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
11:02:48 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 272 seconds)
11:03:07 mncheck joins (~mncheck@193.224.205.254)
11:03:18 fef joins (~thedawn@user/thedawn)
11:05:37 odnes joins (~odnes@5-203-245-187.pat.nym.cosmote.net)
11:07:10 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
11:07:46 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
11:08:48 boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
11:10:25 <Hecate> dminuoso: yes
11:10:29 <Hecate> you are right
11:10:30 × dut__ quits (~dut@user/dut) (Quit: Leaving)
11:10:49 razetime joins (~quassel@117.254.35.62)
11:12:56 × Ferdirand quits (~somebody@2001:4c78:2012:5000::2) (Remote host closed the connection)
11:12:56 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
11:16:44 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
11:18:31 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
11:21:26 × jonathanx quits (~jonathan@dyn-2-sc.cdg.chalmers.se) (Ping timeout: 260 seconds)
11:22:12 deadmarshal_ joins (~deadmarsh@95.38.119.235)
11:26:27 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
11:26:52 × deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds)
11:28:47 × DNH quits (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:28:49 × jiribenes quits (~jiribenes@rosa.jiribenes.com) (Ping timeout: 250 seconds)
11:30:12 benin joins (~benin@183.82.24.110)
11:31:15 × benin quits (~benin@183.82.24.110) (Client Quit)
11:33:59 gehmehgeh joins (~user@user/gehmehgeh)
11:35:31 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
11:36:12 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 260 seconds)
11:38:41 jakalx parts (~jakalx@base.jakalx.net) ()
11:42:29 benin joins (~benin@183.82.24.110)
11:42:48 jakalx joins (~jakalx@base.jakalx.net)
11:48:01 <maerwald> https://github.com/haskellari/postgresql-simple/issues/58
11:48:03 <maerwald> oh dear.
11:49:02 × benin quits (~benin@183.82.24.110) (Ping timeout: 272 seconds)
11:49:02 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
11:49:56 benin joins (~benin@183.82.24.110)
11:50:00 DNH joins (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3)
11:50:32 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
11:50:40 odnes_ joins (~odnes@5-203-245-187.pat.nym.cosmote.net)
11:51:20 × odnes quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Read error: Connection reset by peer)
11:53:36 × noddy quits (~user@user/noddy) (Quit: WeeChat 3.4)
11:54:44 <tdammers> hey, that's my name on there!
11:55:01 noddy joins (~user@user/noddy)
11:55:07 <abastro[m]> `nub`? eh
11:56:49 <merijn> Montly reminder that anyone close to NL has only 2 more weeks to register for NL-FP ;)
11:56:56 <merijn> https://wouter-swierstra.github.io/fp-dag/
11:57:36 <dminuoso> tdammers: Oh yeah, I actually started work to fix this!
11:57:58 <tdammers> awesome!
11:58:05 <dminuoso> But then a new season of Better Call Saul came out...
11:58:18 <dminuoso> Priorities priorities...
11:58:25 <dminuoso> Seriously though, I should wrap it up
11:59:18 acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de)
12:00:54 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
12:05:22 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
12:05:23 × Everything quits (~Everythin@37.115.210.35) (Ping timeout: 260 seconds)
12:06:54 Everything joins (~Everythin@37.115.210.35)
12:07:16 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
12:12:22 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
12:13:55 zmt00 joins (~zmt00@user/zmt00)
12:14:38 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
12:14:59 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 260 seconds)
12:19:43 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
12:21:09 geekosaur joins (~geekosaur@xmonad/geekosaur)
12:21:20 × boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
12:22:09 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
12:22:56 jiribenes joins (~jiribenes@rosa.jiribenes.com)
12:25:55 <maerwald> tdammers: so use hasql instead?
12:25:59 nathansquan[m] joins (~nathansqu@2001:470:69fc:105::1:e84c)
12:27:04 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
12:27:18 <tdammers> maerwald: might give it a spin some time. so far my go-to has been HDBC
12:27:26 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 245 seconds)
12:27:40 <maerwald> tdammers: but https://nikita-volkov.github.io/hasql-benchmarks/
12:27:59 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
12:29:12 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
12:29:15 × Everything quits (~Everythin@37.115.210.35) (Quit: leaving)
12:29:28 <tdammers> sure sure, as I said, I might give it a spin
12:29:57 <maerwald> I tried to compile the benchmarks, but they're 7 years old
12:29:59 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:30:59 <tdammers> tbf., hasql is expected to be much faster than HDBC simply because it doesn't have to provide an abstraction layer over different DBMS backends
12:32:33 romesrf joins (~romes@44.190.189.46.rev.vodafone.pt)
12:33:20 <kuribas> also, why would query generation speed matter when it's swamped by the actual query call?
12:34:33 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
12:34:33 <tdammers> that depends on the query, but yeah, a 200% performance difference in your database connectivity layer may not matter at all
12:35:36 <merijn> kuribas: Depends on frequency and size of queries :p
12:35:46 <romesrf> \o
12:36:17 <kuribas> merijn: if you are doing a lot of single queries, isn't that the problem then?
12:36:25 <kuribas> you can instead batch the queries.
12:36:25 <merijn> Why?
12:36:37 <merijn> Maybe you can, maybe you can't depends on the system
12:36:50 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
12:37:18 <kuribas> for example with graphQL, you could fetch an entire tree in a single request.
12:37:40 <kuribas> With some clever batching, this can reduce the request time by a large factor.
12:38:31 <kuribas> So I would focus on the ergonomics of the connectivity layer, rather than the speed.
12:40:32 cdman joins (~dcm@user/dmc/x-4369397)
12:41:59 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 252 seconds)
12:43:48 doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
12:44:48 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
12:47:29 × fendor_ quits (~fendor@77.119.209.169.wireless.dyn.drei.com) (Remote host closed the connection)
12:48:46 Guest19 joins (~Guest19@ip-86-49-182-248.zrnko.net)
12:48:47 agumonkey joins (~user@88.163.231.79)
12:49:03 euandreh joins (~euandreh@2804:14c:33:9fe5:9dda:4bff:cdb5:90b8)
12:50:06 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
12:50:41 × romesrf quits (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4)
12:51:28 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 260 seconds)
12:52:07 <Guest19> Hello! I am working on a project with Parser (Text.Parsec) and I can't understand how to call try on my own parsers. For example, I create a parser using the do notation composed of multiple parser (e.g. first read a number, then string "hello", return the number as int). Now, when I use try on this custom parser, it seems to apply only to the
12:52:07 <Guest19> first parser in the composition (i.e. the one reading a number in this case). Why is that? How can I prevent it?
12:53:06 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
12:53:58 <maerwald> Guest19: you want "hello" to be parsed even if the number failed to parse?
12:54:09 <Guest19> yes
12:54:36 <maerwald> well, that obviously won't work when you wrap the entire parser in try
12:55:05 <Guest19> No, sorry, misunderstood the question for a moment. I want the parser to try to read a number followed by the string "hello" and if anything fails, the whole parsing fails and the input (including the number) should not be consumed
12:56:07 × acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
12:58:42 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
12:59:23 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
13:00:59 jakalx parts (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection)
13:01:00 jakalx joins (~jakalx@base.jakalx.net)
13:01:17 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
13:04:24 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
13:07:24 × razetime quits (~quassel@117.254.35.62) (Read error: Connection reset by peer)
13:08:12 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
13:08:12 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
13:09:09 bahamas joins (~lucian@84.232.140.158)
13:09:13 o-90 joins (~o-90@gateway/tor-sasl/o-90)
13:10:23 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
13:11:08 × gawen quits (~gawen@user/gawen) (Quit: cya)
13:11:59 werdnA joins (~andrew@114.88.181.56)
13:12:28 gawen joins (~gawen@user/gawen)
13:12:39 <werdnA> I'd love to see some socket and tcp examples (and get screwed by IO ())
13:12:54 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
13:15:39 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
13:17:40 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
13:19:25 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
13:20:42 <kuribas> Guest19: use "try" if you need to backtrack.
13:22:47 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds)
13:25:24 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
13:30:25 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
13:32:55 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
13:34:02 × jgeerds quits (~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 260 seconds)
13:36:51 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
13:38:15 razetime joins (~quassel@117.254.35.62)
13:38:36 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
13:39:26 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
13:39:26 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
13:39:26 wroathe joins (~wroathe@user/wroathe)
13:41:07 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
13:45:34 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 272 seconds)
13:45:39 acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de)
13:46:53 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
13:49:03 shriekingnoise joins (~shrieking@201.231.16.156)
13:49:05 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
13:50:49 × slaydr quits (~slaydr@193.19.109.228) (Ping timeout: 256 seconds)
13:51:03 <Guest19> Try seems to work for only the first parser, however :(
13:51:54 <geekosaur> how are you doing this?
13:52:40 <geekosaur> if you have a series of parsers you want to apply `try` to, either give it a name or wrap the whole set in parentheses (`try (…)`)
13:52:45 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
13:53:44 img joins (~img@user/img)
13:54:24 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
13:55:58 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds)
13:56:16 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
13:57:19 werdnA is now known as An
13:57:23 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
13:57:41 An is now known as werdnA
13:58:12 × img quits (~img@user/img) (Client Quit)
13:58:33 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
13:59:03 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:c0ae:bf23:cf6b:67df) (Quit: WeeChat 2.8)
13:59:20 <Franciman> sml is GORG
13:59:35 img joins (~img@user/img)
14:00:09 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
14:00:52 <Franciman> let's see if haskell can at least keep the same performance
14:01:22 <shapr> What's GORG?
14:01:36 <geekosaur> Ipresume short for "gorgeous"
14:02:05 <shapr> oh, huh
14:02:09 <Franciman> it's the definition of sml
14:02:32 <Franciman> i'll be good and use Data Sequence in haskell
14:02:38 <Franciman> since list is a total clutter
14:02:41 <Franciman> in this case
14:02:45 <shapr> ich verstehe nicht
14:02:47 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
14:02:50 <shapr> jag forstår inte
14:02:56 <shapr> ik begrijp het niet
14:03:01 slaydr joins (~slaydr@173.239.197.154)
14:03:37 Pickchea joins (~private@user/pickchea)
14:03:37 <Franciman> shapr: i'm confronting the implementations of my toy PL
14:03:40 <Franciman> in haskell and in sml
14:03:57 <shapr> oh!
14:04:00 <Franciman> comparing* maybe
14:04:01 <shapr> thanks for the explanation.
14:04:08 <Franciman> haskell is SO SLOW
14:04:10 <shapr> merci
14:04:33 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
14:04:43 <Franciman> i remember somebody arguing that haskell was perfect for writing compilers. Imho it's a pretty decent second choice, after the awesome sml
14:04:49 lispy joins (~lispy@82.212.115.165)
14:04:58 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
14:04:59 <shapr> It's good to have tools you enjoy using.
14:05:14 shapr hugs lispy
14:05:40 <shapr> I like using laziness (non-strictness) to make my programs go faster.
14:05:42 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
14:06:05 <Franciman> :)
14:06:37 <lispy> I am learning both haskell and lisp and I am liking lisp a bit more I think :P I was here cuz I had a few questions when I was learning haskell and most recently I joined the clisp channel
14:06:37 <shapr> For example, comparing two files for equality with a lazy language means the comparison can stop early: https://github.com/shapr/takedouble/blob/main/src/Takedouble.hs#L32
14:06:51 <shapr> lispy: Are you not monsieur Dagit?
14:07:01 <shapr> Oh, I guess not.
14:07:04 <lispy> Nope Lol
14:07:17 <shapr> hi lispy! I've just been learning common lisp myself.
14:07:23 <Franciman> shapr: uhm you can do that in strict languages too
14:07:32 <shapr> Franciman: sure, but it's more work
14:07:33 <Franciman> just use stream based interface
14:07:39 <Franciman> and it stops early
14:07:50 <Franciman> with good abstractions you get the same code
14:08:06 <Franciman> sure in sml you don't have it builtin. You have to write it yourself by hand
14:08:08 <Franciman> this is a big cons
14:08:11 <shapr> That's the thing I like about languages, they're all equal when you get to turing completeness; so it's about what the languages make easy to do
14:08:22 <Franciman> sure
14:09:04 <shapr> So I like learning what a language makes easy
14:09:17 <Franciman> shapr: thing is
14:09:27 <Franciman> laziness makes that easy, and everything else PURE HELL
14:09:34 <Franciman> it writes laziness, it reads cringiness
14:09:34 <shapr> Huh, doesn't seem that way to me
14:09:41 <Franciman> sure
14:09:47 <shapr> I really enjoy writing lazy code
14:09:47 <Franciman> it's better like this
14:10:03 <Franciman> i've been wasting my last year trying to improve the performance of my interpreter
14:10:05 <shapr> I get to tie the knot and do all kinda fun things with laziness.
14:10:15 <Franciman> the answer was: just switch to sml and kick the ass out of GHC
14:10:24 <shapr> That's certainly one answer.
14:10:39 <Franciman> as you were previously stating: i also like learning what a languages makes easy
14:10:42 <maerwald> shapr: I don't think it's more work. 1. lazy IO is *bad*, 2. you should be using a streaming library to do it, 3. you have those in strict languages too
14:11:07 × razetime quits (~quassel@117.254.35.62) (Remote host closed the connection)
14:11:31 <shapr> maerwald: do you mean because you can have an inconsistent view of the filesystem? What other bad do you mean?
14:11:46 <maerwald> uhm, because it's a hack
14:11:46 <merijn> shapr: Leaks resources (like file descriptors)
14:12:02 <Franciman> oh so laziness can't get correctness in presence of side effects?
14:12:05 <Franciman> uh
14:12:07 <Franciman> uh
14:12:08 <maerwald> and many more issues...
14:12:35 <maerwald> `tar` relies on lazy IO, but keeps a reference to something at some point somewhere, so boom -> everything gets forces into memory
14:12:41 <shapr> I still haven't dug into streaming libraries in Haskell, I'd like to do that sometime soon.
14:13:19 <shapr> maerwald: would use of a streaming library fix that problem?
14:13:22 <maerwald> yes
14:13:49 <maerwald> I was about to fix it that way, but then stopped, because libarchive came along
14:13:54 <maerwald> and now I'm not using tar anymore
14:14:17 <shapr> Wow, tar is from long ago
14:14:18 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
14:14:18 justsomeguy joins (~justsomeg@user/justsomeguy)
14:14:33 <maerwald> yeah... the issue is that during unpack, it forces the entire file into memory
14:14:43 <maerwald> but otherwise streams correctly
14:14:55 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
14:14:59 <maerwald> so if you have 2GB archive with max file size 1mb, you don't notice
14:14:59 jpds joins (~jpds@gateway/tor-sasl/jpds)
14:15:02 lechner joins (~lechner@debian/lechner)
14:15:05 <shapr> huh, I wouldn't expect that, since tar is concat'd files
14:15:12 <maerwald> if you have one huge file your ram blows up
14:15:20 <shapr> I wonder why it does that?
14:15:55 <shapr> I had that problem the first time I wrote a plugin for lambdabot
14:16:09 <maerwald> https://github.com/haskell/tar/blob/a0d722c1f6052bf144017d131a715ea1ae599964/Codec/Archive/Tar/Read.hs#L117-L119
14:16:34 <shapr> oh
14:16:40 <maerwald> LBS.drop, but then bs' is passed onto the next iteration
14:16:41 odnes__ joins (~odnes@5-203-245-187.pat.nym.cosmote.net)
14:16:42 × odnes_ quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Read error: Connection reset by peer)
14:16:43 <maerwald> so blocks stream fusion
14:17:07 <maerwald> those things aren't easy to spot
14:17:35 <shapr> Is there some way to automatically find that sort of thing?
14:17:42 <shapr> or is it "use a streaming library" ?
14:17:53 <maerwald> memory profiling
14:17:57 <shapr> Ah, makes sense
14:18:02 <maerwald> but then you need to have the right input
14:18:11 <maerwald> this was only spotted, because I had an archive with huge files
14:18:14 <shapr> so, memory profiling + property based testing?
14:19:08 <maerwald> another library abusing lazy bytestring is https://hackage.haskell.org/package/xeno ... we've been discussing with streamly authors to rewrite it in that
14:19:20 <maerwald> because here again, you make a mistake and your performance regresses
14:19:31 <shapr> huh, neato
14:20:06 <Franciman> shapr: do you have a tutorial in tying the knot
14:20:09 <Franciman> ?
14:20:19 <Franciman> in my third world sml, i have to use mutation to implement it :<
14:20:40 <Franciman> it's so neat when expressed in haskell tho *.*
14:21:05 <shapr> Franciman: the simplest thing is "let ones = 1 : ones"
14:21:27 × jackalope quits (~jackalope@50-24-138-131.bcstcmta02.res.dyn.suddenlink.net) (Ping timeout: 260 seconds)
14:21:35 <shapr> maerwald: if I want to use a streaming library in takedouble instead of lazy IO, what's the easiest one to start with?
14:21:36 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
14:21:36 <Franciman> wanna look at my example to implement fix?
14:21:39 <Franciman> it's SO NEAT
14:21:48 <Franciman> 1-liner, no-brainer
14:21:49 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
14:21:54 <shapr> Franciman: you can link me, but I'm about to walk to buy food, I can look when I get back :-)
14:22:13 <Franciman> let res = eval (envPushValue res env) body in res
14:22:18 <maerwald> shapr: I'd like so claim streamly, but it probably isn't. It's just that I prefer it and find the API more natural. But the docs can be confusing.
14:22:20 <Franciman> can you make it shorter?
14:22:26 <Franciman> i'd like to do it without the let
14:22:28 <Franciman> maybe using fix?
14:22:31 <Franciman> :t fix
14:22:32 <lambdabot> (a -> a) -> a
14:22:42 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
14:22:46 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
14:23:05 <Franciman> looks like it does yeah
14:23:06 <Franciman> thanks shapr
14:23:08 <Franciman> have a nice meal
14:23:15 hololeap joins (~hololeap@user/hololeap)
14:23:33 gehmehgeh joins (~user@user/gehmehgeh)
14:24:55 <maerwald> shapr: the main two approaches to streaming is 1. expressing actual streams (streamly), so like lists, 2. expressing pipes, so you have a transformer that processes input and produces an output
14:25:00 <maerwald> conduit takes the latter
14:25:06 <maerwald> and is probably the most popular atm
14:25:21 ab8 joins (~ab@2401:4900:55ac:f030:5de5:a385:33c6:42ed)
14:25:26 <Franciman> is conduit faster than streamly, maerwald ?
14:25:29 <maerwald> no
14:25:41 <Franciman> it also seems more difficult than streamly
14:25:44 <Franciman> so why pick it?
14:25:53 <maerwald> I wouldn't
14:26:02 <Franciman> uhm. But does it have any sort of advantage?
14:26:03 <maerwald> but some people find it more natural
14:26:05 <Franciman> apart form the huge ecosystem
14:26:13 <maerwald> Franciman: yes, performance is very *stable*
14:26:23 <Franciman> uh uh i understand. Thanks ^^
14:26:24 <maerwald> while in streamly, if you make a mistake, you can get huge regressions
14:26:40 <maerwald> but you usually also get much better performance than conduit if you do it right
14:26:56 <Franciman> got it, ty
14:27:12 boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
14:27:14 <maerwald> that's because streamly depends heavily on inlining, to let GHC optimize your hot loops
14:27:42 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
14:30:27 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
14:32:50 gehmehgeh_ joins (~user@user/gehmehgeh)
14:33:38 rawley joins (~rawley@142.99.241.242)
14:35:35 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 240 seconds)
14:36:05 × Franciman quits (~Franciman@mx1.fracta.dev) (Remote host closed the connection)
14:40:59 × acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
14:41:29 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
14:41:29 gehmehgeh_ is now known as gehmehgeh
14:42:06 × ccntrq quits (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) (Remote host closed the connection)
14:42:16 × ab8 quits (~ab@2401:4900:55ac:f030:5de5:a385:33c6:42ed) (Ping timeout: 250 seconds)
14:42:24 ccntrq joins (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a)
14:43:43 × cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving)
14:45:19 jackalope joins (~jackalope@165.91.13.217)
14:48:49 Sgeo joins (~Sgeo@user/sgeo)
14:50:35 werdnA is now known as CoWaxDanguin
14:50:38 Franciman joins (~Franciman@mx1.fracta.dev)
14:51:18 CoWaxDanguin is now known as werdnA
14:51:24 × dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
14:54:18 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:54:35 × werdnA quits (~andrew@114.88.181.56) (Quit: WeeChat 3.4.1)
14:54:40 <Franciman> back from testing. At first the haskell version was DAYUMN SLOW
14:54:49 CoWaxDanguin joins (~andrew@114.88.181.56)
14:54:53 <Franciman> so i had to turn StrictData on. I got 3x speedup
14:54:54 CoWaxDanguin is now known as werdnA
14:55:05 <Franciman> now it's faster than the sml version. Mostly because haskell's runtime is DAYUMN NIFTY
14:55:09 <abastro[m]> Wh
14:55:34 <Franciman> sml version does a 10x more page faults. It performs less computations, but spends half of the time talking to the kernel lol
14:55:39 <abastro[m]> Hmm, doesn't StrictData just add strictness annotations
14:55:43 razetime joins (~quassel@117.254.35.62)
14:55:54 <Franciman> yes, it reduces thunks
14:56:01 × werdnA quits (~andrew@114.88.181.56) (Client Quit)
14:56:12 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
14:56:15 werdnA joins (~andrew@114.88.181.56)
14:56:16 <Franciman> and i don't know what other evil thing. And gave me a huge speedup from 3.0s to 0.7s
14:56:23 <abastro[m]> But yea it could be great if you are tired at adding !
14:56:24 <Franciman> unbellyveable
14:56:42 <Franciman> haskell's runtime is really something!
14:56:55 dolio joins (~dolio@130.44.130.54)
14:57:20 <[exa]> what's the code doing btw?
14:57:28 <[exa]> (just dayumn curious)
14:57:30 zer0bitz joins (~zer0bitz@2001:2003:f750:a200:544e:226a:9b44:a162)
14:57:33 <Franciman> evaluating a lambda term that sums the first 10million numbers
14:57:50 <Franciman> (using a recursive implementation)
14:57:56 <abastro[m]> <del>Random pythonista I met days ago: Well idk I don't think it will beat python</del>
14:58:32 <abastro[m]> Sum by Lambda term?
14:58:34 <Franciman> lol python can't even sum the first million numbers without exhausting memory
14:58:42 <Franciman> abastro[m]: i implemented this algorithm:
14:58:48 <Franciman> sum 0 = 0; sum n = n + sum (n-1)
14:58:50 <abastro[m]> Hehe
14:59:05 <abastro[m]> Oh, so simple sum function?
14:59:05 <[exa]> Franciman: is it on Ints or Integers?
14:59:19 <Franciman> Int64. I would expect it to be too slow on integers :(
14:59:29 <abastro[m]> Likely optimized into loops at least
14:59:33 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
14:59:38 <[exa]> how long does it take with an accumulator?
15:00:18 <Franciman> [exa]: sorry you mean doing: sum n 0 = n; sum n k = sum (n + 1) (k - 1) ?
15:00:30 dyeplexer joins (~dyeplexer@user/dyeplexer)
15:00:34 <abastro[m]> Wouldn't haskell be smart enough to unroll it as loop anyway
15:00:35 <Franciman> i would assume roughly the same, because I didn't implement tail call optimisation, but let me check!
15:00:47 <Franciman> wait people
15:00:55 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:00:56 <Franciman> i think i couldn't explain things right
15:01:03 <Franciman> I used haskell to implement a toy interpreter
15:01:09 <Franciman> i'm not implementing the sum in haskell
15:01:11 <Franciman> but in the toy language
15:01:14 <abastro[m]> Now I see what you did
15:01:19 <abastro[m]> Yea now understood
15:01:41 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 252 seconds)
15:01:46 × odnes__ quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Remote host closed the connection)
15:02:06 odnes__ joins (~odnes@5-203-245-187.pat.nym.cosmote.net)
15:02:50 <kuribas> abastro[m]: probably not ghc, but llvm maybe.
15:03:02 <kuribas> abastro[m]: at least if it is strict.
15:03:27 <kuribas> by llvm I mean the ghc llvm backend.
15:04:18 <abastro[m]> I think haskell could even optimize the toy language impl into loop
15:04:24 <abastro[m]> But that is too wild of a gusss
15:04:24 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
15:04:45 <Franciman> the program is not know at compile time
15:05:32 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
15:09:56 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 252 seconds)
15:10:26 × `2jt quits (~jtomas@210.red-88-24-179.staticip.rima-tde.net) (Ping timeout: 272 seconds)
15:10:50 <abastro[m]> Oh, read from file?
15:11:22 `2jt joins (~jtomas@210.red-88-24-179.staticip.rima-tde.net)
15:12:22 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
15:12:25 motherfsck joins (~motherfsc@user/motherfsck)
15:17:31 × jackalope quits (~jackalope@165.91.13.217) (Ping timeout: 246 seconds)
15:17:37 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds)
15:20:03 <Franciman> yes, on the long run
15:20:06 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
15:20:08 <Franciman> now it's hardcoded :P
15:20:33 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1)
15:25:30 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
15:29:17 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
15:29:17 × pie__ quits (~pie_bnc@user/pie/x-2818909) (Quit: pie__)
15:29:28 pie_ joins (~pie_bnc@user/pie/x-2818909)
15:31:27 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 260 seconds)
15:32:22 × rawley quits (~rawley@142.99.241.242) (Remote host closed the connection)
15:32:44 rawley joins (~rawley@142.99.241.242)
15:33:02 × doyougnu quits (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 252 seconds)
15:33:37 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
15:33:59 jackalope joins (~jackalope@50-24-138-131.bcstcmta02.res.dyn.suddenlink.net)
15:34:57 × pie_ quits (~pie_bnc@user/pie/x-2818909) (Quit: pie_)
15:35:48 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
15:37:07 pie_ joins (~pie_bnc@user/pie/x-2818909)
15:38:02 × razetime quits (~quassel@117.254.35.62) (Remote host closed the connection)
15:39:00 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
15:39:18 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:40:24 jpds joins (~jpds@gateway/tor-sasl/jpds)
15:41:16 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
15:42:59 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
15:44:38 × gdd quits (~gdd@129.199.146.230) (Ping timeout: 272 seconds)
15:44:39 razetime joins (~quassel@117.254.35.62)
15:45:15 jgeerds joins (~jgeerds@55d4548e.access.ecotel.net)
15:46:29 gdd joins (~gdd@129.199.146.230)
15:47:52 × ccntrq quits (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) (Remote host closed the connection)
15:48:10 ccntrq joins (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a)
15:48:19 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
15:49:02 × benin quits (~benin@183.82.24.110) (Quit: The Lounge - https://thelounge.chat)
15:50:30 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
15:51:38 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
15:55:40 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
15:58:06 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
16:00:05 × Deide quits (~deide@user/deide) (Quit: You have been kicked for being idle)
16:00:08 × Joe[m] quits (~jsricemat@2001:470:69fc:105::1:b4ce) (Quit: You have been kicked for being idle)
16:00:08 × sofviic[m] quits (~sofviicma@2001:470:69fc:105::1:51fd) (Quit: You have been kicked for being idle)
16:00:51 × Major_Biscuit quits (~MajorBisc@c-001-024-026.client.tudelft.eduvpn.nl) (Ping timeout: 260 seconds)
16:02:45 lbseale joins (~ep1ctetus@user/ep1ctetus)
16:03:40 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
16:04:13 × Digit quits (~user@user/digit) (Ping timeout: 256 seconds)
16:05:36 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
16:10:36 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
16:11:05 jpds joins (~jpds@gateway/tor-sasl/jpds)
16:11:07 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
16:11:34 odnes joins (~odnes@5-203-245-187.pat.nym.cosmote.net)
16:11:49 × odnes__ quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Ping timeout: 240 seconds)
16:12:48 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
16:14:25 × jgeerds quits (~jgeerds@55d4548e.access.ecotel.net) (Ping timeout: 256 seconds)
16:15:13 Digitteknohippie joins (~user@user/digit)
16:17:03 deadmarshal_ joins (~deadmarsh@95.38.119.235)
16:17:32 Topsi joins (~Tobias@dyndsl-095-033-095-210.ewe-ip-backbone.de)
16:18:04 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
16:18:24 Major_Biscuit joins (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e)
16:18:27 × Digitteknohippie quits (~user@user/digit) (Read error: Connection reset by peer)
16:18:39 MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net)
16:19:03 × gdd quits (~gdd@129.199.146.230) (Ping timeout: 260 seconds)
16:19:25 × MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Client Quit)
16:19:47 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
16:20:20 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
16:20:25 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
16:20:51 gdd joins (~gdd@129.199.146.230)
16:20:53 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
16:21:38 ProfSimm joins (~ProfSimm@87.227.196.109)
16:23:17 × pie_ quits (~pie_bnc@user/pie/x-2818909) (Quit: pie_)
16:24:34 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:26:01 × mbuf quits (~Shakthi@122.173.70.161) (Quit: Leaving)
16:26:08 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
16:27:17 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
16:27:52 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
16:28:17 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
16:30:34 alp joins (~alp@user/alp)
16:35:16 bahamas joins (~lucian@84.232.140.158)
16:36:29 × Major_Biscuit quits (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 250 seconds)
16:36:34 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
16:39:25 × ccntrq quits (~Thunderbi@2a01:c22:8de1:1200:c0e8:7704:b751:d68a) (Remote host closed the connection)
16:39:37 pie_ joins (~pie_bnc@user/pie/x-2818909)
16:40:07 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 260 seconds)
16:43:59 × Guest19 quits (~Guest19@ip-86-49-182-248.zrnko.net) (Quit: Client closed)
16:46:11 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
16:50:45 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
16:52:57 × Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
16:53:18 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
16:53:31 <hololeap> streaming, pipes, lists, fusion... whenever anyone starts throwing these words around I kinda sorta get what they're talking about, but not really
16:55:53 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
16:56:02 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:59:05 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
16:59:12 × `2jt quits (~jtomas@210.red-88-24-179.staticip.rima-tde.net) (Remote host closed the connection)
16:59:34 `2jt joins (~jtomas@210.red-88-24-179.staticip.rima-tde.net)
17:00:32 doyougnu joins (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
17:03:24 <hololeap> > the main two approaches to streaming is 1. expressing actual streams (streamly), so like lists, 2. expressing pipes, so you have a transformer that processes input and produces an output
17:03:55 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
17:04:03 <hololeap> I understand #2 pretty well, I think, but how does it differ from #1? what is an "actual stream" and what makes it like a list, whereas #2 is _not_ like a list?
17:04:07 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
17:08:45 <[exa]> hololeap: if I get it correctly, #1 gets efficient magically thanks to list fusion (if you have several functions like `f p (x:xs) = g x:f (h p) xs` and join them with (.), with a bit of luck it optimizes to something very efficient with almost no unnecessary allocation), and in #2 you use various high-level tricks to explicitly construct the efficient function yourself (avoiding the need for implicit luck)
17:09:47 <geekosaur> and a stream structure (#1) is typically an infinite list: data Stream a = Stream a (Stream a)
17:12:58 <[exa]> yeah because if you need to check for [], your amount of data is too low to even necessitate streaming. :D
17:12:59 bahamas joins (~lucian@84.232.140.158)
17:14:22 econo joins (uid147250@user/econo)
17:16:16 × boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Connection closed)
17:16:25 arjun joins (~arjun@user/arjun)
17:16:44 × arjun quits (~arjun@user/arjun) (Client Quit)
17:17:06 boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
17:17:44 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
17:18:37 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 246 seconds)
17:18:37 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
17:22:47 vicfred joins (~vicfred@user/vicfred)
17:23:26 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
17:23:48 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
17:24:05 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:24:28 × deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 260 seconds)
17:25:19 × razetime quits (~quassel@117.254.35.62) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:25:38 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
17:25:56 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
17:26:51 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
17:28:25 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds)
17:28:36 × jackalope quits (~jackalope@50-24-138-131.bcstcmta02.res.dyn.suddenlink.net) (Ping timeout: 260 seconds)
17:29:31 jakalx parts (~jakalx@base.jakalx.net) ()
17:31:30 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
17:34:08 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
17:35:08 jakalx joins (~jakalx@base.jakalx.net)
17:37:46 × hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
17:38:47 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Quit: Leaving)
17:39:02 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
17:39:36 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Read error: Connection reset by peer)
17:39:48 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
17:39:54 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
17:41:11 bob joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
17:41:43 × bob quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Read error: Connection reset by peer)
17:41:51 yauhsien joins (~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
17:42:01 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Client Quit)
17:42:04 × gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
17:42:15 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
17:42:46 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
17:43:08 × CATS quits (apic@brezn3.muc.ccc.de) (Remote host closed the connection)
17:43:46 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
17:43:51 bob joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
17:43:51 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Client Quit)
17:43:53 × bob quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Read error: Connection reset by peer)
17:46:01 × boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Connection closed)
17:47:19 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:48:46 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
17:51:06 Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl)
17:51:12 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
17:52:14 Macbethwin is now known as Chargen
17:52:40 pnotequalnp joins (~kevin@user/pnotequalnp)
17:56:35 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 252 seconds)
17:56:56 deadmarshal_ joins (~deadmarsh@95.38.119.235)
17:59:10 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
18:00:14 Macbethwin_ joins (~chargen@8.21.8.253)
18:00:37 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
18:01:17 × deadmarshal_ quits (~deadmarsh@95.38.119.235) (Ping timeout: 256 seconds)
18:03:39 <ProfSimm> What is this called in haskell when you have "fun arg arg arg arg arg"
18:03:39 <ProfSimm> Application chain, but is there a name for it
18:03:44 × Chargen quits (~chargen@D964062A.static.ziggozakelijk.nl) (Ping timeout: 252 seconds)
18:03:59 Macbethwin_ is now known as Chargen
18:04:18 × shailangsa quits (~shailangs@host86-162-150-212.range86-162.btcentralplus.com) (Ping timeout: 252 seconds)
18:04:31 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
18:04:49 <tomsmeding> 12:30 <maerwald> tomsmeding: it's not using bwrap?
18:04:54 <tomsmeding> what makes you say that?
18:05:18 <maerwald[m]> tomsmeding: i dunno, maybe I'm high
18:05:43 gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
18:05:52 × doyougnu quits (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 246 seconds)
18:06:02 <tomsmeding> come back down then :p
18:06:11 CATS joins (apic@brezn3.muc.ccc.de)
18:06:22 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
18:09:40 <tomsmeding> ProfSimm: you mean a function applied to lots of arguments that arae the same?
18:09:48 boxscape_ joins (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
18:10:09 <ProfSimm> tomjaguarpaw: not the same, just the application chain or call chain
18:10:19 <ProfSimm> Anywya
18:10:22 <tomsmeding> an... n-ary application?
18:10:30 <ProfSimm> Is that the official name?
18:10:58 <tomsmeding> not sure what part of "applying a function to arguments" is what you're trying to find a name for :p
18:12:37 <monochrom> There is no special name for application upon application upon appliction.
18:13:11 jackalope joins (~jackalope@165.91.13.172)
18:13:44 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4.1)
18:13:55 <monochrom> Just like there is no special name to distinguish "((x+y)*(a-b))^(c/d)" from "x+y".
18:14:14 <monochrom> Apart from "humongous mess".
18:15:37 <monochrom> "epic formula" if you're in a good mood.
18:15:45 <Rembane> Why not both?
18:16:58 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
18:17:19 <monochrom> Sure, humongous mess, epic formula, emperor of the lone islands, defender of the faith. >:)
18:17:29 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 252 seconds)
18:17:47 <Rembane> Legendary!
18:18:26 <monochrom> Err not epic enough. s/emperor of the lone islands/emperor of the lone islands and othe realms/ . Now that's more like it heehee.
18:19:12 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
18:19:39 <Rembane> Spicy!
18:21:06 <tomsmeding> emperor of \underline{\mathbf{Set}}
18:21:31 <tomsmeding> now that would be an impressive title
18:21:52 <monochrom> you forgot "and other classes and categories" >:)
18:21:56 Tuplanolla joins (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi)
18:22:10 <monochrom> and "defender of the types" haha
18:22:32 jgeerds joins (~jgeerds@d5364b87.access.ecotel.net)
18:23:19 <tomsmeding> Lord of the Higher Kinds
18:23:35 <Rembane> Conqueror of P=NP
18:24:37 <monochrom> Now it's my turn to go "why not both". Conqueror of P=NP and P≠NP.
18:24:52 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
18:25:36 <Rembane> It's indeed your turn. This is good conquest.
18:25:42 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
18:26:31 <monochrom> "think like a warmongering despot" :)
18:26:39 <tomsmeding> just work in Falso http://sigtbd.csail.mit.edu/pubs/2016/paper9.pdf
18:28:23 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:28:54 <monochrom> I was wondering why it's self-consistent. Then, oh, of course, no one says it's consistent (without self-).
18:29:18 <monochrom> "Falso proves itself consistent" is true. :)
18:30:55 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
18:34:22 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
18:36:57 k8yun joins (~k8yun@user/k8yun)
18:40:31 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
18:40:55 × jackalope quits (~jackalope@165.91.13.172) (Quit: = "vale")
18:43:55 × fef quits (~thedawn@user/thedawn) (Ping timeout: 240 seconds)
18:48:41 × Chargen quits (~chargen@8.21.8.253) (Quit: Leaving)
18:49:05 Macbethwin joins (~chargen@8.21.8.253)
18:49:31 × zer0bitz quits (~zer0bitz@2001:2003:f750:a200:544e:226a:9b44:a162) (Ping timeout: 245 seconds)
18:53:32 × kaph quits (~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Ping timeout: 260 seconds)
18:59:44 bahamas joins (~lucian@84.232.140.158)
19:01:31 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
19:07:55 riddler2d joins (~riddler2d@94.250.72.176)
19:13:09 fendor joins (~fendor@178.165.199.73.wireless.dyn.drei.com)
19:15:23 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
19:19:14 lortabac joins (~lortabac@2a01:e0a:541:b8f0:23b1:9164:bf8a:2d11)
19:20:25 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
19:20:29 xcmw joins (~textual@dyn-72-33-2-250.uwnet.wisc.edu)
19:21:12 <xcmw> Are there any downsides to query based compilers as described in https://ollef.github.io/blog/posts/query-based-compilers.html ?
19:22:54 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
19:24:17 jonathanx joins (~jonathan@c-5eea3313-74736162.cust.telenor.se)
19:25:25 × bahamas quits (~lucian@84.232.140.158) (Ping timeout: 240 seconds)
19:28:07 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
19:28:11 neurocyte8 joins (~neurocyte@IP-094016066081.dynamic.medianet-world.de)
19:28:11 × neurocyte8 quits (~neurocyte@IP-094016066081.dynamic.medianet-world.de) (Changing host)
19:28:11 neurocyte8 joins (~neurocyte@user/neurocyte)
19:28:59 × neurocyte quits (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds)
19:30:38 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
19:34:23 × gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.4)
19:35:07 gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk)
19:35:36 dextaa_ joins (~dextaa@user/dextaa)
19:35:48 × pnotequalnp quits (~kevin@user/pnotequalnp) (Ping timeout: 240 seconds)
19:37:17 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 256 seconds)
19:39:26 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
19:40:46 yauhsien_ joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net)
19:40:52 × yauhsien quits (~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
19:45:03 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
19:45:33 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:47:23 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
19:51:06 justsomeguy joins (~justsomeg@user/justsomeguy)
19:53:13 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
19:55:26 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
19:56:22 × yauhsien_ quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Remote host closed the connection)
19:56:27 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
19:57:22 yauhsien joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net)
19:57:49 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
19:59:45 acidjnk joins (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de)
20:01:43 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
20:02:25 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
20:02:35 × yauhsien quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
20:03:02 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:03:51 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
20:06:11 Macbethwin is now known as Chargen
20:09:04 × `2jt quits (~jtomas@210.red-88-24-179.staticip.rima-tde.net) (Ping timeout: 246 seconds)
20:09:08 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
20:11:03 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
20:11:16 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
20:12:41 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
20:13:26 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:13:37 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
20:13:48 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
20:14:22 × agumonkey quits (~user@88.163.231.79) (Ping timeout: 260 seconds)
20:14:54 bliminse joins (~bliminse@host86-185-253-73.range86-185.btcentralplus.com)
20:15:26 Lord_of_Life_ is now known as Lord_of_Life
20:16:30 × Graham31415 quits (~Graham@user/Graham31415) (Read error: Connection reset by peer)
20:18:00 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:19:59 cheater joins (~Username@user/cheater)
20:20:19 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
20:21:36 pavonia joins (~user@user/siracusa)
20:22:27 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
20:24:49 × jonathanx quits (~jonathan@c-5eea3313-74736162.cust.telenor.se) (Ping timeout: 246 seconds)
20:27:18 × jgeerds quits (~jgeerds@d5364b87.access.ecotel.net) (Remote host closed the connection)
20:27:35 jgeerds joins (~jgeerds@d5364b87.access.ecotel.net)
20:29:49 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Quit: WeeChat 3.3)
20:30:41 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
20:30:51 riddler2d parts (~riddler2d@94.250.72.176) ()
20:32:01 yauhsien joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net)
20:32:03 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
20:34:22 motherfsck joins (~motherfsc@user/motherfsck)
20:34:31 asocialblade joins (~qsl@user/asocialblade)
20:36:33 × yauhsien quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
20:41:39 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:43:21 ec joins (~ec@gateway/tor-sasl/ec)
20:44:27 Emil3566 joins (~Emil3566@host-45-159-164-7.netcity.pl)
20:44:35 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds)
20:45:21 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:23b1:9164:bf8a:2d11) (Quit: WeeChat 2.8)
20:49:21 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:50:32 Emil3566 parts (~Emil3566@host-45-159-164-7.netcity.pl) (Leaving...)
20:50:53 × asocialblade quits (~qsl@user/asocialblade) ()
20:58:09 pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
20:58:10 × pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
20:58:37 Guest19 joins (~Guest19@ip-86-49-182-248.zrnko.net)
20:58:37 × nattiestnate quits (~nate@202.138.250.9) (Quit: WeeChat 3.5)
20:58:38 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
20:59:13 × rawley quits (~rawley@142.99.241.242) (Remote host closed the connection)
21:01:18 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 272 seconds)
21:01:39 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
21:03:00 Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
21:05:18 kaph joins (~kaph@net-31-156-214-2.cust.vodafonedsl.it)
21:05:34 shailangsa joins (~shailangs@host86-162-150-212.range86-162.btcentralplus.com)
21:05:43 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
21:06:53 geekosaur joins (~geekosaur@xmonad/geekosaur)
21:07:28 × shailangsa quits (~shailangs@host86-162-150-212.range86-162.btcentralplus.com) ()
21:09:34 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:10:47 <sshine> xcmw, interesting blogpost!
21:10:59 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds)
21:11:41 × alp quits (~alp@user/alp) (Ping timeout: 256 seconds)
21:12:35 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 260 seconds)
21:13:34 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
21:14:53 × mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
21:16:59 mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475)
21:17:14 × Guest19 quits (~Guest19@ip-86-49-182-248.zrnko.net) (Quit: Client closed)
21:21:08 pnotequalnp joins (~kevin@user/pnotequalnp)
21:21:24 <kuribas> not sure what that's supposed solve, is it compile times?
21:24:10 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
21:27:23 × odnes quits (~odnes@5-203-245-187.pat.nym.cosmote.net) (Quit: Leaving)
21:29:48 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 272 seconds)
21:32:23 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
21:32:42 × michalz quits (~michalz@185.246.204.97) (Remote host closed the connection)
21:37:45 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 256 seconds)
21:38:13 nattiestnate joins (~nate@202.138.250.11)
21:40:29 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
21:41:16 <koz> I have a FilePath that looks like "/foo/bar/baz/../quux". Is there some function somewhere I can call which would turn it into "/foo/bar/quux"?
21:41:32 × dolio quits (~dolio@130.44.130.54) (Ping timeout: 252 seconds)
21:42:19 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:42:55 × wyrd quits (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 240 seconds)
21:43:55 × nattiestnate quits (~nate@202.138.250.11) (Quit: WeeChat 3.5)
21:44:21 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:44:26 <geekosaur> https://downloads.haskell.org/ghc/8.10.7/docs/html/libraries/directory-1.3.6.0/System-Directory.html#v:canonicalizePath ?
21:44:40 <koz> That looks perfect, thank you, you cute dino!
21:44:45 <geekosaur> also beware that that will do the wrong thing if baz is a symlink
21:45:04 <geekosaur> (canonicalizePath may deal with this for you, hopefully)
21:45:20 <koz> I don't _think_ this is the situation in my case. Worth a try at least.
21:45:26 dolio joins (~dolio@130.44.130.54)
21:45:33 <Franciman> i don't know if i said it
21:45:38 <Franciman> but haskell's runtime is RAD
21:45:40 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
21:45:49 <koz> Franciman: Yeah, it does some quite miraculous things.
21:45:50 <geekosaur> I should say what you requested would do the wrong thing
21:46:11 <koz> I think Gabriella Gonzales even mentioned that we don't even have to care if IO is async or not, even for FFI.
21:46:19 <koz> Which is actually miraculous.
21:47:08 <maerwald> geekosaur: what do you mean?
21:47:55 <geekosaur> /foo/bar/baz/../quux to /foo/bar/qux is wrong if baz is a symlink
21:47:56 × xcmw quits (~textual@dyn-72-33-2-250.uwnet.wisc.edu) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:47:59 <maerwald> `..` is a file, not some special path component
21:48:00 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
21:48:08 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1))
21:48:10 <geekosaur> yes, but it will point somewhere else
21:48:17 k8yun_ joins (~k8yun@user/k8yun)
21:48:23 <maerwald> yes and that's the only possible semantics
21:48:32 <abastro[m]> `..` is a file?
21:48:33 <geekosaur> precisely because it is an actual directopry entry
21:48:37 <maerwald> yes
21:48:44 <koz> abastro[m]: Yes.
21:48:47 <abastro[m]> Oh hmm
21:48:47 <geekosaur> \but it will be an entry in the symlinbked-todirectory and will point to its actual parent
21:48:49 <koz> So is '.' for that matter.
21:48:51 alp joins (~alp@user/alp)
21:48:53 shailangsa joins (~shailangs@host86-162-150-212.range86-162.btcentralplus.com)
21:48:57 <abastro[m]> So that is how unix is implemented
21:49:10 <monochrom> "is" and "file" are very broad in the context of unix.
21:49:13 <geekosaur> this is the weak spot in symlinks
21:49:17 <maerwald> monochrom: lol
21:49:23 <monochrom> Well, "is" is very broad universally.
21:49:38 asocialblade joins (~qsl@user/asocialblade)
21:49:49 <maerwald> geekosaur: yeah... mountpoints are cleaner xD
21:49:58 <abastro[m]> In my OS class IIRC I hardcoded those entries
21:50:07 wyrd joins (~wyrd@gateway/tor-sasl/wyrd)
21:50:17 <maerwald> with mountpoints it gets extra tricky to figure out if your recursive file operation may terminate
21:50:21 <maerwald> although it's possible
21:50:27 <abastro[m]> So that was the wrong way :<
21:50:58 <geekosaur> .recursivefindtrap :)
21:51:18 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
21:51:32 <sm> Franciman: what do you like about it ?
21:51:48 × k8yun quits (~k8yun@user/k8yun) (Ping timeout: 260 seconds)
21:52:07 <Franciman> sm: i was doing some tests on my 70lines lambda calculus implementation
21:52:30 <maerwald> here's why unix is hard: https://github.com/valvesoftware/steam-for-linux/issues/3671
21:52:36 <maerwald> classic
21:52:40 <Franciman> and while laziness is a big problem. Once you get rid of lazy data, haskell's runtime is way more efficient than MLton sml runtime
21:52:43 <Franciman> by a lot
21:52:50 <Franciman> i think it may be laziness!
21:52:52 <Franciman> but who knows
21:52:55 <Franciman> btw great job
21:53:14 <sm> great job everyone
21:55:01 <sm> also, great job on http://play-haskell.tomsmeding.com:8123/play, maerwald & tomsmeding
21:55:17 <maerwald> we're still looking for someone with CSS skillz
21:55:30 <sm> any particular CSS problem causing trouble ?
21:55:37 <maerwald> it looks so 80s
21:55:52 <maerwald> dialing in with my 56k modem
21:56:06 <tomsmeding> sm: my friend @lieuwex helped me fix the most egregious one, the output making the page overflow
21:56:12 × pnotequalnp quits (~kevin@user/pnotequalnp) (Ping timeout: 240 seconds)
21:56:55 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
21:57:04 <maerwald> tomsmeding: sorting the list [1..100000] already times out xD
21:57:11 <maerwald> kinda funny
21:57:17 <tomsmeding> wa-
21:57:22 <boxscape_> hmm is it intentional that the default program, the quicksort, removes duplicates?
21:57:26 <sm> I kind of like the UI of https://hackmd.io/t_T9l454R5aRWwNsFT0SaA?both. Ctrl-Alt-e/v/b shows edit/view/both. Strong light/dark split to show which is which
21:57:43 × fendor quits (~fendor@178.165.199.73.wireless.dyn.drei.com) (Remote host closed the connection)
21:57:45 <tomsmeding> boxscape_: you found a bug in maerwald's code
21:57:49 <boxscape_> (by having filter (>) and filter (<) rather than one of them being e.g. filter (<=))
21:58:06 <monochrom> I like 80s.
21:58:19 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
21:58:41 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
21:58:53 <maerwald> tomsmeding: it's a test
21:58:58 <tomsmeding> lol
21:59:13 <monochrom> In fact as a matter of principle I also dislike total strangers using CSS to condescend on me what are "good" background colours and foreground colours.
21:59:22 <sm> how hard would it be to embed the haskell code in the url ?
21:59:41 <maerwald> url's have a length limit
21:59:57 <maerwald> the idea is to integrate it with the pastebin
22:00:01 <tomsmeding> yeah
22:00:18 <sm> 👍️
22:00:26 <tomsmeding> as you can see on http://play-haskell.tomsmeding.com:8123/LwAM5UU5 I got half-way with one direction of that :p
22:01:43 × k8yun_ quits (~k8yun@user/k8yun) (Quit: Leaving)
22:02:21 <abastro[m]> <maerwald> "here's why unix is hard: https:/..." <- Interesting that hasufell, ghcup dev, was actively involved in the issue discussion
22:02:47 <tomsmeding> abastro[m]: maerwald = hasufell
22:03:02 <abastro[m]> Oh?!?!?
22:03:15 × DNH quits (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:03:26 <maerwald> I was just trying to get hired as a bash developer xD
22:03:32 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 252 seconds)
22:03:38 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
22:03:41 DNH joins (~DNH@2a02:8108:1100:16d8:61e3:f551:d48e:e2b3)
22:03:50 <Franciman> maerwald: are you saying that it's easier to live as a bash dev than fixing laziness bugs?
22:04:05 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 250 seconds)
22:04:23 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
22:04:27 <maerwald> bash is like coding C... one line per day is exhausting and then you think about it over the weekend and find bugs during your sleep
22:04:38 Pickchea joins (~private@user/pickchea)
22:04:51 <abastro[m]> XD
22:05:01 <abastro[m]> At least you do not need to type much
22:05:02 <sm> not any more! Fire up fly-check & ShellCheck !
22:05:37 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
22:05:41 <abastro[m]> ShellCheck noticed my `dev/null | ..` and removed it.
22:05:55 <maerwald> hehe, ShellCheck is good. But there are some corner cases where it may introduce a bug if you rely on quirks, especially with quoting
22:06:03 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
22:07:00 <abastro[m]> Relying on quoting quirks?
22:07:23 <maerwald> tomsmeding: I'm thinking the playground should randomize the starting code
22:07:56 <tomsmeding> give a different bug to each visitor?
22:07:57 <maerwald> maybe from the pastes... can we keep a list of runnable playground pastes?
22:08:05 kaph_ joins (~kaph@net-93-67-57-97.cust.vodafonedsl.it)
22:08:19 <maerwald> those that compiled
22:08:23 <boxscape_> is that a typescript autocompletion when trying to write an import statement?
22:08:35 × kaph quits (~kaph@net-31-156-214-2.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
22:08:35 <maerwald> some internal table with maybe 100 results
22:08:40 <maerwald> boxscape_: yeah
22:08:42 <tomsmeding> I think we cannot just present people's pastes like that, have to curate a selection
22:08:47 <boxscape_> I see
22:09:22 <maerwald> they have a rust parser https://github.com/codemirror/codemirror.next/tree/5377e5104d3424734b5fa0f5f2d66a5a7ea916f4/lang-rust
22:09:24 <maerwald> but not haskell
22:09:26 <maerwald> darn
22:10:59 <maerwald> the parser is lazy or so... so even if you have 100million lines and you scroll down, it won't crash your page
22:11:08 <sm> idea to get more styling help: include a link to the source repo, and one specifically to the css file asking for help
22:11:13 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
22:12:05 <tomsmeding> ok maybe the play thing should truncate output if it's too long
22:12:30 <tomsmeding> my firefox had some issue rendering [1..1000000]
22:12:51 <maerwald> doesn't seem too hard though: https://github.com/lezer-parser/rust/blob/main/src/rust.grammar
22:12:58 <maerwald> who knows haskell grammar well? :p
22:12:59 <tomsmeding> but yeah so mergesort doesn't time out where quicksort does :)
22:13:02 <tomsmeding> mergesort > quicksort in haskell
22:13:22 <tomsmeding> "lezer" -- that sounds like dutch
22:13:23 <maerwald> the best mergesort is bottom-up
22:13:34 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
22:13:35 <maerwald> I think it's also partly in-place
22:14:11 yauhsien joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net)
22:14:50 <maerwald> we can also do the quicksort in-place
22:15:06 × kuribas quits (~user@ptr-25vy0i96ymkampl0mim.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
22:15:14 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:15:18 <boxscape_> Might it be possible to use the GHC API for parsing?
22:15:25 <tomsmeding> boxscape_: in JS?
22:15:33 <boxscape_> ah, hm, I didn't think of that
22:15:42 <maerwald> ghcjs? :D
22:15:47 <tomsmeding> plz no
22:15:50 <maerwald> haha
22:16:06 <tomsmeding> I've said this before, ghcjs is an amazing technical feat, but...
22:17:33 <boxscape_> asterius? I suppose it's probably difficult to get that to compile the ghc library
22:17:41 <boxscape_> (mainly because it's not listed as supported)
22:18:37 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 240 seconds)
22:18:50 <maerwald> maybe the new HF ED can do it
22:18:58 <maerwald> as a community test
22:19:00 <maerwald> :D
22:19:03 × yauhsien quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
22:19:38 <boxscape_> to make it clear to him what he signed up for eh
22:19:55 <abastro[m]> In the github thread I saw hasufell fighting (someone who likely doesn't know what they are talking about). Interesting..
22:20:31 <maerwald> impossible
22:21:28 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
22:22:30 <janus> abastro[m]: https://hasufell.github.io/pages/Contact.html
22:22:40 <abastro[m]> * hasufell fighting against (someone who
22:22:43 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
22:23:08 <abastro[m]> Oh
22:23:27 <abastro[m]> It is also powered by hakyll, hmm seems like many ppl are using it
22:23:43 <abastro[m]> Does it mean I can use it as well right
22:24:19 <sm> nope, it has reached the cutoff, sorry, no more hakyll sites allowed
22:26:11 <abastro[m]> Oh noooo
22:27:51 <hpc> a few rails slots just opened up, hurry before you're forced to use wordpress :D
22:30:08 × Tuplanolla quits (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.)
22:30:24 xcmw joins (~textual@dyn-72-33-2-250.uwnet.wisc.edu)
22:30:43 <abastro[m]> Btw, how feasible is it to use purescript on hakyll
22:31:06 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:31:20 <xcmw> kuribas: It is supposed to solve the problem of reusing what can be reused and only computing what is needed for LSP
22:31:21 <abastro[m]> It seems that purescript does botb html generation and redirecting part, so it makes me a bit confused.
22:32:15 seydar joins (~seydar@154-27-113-252.starry-inc.net)
22:32:28 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
22:32:34 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
22:32:41 <seydar> is Network.Simple.TCP actually meant to be used? its version is 0.4.5, so I'm worried that I'm going down the wrong path by learning it
22:33:07 <seydar> it's just... listening on a port via Network.Simple is kinda (please don't hurt me) burdensome
22:34:24 × jgeerds quits (~jgeerds@d5364b87.access.ecotel.net) (Ping timeout: 272 seconds)
22:34:26 machinedgod joins (~machinedg@24.105.81.50)
22:35:08 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
22:35:32 <davean> The standard package is https://hackage.haskell.org/package/network
22:35:35 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
22:36:21 × Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
22:37:41 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:37:46 jpds joins (~jpds@gateway/tor-sasl/jpds)
22:40:47 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
22:41:33 <geekosaur> I think it's a low level interface, roughly the same thing you'd do in C to listen on an arbitrary port. Normally you'd use a higher levelpackage for whatever it is you're trying to do
22:42:28 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
22:44:02 <seydar> geekosaur: is there a preferred higher-level package for network ops? or is it, like davean said, just Network?
22:44:15 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
22:44:28 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 246 seconds)
22:44:29 <seydar> I'm struggling to figure out how to get `getAddrInfo` to take a port number (1024) instead of a port hint ("http")
22:45:41 <sm> abastro hakyll just makes websites, so why couldn't you publish some purescript on those too
22:46:09 <dons> morning all.
22:46:16 <abastro[m]> Oh, makes sense! Thank you
22:46:20 <sm> morning dons o/
22:46:22 <abastro[m]> Perhaps then I'd learn purescript
22:46:45 motherfsck joins (~motherfsc@user/motherfsck)
22:47:02 <davean> seydar: if you have the port number and such, you wouldn't use getAddrInfo?
22:47:10 <sm> (but of course it'll be confusing, they're each confusing on their own so you'll have double the fun)
22:47:11 <davean> seydar: the only thing getAddrInfo does is resolve that
22:47:18 <seydar> davean: I'm having trouble understanding the API — what should i be using instead?
22:47:37 <davean> seydar: if you ahve the numeric versions you just construct the AddrInfo you want
22:47:39 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:47:41 <davean> because you *already have it*
22:48:46 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Quit: alx741)
22:49:31 <monochrom> I suppose getAddrInfo also does hostname lookup, not just "http"->80.
22:49:50 <davean> hence "versions"
22:49:53 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
22:50:45 <monochrom> But ironically the doc has "let hints = defaultHints { addrFlags = [AI_NUMERICHOST], addrSocketType = Stream }" which is relevant for supplying "80" as the string, if you poke around the names mentioned.
22:51:14 <monochrom> Ugh damn English. s/relevant for/relevant to/ .
22:51:17 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
22:51:20 <monochrom> Prepositions die die die.
22:51:37 yauhsien joins (~yauhsien@61-231-60-85.dynamic-ip.hinet.net)
22:52:06 <monochrom> Err nevermind NUMERICHOST is not about service/port, sorry!
22:52:11 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 250 seconds)
22:52:30 <monochrom> But there is AI_NUMERICSERV
22:52:53 × Topsi quits (~Tobias@dyndsl-095-033-095-210.ewe-ip-backbone.de) (Read error: Connection reset by peer)
22:53:10 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
22:53:44 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:54:09 <monochrom> OTOH to a large extent you can supply a junk (but working) service name, get your SockAddr, then override its port part to your liking. That is, if you use getAddrInfo at all, which is not compulsory.
22:54:34 azimut joins (~azimut@gateway/tor-sasl/azimut)
22:54:56 ec joins (~ec@gateway/tor-sasl/ec)
22:55:51 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds)
22:56:38 <monochrom> Because for DNS lookup you can use network-bsd instead.
22:56:57 × yauhsien quits (~yauhsien@61-231-60-85.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
22:57:14 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 260 seconds)
22:58:06 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
22:59:15 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
23:00:00 seydar joins (~seydar@154-27-113-252.starry-inc.net)
23:00:18 <koz> Is there a way to programmatically dump the contents of PATH?
23:01:07 <monochrom> System.Environment has some kind of getEnv.
23:01:39 <geekosaur> https://downloads.haskell.org/ghc/8.10.7/docs/html/libraries/filepath-1.4.2.1/System-FilePath-Posix.html#g:2 ?
23:01:44 <monochrom> lookupEnv is probably nicer to work with.
23:01:54 <geekosaur> (well, yiou';d use System.FilePath for portability)
23:02:00 <monochrom> Oh, that's even nicer.
23:02:05 <koz> Nice!
23:02:20 <seydar> monochrom: what's my alternative to getAddrInfo?
23:02:34 <seydar> I'm struggling to just create a SockAddrInet
23:03:03 <monochrom> I need to use that in my https://github.com/treblacy/ep haha, as opposed to rolling my own splitter.
23:05:23 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 250 seconds)
23:06:00 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
23:07:00 <seydar> davean: since I don't need to use getAddrInfo, what is the alternative? It feels like `SockAddrInet 1024 (word32 conversion of a string)` is the wrong answer
23:08:36 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
23:09:59 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
23:11:11 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 245 seconds)
23:14:03 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
23:14:46 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
23:15:43 × mud quits (~mud@user/kadoban) (Quit: quit)
23:17:02 × zeenk quits (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) (Quit: Konversation terminated!)
23:17:25 <janus> seydar: did you see https://hackage.haskell.org/package/network-3.1.2.7/docs/Network-Socket.html#v:tupleToHostAddress
23:18:09 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
23:18:16 <seydar> janus: i did, but how do i get to the tuple to begin with?
23:19:07 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 246 seconds)
23:19:18 azimut joins (~azimut@gateway/tor-sasl/azimut)
23:19:42 <janus> seydar: oh, you're not starting with an IP address?
23:19:52 × hololeap quits (~hololeap@user/hololeap) (Excess Flood)
23:20:13 <seydar> janus: I have "0.0.0.0" and 1024, and I'm trying to create an address from that
23:20:35 <janus> right, then you can just put 0 in each of those tuple entries using tupleToHostAddress
23:20:36 zeenk joins (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94)
23:20:40 <seydar> i can combine them and do SockAddrUnix "0.0.0.0:1024", but I'm trying to create an addr with separate parts, akin to SockAddrInet 1024 "0.0.0.0"
23:20:54 <janus> % :m +Network.Socket
23:20:55 <yahb> janus: ; <no location info>: error:; Could not find module `Network.Socket'; It is not a module in the current program, or in any known package.
23:21:00 <janus> i think you can do
23:21:10 <janus> > tupleToHostAddress 1024 (0,0,0,0)
23:21:11 <lambdabot> error:
23:21:11 <lambdabot> Variable not in scope:
23:21:11 <lambdabot> tupleToHostAddress :: t0 -> (a0, b0, c0, d0) -> t
23:21:12 hololeap joins (~hololeap@user/hololeap)
23:21:38 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
23:21:56 <seydar> > tupleToHostAddress (127, 0, 0, 1)
23:21:58 <lambdabot> error:
23:21:58 <lambdabot> Variable not in scope: tupleToHostAddress :: (a0, b0, c0, d0) -> t
23:22:11 <seydar> janus: but you're correct, that works in ghci for me
23:22:13 × zeenk quits (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) (Client Quit)
23:22:33 <janus> yeah, each dot separated number is a word8 in haskell
23:22:45 <seydar> ah interesting
23:22:51 <janus> a Word8 is a byte, and an IPv4 address is 4 bytes
23:24:02 <seydar> i hate that i now have to split my hostname
23:24:14 <seydar> is this how everyone else is doing network ops, or am i doing something crazy?
23:24:46 <janus> i think you are correct in that there is no platform-independent way to represent an IP address with its port
23:25:02 <janus> consider that IPv6 also uses colons inside of it...
23:25:08 deadmarshal_ joins (~deadmarsh@95.38.118.21)
23:25:23 <janus> so i think it is simplest to just store the port separately of the address
23:25:40 <seydar> i now understand the impetus behind haskell: we should all be pure and disabuse ourselves of IO
23:26:12 <janus> many command line tools take the port number completely separately. somehow concatenating the address and the port is something you should only really need for URL's. but you're not dealing with URL's
23:26:34 <janus> better not invent yet another encoding scheme that will break whenever you choose to add IPv6 support...
23:26:38 <seydar> i'm storing the port separately, but now I have to write a splitter to split the hostname up on dots to turn it into a Word32
23:26:43 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
23:28:13 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:28:20 <janus> you don't need to make a Word32 if you're using the function we talked about...
23:28:42 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
23:29:31 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
23:29:38 × deadmarshal_ quits (~deadmarsh@95.38.118.21) (Ping timeout: 260 seconds)
23:29:38 <seydar> janus: my hostname comes in as a string
23:30:22 <seydar> so i need to turn it into an IPv4 quadruple
23:30:43 × acidjnk quits (~acidjnk@p200300d0c7049f4214af152190df7355.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
23:31:33 <Axman6> (,,,) <$> word8 <* char '.' <*> word8 <* char '.' <*> word8 <* char '.' <*> word8
23:32:52 × boxscape_ quits (~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Quit: Connection closed)
23:34:18 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Ping timeout: 260 seconds)
23:34:41 <janus> you can also do it without attoparsec: do { [a,b,c,d] <- pure $ splitOn "." "127.0.0.1"; (,,,) <$> readMaybe a <*> readMaybe b <*> readMaybe c <*> readMaybe d } :: Maybe (Word8,Word8,Word8,Word8)
23:35:16 <janus> @package split
23:35:16 <lambdabot> https://hackage.haskell.org/package/split
23:36:39 alx741 joins (~alx741@host-181-198-243-150.netlife.ec)
23:37:42 × alx741 quits (~alx741@host-181-198-243-150.netlife.ec) (Client Quit)
23:37:53 <janus> seydar: btw when you say 'hostname' that makes it sound like you're using dns (to me at least). but it seems like you're not
23:37:55 mvk joins (~mvk@2607:fea8:5cc3:7e00::7980)
23:40:29 rawley joins (~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
23:42:32 <janus> seydar: btw SockAddrUnix needs to be used with a path to a unix socket which exists on your filesystem. you can't just plug an IP address in there
23:43:45 <janus> ok, i am not 100% sure it needs to exist since there may also be a way to create unix sockets with this type. but IP address is wrong for sure
23:44:09 <geekosaur> it should *not* exist, if you're intending to listen on it
23:44:57 <janus> all right, makes sense
23:45:33 <geekosaur> but yes, SockAddrUnix is an AF_UNIX socket represented by an object of filetype 's' in the filesystem, not an IP address. you want SockAddrInet
23:45:58 <janus> does windows have Unix sockets?
23:47:04 <hpc> no
23:47:12 <janus> oh seems like it does https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
23:47:27 <hpc> wuh?
23:47:35 <janus> even using winsock, it says
23:47:45 <monochrom> Still, the haskell library package may not know about it.
23:49:33 <geekosaur> haskell tries to supportolder versions of windows as well, so probably it doesn't
23:52:11 <seydar> janus: damn, now i need to install Data.List.Split in order to use splitOn
23:52:17 <seydar> this is too much for one day, i'll try again tomorrow
23:52:25 × seydar quits (~seydar@154-27-113-252.starry-inc.net) (Quit: leaving)
23:52:53 <janus> seydar: it's very useful to know how to install libraries though. but see you tomorrow, good night
23:54:15 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)

All times are in UTC on 2022-03-29.