2022/12/29

2022-12-29 00:00:00 +0100 <monochrom> We need not "correct" the wording.
2022-12-29 00:00:11 +0100 <mauke[m]> but I feel it equally applies to e.g. the file system, and I haven't seen anyone refer to that as a heap
2022-12-29 00:00:37 +0100 <monochrom> And to answer your earlier question "how big is the average community?", answer: Includes all those here who were not picking on the wording.
2022-12-29 00:02:41 +0100dsrt^(~dsrt@76.145.185.103)
2022-12-29 00:03:19 +0100 <EvanR> if a container is defined as a boundary clearly partitioning inside from outside, that nicely excludes like everything people usually call containers in programming xD
2022-12-29 00:04:56 +0100 <monochrom> I don't think people define it that way. I think people define it to be "add data" and "get data back".
2022-12-29 00:05:52 +0100 <mauke[m]> I don't think people define things precisely
2022-12-29 00:06:01 +0100 <ggVGc> the thing about words... is that they can have different meanings in different contexts
2022-12-29 00:06:03 +0100 <ggVGc> like magic
2022-12-29 00:06:20 +0100 <monochrom> It is never referentially transparent.
2022-12-29 00:06:36 +0100 <monochrom> If that's magic, then (->)r is magic, too.
2022-12-29 00:06:39 +0100 <ggVGc> I once thought things were very well defined in maths, but then I was forced to study a bunch of maths this year. And now I know better
2022-12-29 00:06:53 +0100 <monochrom> In fact every monad is magic.
2022-12-29 00:07:51 +0100 <monochrom> Oh things are usually very well defined in maths. So well defined there are multiple competing definitions for the same thing, and all competitors are very precise.
2022-12-29 00:08:01 +0100 <ggVGc> haha
2022-12-29 00:08:14 +0100 <ggVGc> well, yes... that's the correct interpretation I guess
2022-12-29 00:08:14 +0100bjourne(~bjorn@94.191.136.87.mobile.tre.se) (Read error: Connection reset by peer)
2022-12-29 00:08:22 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-29 00:08:22 +0100 <monochrom> For example one definition precisely says "0 is not a natural number" and another precisely says "0 is a natural number".
2022-12-29 00:08:39 +0100 <ggVGc> I also was not aware how wild the space of notation was
2022-12-29 00:08:40 +0100fizbin(~fizbin@user/fizbin)
2022-12-29 00:09:15 +0100 <ggVGc> but then I'm a physics major, and the physicists are even more insane with notations
2022-12-29 00:09:22 +0100 <ggVGc> turns out language is hard
2022-12-29 00:09:26 +0100 <ggVGc> and context-sensitive
2022-12-29 00:09:48 +0100 <Hecate> formalising the outside world was a mistake
2022-12-29 00:09:50 +0100 <EvanR> physics would be easier with type signatures
2022-12-29 00:10:02 +0100 <EvanR> at a certain level I wonder if anyone's even tried
2022-12-29 00:10:07 +0100 <ggVGc> please don't make my add type signatures to my lab reports
2022-12-29 00:10:07 +0100 <Hecate> we must go back to avoiding insulting the gods
2022-12-29 00:10:15 +0100 <Hecate> and to hell with petrochemistry
2022-12-29 00:10:20 +0100 <Hecate> ggVGc: :D
2022-12-29 00:10:21 +0100 <mauke[m]> I knew math notation was a mess when I saw | used to mean absolute value, set definition, and "divides", all in the same line
2022-12-29 00:10:31 +0100 <Hecate> mauke[m]: oh dear
2022-12-29 00:10:40 +0100 <EvanR> |1lI
2022-12-29 00:11:11 +0100 <ggVGc> mauke[m]: my favourite so far is my linear algebra book using pi as the name of a plane, while also talking about the angles relating to said plane, in terms of pi, in the same blob of text
2022-12-29 00:11:20 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds)
2022-12-29 00:11:24 +0100 <mauke[m]> haha
2022-12-29 00:11:29 +0100 <darkling> Youch.
2022-12-29 00:11:44 +0100 <Rembane> ggVGc: Crystal clear! :D
2022-12-29 00:11:47 +0100cheater_(~Username@user/cheater)
2022-12-29 00:12:16 +0100 <Hecate> some editors must be equipped with a hammer
2022-12-29 00:12:18 +0100 <Hecate> a big hammer
2022-12-29 00:12:49 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
2022-12-29 00:13:01 +0100 <ggVGc> or my current book using lowercase k and greek kappa in two equations which are almost identical, where the kappa is a value dependent on k
2022-12-29 00:13:23 +0100 <ggVGc> and shows the two equations in different parts of the text
2022-12-29 00:13:34 +0100 <ggVGc> and on each line I have to look close if it's the one with k or the one with kappa
2022-12-29 00:14:16 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2022-12-29 00:14:24 +0100cheater_cheater
2022-12-29 00:14:52 +0100 <EvanR> small kappa looks different, k vs κ
2022-12-29 00:14:52 +0100 <ggVGc> my conclusion is that programmers have it easy. We might fight about code styles, but at least the general symbols are forced to be coherent by compilers and interpeters
2022-12-29 00:14:54 +0100 <ggVGc> mostly...
2022-12-29 00:15:12 +0100 <darkling> I think they're mostly forced to be that way by the keyboards.
2022-12-29 00:15:20 +0100 <ggVGc> EvanR: pretty hard to see the difference when reading the text though, especially since there's a bunch of other maths and explanations around it
2022-12-29 00:15:24 +0100 <darkling> (APL, I'm looking at you)
2022-12-29 00:15:38 +0100 <ggVGc> it's not that it's impossible, just adds a bit too much strain when trying to learn the material, for my taste
2022-12-29 00:15:52 +0100 <EvanR> picking letters is really an art, it's all about your audience familiarity with implications
2022-12-29 00:16:17 +0100 <ggVGc> true
2022-12-29 00:16:23 +0100 <EvanR> and collisions are resolved with the infamous "will be clear from context"
2022-12-29 00:16:25 +0100 <darkling> I had a table of symbols in the back of my thesis. Fortunately, it only ran to two pages.
2022-12-29 00:16:28 +0100 <ggVGc> I always feel weird when I pick something non-standard in an exam
2022-12-29 00:16:28 +0100 <mauke[m]> if only mathematicians weren't allergic to multi-letter identifiers ("words")
2022-12-29 00:16:36 +0100 <ggVGc> feels like I'm gonna get points off for not sticking to the norm
2022-12-29 00:16:46 +0100 <mauke[m]> then they wouldn't have to keep opening up new alphabets
2022-12-29 00:17:00 +0100 <ggVGc> that would make the maths quite weird to read, imo
2022-12-29 00:17:09 +0100 <EvanR> you'd need a different font so it doesn't look like a bunch of letters times
2022-12-29 00:17:16 +0100 <monochrom> Yes, precisely multi-letter identifiers save the day.
2022-12-29 00:17:18 +0100 <ggVGc> since letters next to each other is multiplication, which I think basically everyone agrees on
2022-12-29 00:17:34 +0100 <monochrom> Then again you lose "abc means a times b times c".
2022-12-29 00:17:35 +0100 <EvanR> distance = rate * time
2022-12-29 00:18:05 +0100 <mauke[m]> sin(c o s)
2022-12-29 00:18:18 +0100 <ggVGc> maths already gets super long and messy. I think adding multi-letter words to it would make it way too unwieldly
2022-12-29 00:18:31 +0100 <monochrom> Then again since mathematicians already embrace ambiguity "you figure it out", why not accept both >:D
2022-12-29 00:18:44 +0100 <ggVGc> however, as mauke[m] just pointed out, some functions apparently get to be named multilatter...
2022-12-29 00:18:54 +0100 <EvanR> super long and messy math = failed math xD
2022-12-29 00:19:04 +0100 <mauke[m]> (f)(x)
2022-12-29 00:19:04 +0100 <monochrom> "abc may mean abc, or a times bc, or ab times c, or a times b times c, depending on context"
2022-12-29 00:19:07 +0100 <ggVGc> I fail maths every day. AMA
2022-12-29 00:19:16 +0100 <mauke[m]> multiplication or application?
2022-12-29 00:19:16 +0100 <geekosaur> y'all do know about U+2062, right?
2022-12-29 00:19:41 +0100 <monochrom> > text "\u2062"
2022-12-29 00:19:43 +0100 <lambdabot> <hint>:1:8: error:
2022-12-29 00:19:43 +0100 <lambdabot> lexical error in string/character literal at character 'u'
2022-12-29 00:20:00 +0100 <geekosaur> > text "\x2062"
2022-12-29 00:20:02 +0100 <lambdabot>
2022-12-29 00:20:11 +0100 <geekosaur> invisible multiplication sign
2022-12-29 00:20:11 +0100 <mauke[m]> great times were had
2022-12-29 00:20:41 +0100 <mauke[m]> ... and that crashed my Element
2022-12-29 00:20:51 +0100 <ggVGc> as it should
2022-12-29 00:20:58 +0100 <monochrom> Oh haha invisible times
2022-12-29 00:20:59 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-29 00:21:20 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 00:21:51 +0100 <dgpratt[m]> I'm playing around with a toy parser/interpreter for a very simple "language" (RS274 -- basically just a simple sequence of commands that may incorporate expressions and settable variables). But some have extended RS274 to include basic control flow and subroutines and I'm thinking about how to implement such things. One thing in particular I'm not sure how best to handle is the idea of exiting a subroutine from within (say) some nested
2022-12-29 00:21:51 +0100 <dgpratt[m]> control flow block. Any ideas about how that might be accomplished?
2022-12-29 00:21:55 +0100 <geekosaur> nheko (from flatpak since ubuntu's crashed) handled it fine
2022-12-29 00:22:03 +0100 <monochrom> Oh and U+2061 is invisible function application.
2022-12-29 00:22:16 +0100cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2022-12-29 00:22:50 +0100 <EvanR> who ordered these new invisible "characters"
2022-12-29 00:22:51 +0100 <geekosaur> dgpratt[m], ContT at the price of your sanity
2022-12-29 00:22:54 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-12-29 00:23:10 +0100 <mauke[m]> I was about to say, you can do anything with continuations
2022-12-29 00:23:23 +0100 <dgpratt[m]> geekosaur: so funny you said that -- I was just going to say that I was afraid it might be some sort of CPS thing
2022-12-29 00:23:47 +0100 <monochrom> "sin\x2061(2\x2062t) = 2\x2062sin\xt\x2062cos\x2061t" :)
2022-12-29 00:23:53 +0100 <dgpratt[m]> for some reason, I find that sort of thing a bit intimidating
2022-12-29 00:24:40 +0100 <monochrom> Ugh there is also invisible plus at U+2064 -_-
2022-12-29 00:25:05 +0100 <ggVGc> I'm adopting monochrom's style for my exam in 2 weeks
2022-12-29 00:25:24 +0100 <dgpratt[m]> geekosaur: anyways, I guess it's good to know my instincts weren't altogether wrongheaded, thanks
2022-12-29 00:25:39 +0100v0id_ptr(~adrift@user/ptr-frac7al/x-0038398)
2022-12-29 00:25:44 +0100 <mauke[m]> alternatively, ruthlessly rename everything using Chinese characters
2022-12-29 00:25:59 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 268 seconds)
2022-12-29 00:26:01 +0100 <mauke[m]> there's thousands of them, so you can give every concept its own distinct symbol
2022-12-29 00:26:42 +0100 <monochrom> dgpratt[m]: ContT is easier to use than writing your own CPS.
2022-12-29 00:27:14 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2022-12-29 00:27:28 +0100 <dgpratt[m]> noted, thanks
2022-12-29 00:31:58 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-12-29 00:32:12 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-12-29 00:34:47 +0100fserucas(~fserucas@a85-138-107-42.cpe.netcabo.pt) (Ping timeout: 246 seconds)
2022-12-29 00:36:15 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2022-12-29 00:36:17 +0100cheater(~Username@user/cheater)
2022-12-29 00:37:37 +0100 <DigitalKiwi> geekosaur: if it's invisible why do i see it :(
2022-12-29 00:37:53 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Client Quit)
2022-12-29 00:38:21 +0100 <geekosaur> got a glyph box because your font doesn't have it
2022-12-29 00:38:23 +0100 <geekosaur> ?
2022-12-29 00:38:33 +0100 <ggVGc> monochrom: might be easier to do it manually first though?
2022-12-29 00:38:38 +0100 <monochrom> Yikes, GHC2021's PolyKinds may ruin some of my code.
2022-12-29 00:38:43 +0100 <DigitalKiwi> there's a dotted square around a x
2022-12-29 00:38:46 +0100 <ggVGc> like using explicit state and then moving to State monad
2022-12-29 00:38:51 +0100 <geekosaur> fascinating
2022-12-29 00:38:58 +0100 <EvanR> sorry, your font has this glyph but it's supposed to be invisible. Aborting
2022-12-29 00:39:08 +0100 <DigitalKiwi> https://capture.dropbox.com/1yxEyTcJIfmaPYvj
2022-12-29 00:39:16 +0100 <geekosaur> saner but not what was intended
2022-12-29 00:39:16 +0100bjourne(~bjorn@94.191.136.87.mobile.tre.se)
2022-12-29 00:41:01 +0100 <monochrom> "easier to understand the principle underneath" vs "easier to get things done right now this project was due yesterday"
2022-12-29 00:41:41 +0100 <monochrom> "use" means the latter, not the former.
2022-12-29 00:41:44 +0100 <ggVGc> usually it's hard to do the latter without the former
2022-12-29 00:41:46 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-29 00:41:47 +0100 <ggVGc> in my experience
2022-12-29 00:42:56 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 00:43:05 +0100 <DigitalKiwi> nah nobody understands monads but everyone writes blogs about them and uses them :D
2022-12-29 00:43:12 +0100 <ggVGc> also, from the ContT documentation: "Before using the Continuation monad, be sure that you have a firm understanding of continuation-passing style and that continuations represent the best solution to your particular design problem. Many algorithms which require continuations in other languages do not require them in Haskell, due to Haskell's lazy semantics. Abuse of the Continuation monad can
2022-12-29 00:43:14 +0100 <ggVGc> produce code that is impossible to understand and maintain."
2022-12-29 00:43:16 +0100 <ggVGc> :)
2022-12-29 00:44:00 +0100 <DigitalKiwi> the nice thing about monads is even if you don't understand them they're still useful eh
2022-12-29 00:44:07 +0100 <geekosaur> cf. "…at the price of your sanity"
2022-12-29 00:44:38 +0100 <ggVGc> let's be honest, it's the do notation we want
2022-12-29 00:44:52 +0100 <geekosaur> twice a year I work out how Cont works and promptly forget it again
2022-12-29 00:44:53 +0100 <ggVGc> still trying to train myself into ApplicativeDo
2022-12-29 00:45:00 +0100 <monochrom> This is not worth my time. You are talking about general arbitrary usages. The context is a very specific narrow "early exit" and there is just one idiom to know and use.
2022-12-29 00:45:17 +0100random-jellyfish(~random-je@user/random-jellyfish)
2022-12-29 00:45:56 +0100 <monochrom> And this is nowhere remotely close to "abuse".
2022-12-29 00:46:23 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Ping timeout: 264 seconds)
2022-12-29 00:47:18 +0100 <monochrom> And to rub it in, this is actually a case of "an algorithm which does not require continuation in other languages requires it in Haskell", the very opposite of what the doc says.
2022-12-29 00:47:21 +0100 <ggVGc> It was just in response to dgpratt[m] saying they are uncomfortable with CPS, and me remembering the documentation even has a warning along those lines in regards to ContT
2022-12-29 00:47:45 +0100 <monochrom> And nothing says the doc is right in the first place.
2022-12-29 00:47:49 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-29 00:47:53 +0100 <EvanR> what's funny is you can expand do notation and format it so it looks almost the same as do notation
2022-12-29 00:48:10 +0100 <EvanR> I'm surprised it's even a thing
2022-12-29 00:48:18 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2022-12-29 00:48:19 +0100 <ggVGc> EvanR: that's kind of the point of it, isn't it?
2022-12-29 00:48:29 +0100 <ggVGc> But, there's more stuff on your screen then... which we don't like
2022-12-29 00:48:41 +0100 <EvanR> there's very little "more" on the screen
2022-12-29 00:48:49 +0100 <EvanR> if you try it xD
2022-12-29 00:49:14 +0100 <EvanR> it's like when I rewrote my AoC code to use globals, it didn't actually reduce my code
2022-12-29 00:49:26 +0100 <ggVGc> I often write things without do, but for longer things, all the binds kind of distract from the bigger picture
2022-12-29 00:49:40 +0100 <EvanR> that's where the formatting comes in
2022-12-29 00:49:41 +0100 <monochrom> Yeah there was a small window of time when there was >>= but no do-notation yet, so people thought up how to format it nicely.
2022-12-29 00:50:46 +0100 <EvanR> and about the presence of >>= in there, sometimes knowing what those look like is key to understanding certain monadic constructions, wrt laziness
2022-12-29 00:51:54 +0100fizbin(~fizbin@user/fizbin) (Ping timeout: 260 seconds)
2022-12-29 00:52:48 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 00:53:29 +0100 <mizlan> hello am i connected
2022-12-29 00:53:41 +0100 <monochrom> yes
2022-12-29 00:54:20 +0100 <mizlan> woohoo thanks, i am new to IRC :)
2022-12-29 00:54:59 +0100caryhartline(~caryhartl@2600:1700:2d0:8d30:e41e:1f5b:1741:59ed) (Ping timeout: 255 seconds)
2022-12-29 00:55:07 +0100 <sm> welcome, private
2022-12-29 00:58:12 +0100johnjaye(~pi@173.209.64.74) (Ping timeout: 272 seconds)
2022-12-29 00:59:42 +0100johnjaye(~pi@173.209.64.74)
2022-12-29 00:59:51 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 00:59:54 +0100mikoto-chan(~mikoto-ch@164.5.249.78) (Ping timeout: 268 seconds)
2022-12-29 01:00:20 +0100coot(~coot@213.134.171.3) (Quit: coot)
2022-12-29 01:06:51 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
2022-12-29 01:09:16 +0100mikoto-chan(~mikoto-ch@164.5.249.78)
2022-12-29 01:09:24 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-12-29 01:11:28 +0100 <monochrom> Oh haha GHC2021 turns on simple subsumption and I'm hit by it. That's what ruined my code. PolyKinds was OK.
2022-12-29 01:11:50 +0100 <monochrom> I thought I would never be a victim. :)
2022-12-29 01:11:53 +0100 <geekosaur> any ghc >= 9 turns it on
2022-12-29 01:12:10 +0100 <geekosaur> DeepSubsumption is a recent addition to turn it back off
2022-12-29 01:12:35 +0100 <DigitalKiwi> what is subsumption?
2022-12-29 01:14:10 +0100 <geekosaur> I'm … not entirely clear on that aside from it's needed for QuickLook (9.0+ ImpredicativeTypes) to work and it tends to cause problems for things that aren't eta-expanded
2022-12-29 01:15:16 +0100 <geekosaur> (I wonder if they considered turning DeepSubsumption on by default and turning it off if ImpredicativeTypes is enabled. but I suspect they're hoping people will adapt to the new regime)
2022-12-29 01:15:34 +0100mmhat(~mmh@p200300f1c721be80ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
2022-12-29 01:15:40 +0100 <geekosaur> impredicative types are above my pay grade
2022-12-29 01:16:00 +0100 <DigitalKiwi> what are impredicativetypes
2022-12-29 01:16:58 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Remote host closed the connection)
2022-12-29 01:17:34 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2022-12-29 01:18:34 +0100 <geekosaur> https://wiki.haskell.org/Impredicative_types
2022-12-29 01:21:15 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-29 01:21:15 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-29 01:21:15 +0100wroathe(~wroathe@user/wroathe)
2022-12-29 01:22:18 +0100 <ggVGc> some of these GHC extensions are getting quite crazy
2022-12-29 01:23:02 +0100 <ggVGc> I play in the kids corner still. Managed quite recently to find my first use-case for type families
2022-12-29 01:23:25 +0100 <geekosaur[m]> impredicative types have been in ghc for decades. they weren't stable though because about the only thoing you could rely on was runST $ …
2022-12-29 01:23:48 +0100alskdf(~alskdf@dhcp-108-168-13-112.cable.user.start.ca)
2022-12-29 01:24:08 +0100 <geekosaur[m]> with 9.0 the QuickLook algorithm was implemented, which gave impredicative types a solid typechecking story
2022-12-29 01:24:45 +0100alskdf(~alskdf@dhcp-108-168-13-112.cable.user.start.ca) (Client Quit)
2022-12-29 01:27:16 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 01:31:53 +0100Guest323(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds)
2022-12-29 01:33:30 +0100 <monochrom> I wonder if, in the first place, it would be better if ImpredicativeTypes turned on simple subsumption but otherwise deep subsumption.
2022-12-29 01:35:14 +0100 <monochrom> But OK, we didn't know, hell I didn't know, hindsight etc. :)
2022-12-29 01:35:59 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2022-12-29 01:36:06 +0100 <geekosaur> that is what I said in the parenthetical above
2022-12-29 01:36:37 +0100 <monochrom> Yeah I didn't read.
2022-12-29 01:36:43 +0100 <geekosaur> also including my conclusion that they really want people to just get used to it and DeepSubsumption is intended to be a temporary bandaid
2022-12-29 01:36:57 +0100 <geekosaur> of course, there is nothing so permanent as a temporary bandaid…
2022-12-29 01:41:05 +0100finsternis(~X@23.226.237.192)
2022-12-29 01:46:23 +0100acidjnk(~acidjnk@p200300d6e7137a42b47c8252f7d3d407.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-12-29 01:56:43 +0100 <monochrom> Oh derp, when using TypeApplication, it has to be "@Int" not "@ Int"...
2022-12-29 01:57:43 +0100danso(~danso@danso.ca) (Quit: ZNC - https://znc.in)
2022-12-29 01:59:16 +0100danso(~danso@danso.ca)
2022-12-29 02:02:48 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-29 02:10:58 +0100TonyStone(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com)
2022-12-29 02:12:02 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-12-29 02:12:50 +0100random-jellyfish(~random-je@user/random-jellyfish) (Quit: Client closed)
2022-12-29 02:15:16 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 02:18:09 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-12-29 02:18:55 +0100 <ggVGc> I think I'm dumb... From the wiki page on impredicative types, it says: "and (forall a. [a] -> Int) -> Int really is different from forall a. ([a] -> Int) -> Int."
2022-12-29 02:19:04 +0100 <ggVGc> I can't see why "really is" different
2022-12-29 02:19:07 +0100 <ggVGc> in practice
2022-12-29 02:19:24 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 02:19:45 +0100 <geekosaur> in the former, you get to specify the `a`. in the latter, the caller does
2022-12-29 02:19:54 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-29 02:19:55 +0100 <ggVGc> oh right
2022-12-29 02:19:59 +0100 <ggVGc> yeah that makes sense
2022-12-29 02:20:02 +0100 <monochrom> At that level, it's just rank-n types, no impredicativity required.
2022-12-29 02:20:24 +0100 <monochrom> SImpler example: ((forall a. a) -> Int) vs (forall a. a -> Int)
2022-12-29 02:20:45 +0100 <monochrom> Impredicativity is when you start talking about [forall a. a] too.
2022-12-29 02:21:09 +0100xff0x(~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 260 seconds)
2022-12-29 02:24:14 +0100tremon(~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2022-12-29 02:31:26 +0100 <glguy> Normally when you instantiate a type variable you can't instantiate it with a quantifier (forall)
2022-12-29 02:32:03 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 02:33:19 +0100shapr(~user@68.54.166.125) (Read error: Connection reset by peer)
2022-12-29 02:33:32 +0100shapr(~user@68.54.166.125)
2022-12-29 02:37:41 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Quit: mizlan)
2022-12-29 02:37:54 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 02:39:48 +0100beefbambi(~beefbambi@183.82.177.237) (Ping timeout: 268 seconds)
2022-12-29 02:43:05 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-29 02:45:44 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-12-29 02:46:31 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-29 02:48:05 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-29 02:48:27 +0100 <dgpratt[m]> @pl w r c = (map fst . filter snd) (zip r c)
2022-12-29 02:48:27 +0100 <lambdabot> w = ((map fst . filter snd) .) . zip
2022-12-29 02:48:55 +0100 <dgpratt[m]> @pl w c r= (map fst . filter snd) (zip r c)
2022-12-29 02:48:55 +0100 <lambdabot> w = ((map fst . filter snd) .) . flip zip
2022-12-29 02:50:03 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-29 02:50:20 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 02:52:45 +0100VY2(~user@213.24.126.116)
2022-12-29 02:53:49 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-29 02:58:09 +0100beefbambi(~beefbambi@183.82.204.167)
2022-12-29 03:02:03 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 03:04:28 +0100vlkrs[m](~vlkrsmatr@2001:470:69fc:105::2:e806)
2022-12-29 03:06:36 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-29 03:06:45 +0100LemanR(~LemanR@2607:fb91:bd20:9480:a2fd:aa32:5527:e9b5)
2022-12-29 03:07:16 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-29 03:07:43 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-12-29 03:07:51 +0100paulpaul1076(~textual@95-29-5-111.broadband.corbina.ru) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 03:07:51 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 03:08:29 +0100LemanR(~LemanR@2607:fb91:bd20:9480:a2fd:aa32:5527:e9b5) (Client Quit)
2022-12-29 03:10:21 +0100LemanR(~LemanR@2607:fb91:bd20:9480:a2fd:aa32:5527:e9b5)
2022-12-29 03:12:40 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-12-29 03:17:06 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2022-12-29 03:17:55 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-29 03:20:32 +0100thongpv(~thongpv87@14.246.240.163)
2022-12-29 03:25:36 +0100paulpaul1076(~textual@95-29-5-111.broadband.corbina.ru)
2022-12-29 03:29:30 +0100mikoto-chan(~mikoto-ch@164.5.249.78) (Ping timeout: 252 seconds)
2022-12-29 03:30:19 +0100paulpaul1076(~textual@95-29-5-111.broadband.corbina.ru) (Ping timeout: 260 seconds)
2022-12-29 03:54:35 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 246 seconds)
2022-12-29 03:56:21 +0100mikoto-chan(~mikoto-ch@164.5.249.78)
2022-12-29 03:57:02 +0100thongpv(~thongpv87@14.246.240.163) (Ping timeout: 246 seconds)
2022-12-29 04:01:14 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 04:02:11 +0100fizbin(~fizbin@user/fizbin)
2022-12-29 04:09:37 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-12-29 04:09:37 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-12-29 04:09:37 +0100finn_elijaFinnElija
2022-12-29 04:10:34 +0100jinsun(~jinsun@user/jinsun) (Ping timeout: 252 seconds)
2022-12-29 04:11:20 +0100jinsun(~jinsun@user/jinsun)
2022-12-29 04:12:56 +0100jinsun__(~jinsun@user/jinsun)
2022-12-29 04:12:56 +0100jinsun(~jinsun@user/jinsun) (Killed (zinc.libera.chat (Nickname regained by services)))
2022-12-29 04:12:56 +0100jinsun__jinsun
2022-12-29 04:17:02 +0100Kaipei(~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 246 seconds)
2022-12-29 04:19:23 +0100td_(~td@83.135.9.57) (Ping timeout: 264 seconds)
2022-12-29 04:21:12 +0100td_(~td@83.135.9.29)
2022-12-29 04:22:28 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-12-29 04:31:27 +0100ddellacosta(~ddellacos@143.244.47.68) (Ping timeout: 255 seconds)
2022-12-29 04:31:27 +0100razetime(~Thunderbi@49.207.228.176)
2022-12-29 04:38:32 +0100Guest32(~Guest32@176.122.87.241)
2022-12-29 04:38:49 +0100Guest32(~Guest32@176.122.87.241) (Client Quit)
2022-12-29 04:41:24 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat)
2022-12-29 04:42:48 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::)
2022-12-29 04:42:51 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-12-29 04:51:04 +0100razetime(~Thunderbi@49.207.228.176) (Ping timeout: 260 seconds)
2022-12-29 04:51:32 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-12-29 04:54:51 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-12-29 04:58:09 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-29 04:58:12 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-12-29 05:03:57 +0100VY2(~user@213.24.126.116) (Remote host closed the connection)
2022-12-29 05:05:27 +0100bjourne(~bjorn@94.191.136.87.mobile.tre.se) (Read error: Connection reset by peer)
2022-12-29 05:07:45 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-29 05:12:13 +0100wz1000(~zubin@static.11.113.47.78.clients.your-server.de) (Ping timeout: 252 seconds)
2022-12-29 05:13:00 +0100fizbin(~fizbin@user/fizbin) (Ping timeout: 260 seconds)
2022-12-29 05:17:42 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-29 05:22:47 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds)
2022-12-29 05:26:00 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 05:26:04 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 05:27:09 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 05:30:36 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-12-29 05:30:58 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-29 05:33:47 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-12-29 05:41:49 +0100beefbambi(~beefbambi@183.82.204.167) (Read error: Connection reset by peer)
2022-12-29 05:42:09 +0100beefbambi(~beefbambi@183.82.204.167)
2022-12-29 05:46:21 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 05:52:26 +0100beefbambi(~beefbambi@183.82.204.167) (Read error: Connection reset by peer)
2022-12-29 05:53:04 +0100beefbambi(~beefbambi@183.82.204.167)
2022-12-29 06:03:10 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-12-29 06:04:53 +0100mbuf(~Shakthi@49.204.117.236)
2022-12-29 06:05:46 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-29 06:15:02 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-12-29 06:19:17 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-29 06:20:57 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-12-29 06:24:29 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-29 06:25:57 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-29 06:30:05 +0100razetime(~Thunderbi@49.207.228.176)
2022-12-29 06:32:15 +0100beefbambi(~beefbambi@183.82.204.167) (Read error: Connection reset by peer)
2022-12-29 06:32:33 +0100beefbambi(~beefbambi@138.199.22.98)
2022-12-29 06:39:56 +0100Kaipei(~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net)
2022-12-29 06:41:53 +0100wroathe(~wroathe@user/wroathe) (Quit: leaving)
2022-12-29 06:45:16 +0100Kaipei(~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 272 seconds)
2022-12-29 06:49:31 +0100razetime(~Thunderbi@49.207.228.176) (Quit: razetime)
2022-12-29 06:49:50 +0100razetime(~Thunderbi@49.207.228.176)
2022-12-29 06:50:57 +0100razetime(~Thunderbi@49.207.228.176) (Client Quit)
2022-12-29 06:54:08 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 265 seconds)
2022-12-29 06:56:02 +0100beefbambi(~beefbambi@138.199.22.98) (Ping timeout: 272 seconds)
2022-12-29 06:59:11 +0100razetime(~Thunderbi@49.207.228.176)
2022-12-29 07:05:10 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-12-29 07:05:52 +0100beefbambi(~beefbambi@183.82.204.167)
2022-12-29 07:06:12 +0100nilradical(~nilradica@user/naso)
2022-12-29 07:06:13 +0100nilradical(~nilradica@user/naso) (Client Quit)
2022-12-29 07:06:20 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 07:11:32 +0100trev(~trev@user/trev)
2022-12-29 07:19:44 +0100nilradical(~nilradica@user/naso)
2022-12-29 07:20:09 +0100razetime(~Thunderbi@49.207.228.176) (Quit: razetime)
2022-12-29 07:20:09 +0100 <nilradical> i have a cabal project. how can i load app/Main.hs into the repl ?
2022-12-29 07:21:35 +0100razetime(~Thunderbi@49.207.228.176)
2022-12-29 07:22:09 +0100beefbambi(~beefbambi@183.82.204.167) (Ping timeout: 260 seconds)
2022-12-29 07:23:51 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-29 07:25:35 +0100raym(~ray@user/raym) (Ping timeout: 255 seconds)
2022-12-29 07:49:29 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2022-12-29 08:00:34 +0100Qudit(~user@user/Qudit) (Read error: Connection reset by peer)
2022-12-29 08:06:20 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2022-12-29 08:10:19 +0100titibandit(~titibandi@xdsl-89-0-163-79.nc.de)
2022-12-29 08:28:09 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 08:35:27 +0100wz1000(~zubin@static.11.113.47.78.clients.your-server.de)
2022-12-29 08:35:40 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 08:35:44 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2022-12-29 08:35:54 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-12-29 08:37:41 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 08:38:15 +0100jakalx(~jakalx@base.jakalx.net)
2022-12-29 08:42:49 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:2a2c:b09a:c3a5:8048)
2022-12-29 08:44:36 +0100cheater(~Username@user/cheater)
2022-12-29 08:54:09 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
2022-12-29 08:59:22 +0100nilradical(~nilradica@user/naso) ()
2022-12-29 09:03:33 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-12-29 09:05:17 +0100Guest799(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-12-29 09:12:21 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-12-29 09:15:12 +0100lucerne(~lucerne@5.114.36.56)
2022-12-29 09:16:49 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-12-29 09:17:13 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-12-29 09:17:21 +0100lucerne(~lucerne@5.114.36.56) (Remote host closed the connection)
2022-12-29 09:21:15 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-12-29 09:24:29 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2022-12-29 09:30:23 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-12-29 09:30:52 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-12-29 09:32:03 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2022-12-29 09:33:50 +0100jargon(~jargon@174-22-197-118.phnx.qwest.net) (Remote host closed the connection)
2022-12-29 09:36:55 +0100shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-12-29 09:37:43 +0100Guest799(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds)
2022-12-29 09:47:36 +0100cfricke(~cfricke@user/cfricke)
2022-12-29 09:49:48 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2022-12-29 09:58:26 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-29 10:00:04 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-12-29 10:01:03 +0100LemanR(~LemanR@2607:fb91:bd20:9480:a2fd:aa32:5527:e9b5) (Ping timeout: 260 seconds)
2022-12-29 10:01:04 +0100califax(~califax@user/califx)
2022-12-29 10:02:21 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 10:06:38 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2022-12-29 10:06:46 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2022-12-29 10:11:11 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2022-12-29 10:12:25 +0100raym(~ray@user/raym)
2022-12-29 10:18:42 +0100cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2022-12-29 10:19:06 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-12-29 10:19:39 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-12-29 10:25:12 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) (Remote host closed the connection)
2022-12-29 10:26:12 +0100cheater(~Username@user/cheater)
2022-12-29 10:28:46 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 10:33:36 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 10:33:47 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 264 seconds)
2022-12-29 10:35:15 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 10:36:56 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 10:41:03 +0100Kaipei(~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net)
2022-12-29 10:41:15 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2022-12-29 10:47:51 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
2022-12-29 10:48:31 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 10:49:57 +0100cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2022-12-29 10:51:45 +0100cheater(~Username@user/cheater)
2022-12-29 10:52:34 +0100acidjnk(~acidjnk@p200300d6e7137a42305f770ee2a81388.dip0.t-ipconnect.de)
2022-12-29 10:58:35 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-12-29 10:58:41 +0100mikoto-chan(~mikoto-ch@164.5.249.78) (Ping timeout: 268 seconds)
2022-12-29 11:04:00 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 11:08:43 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-29 11:12:30 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 11:13:40 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 11:14:32 +0100`2jt(~jtomas@84.red-88-17-186.dynamicip.rima-tde.net)
2022-12-29 11:17:18 +0100razetime(~Thunderbi@49.207.228.176) (Remote host closed the connection)
2022-12-29 11:21:23 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 11:24:14 +0100coot(~coot@213.134.171.3)
2022-12-29 11:25:09 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 11:25:40 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-12-29 11:26:30 +0100cheater_(~Username@user/cheater)
2022-12-29 11:27:32 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2022-12-29 11:27:36 +0100cheater_cheater
2022-12-29 11:27:52 +0100Lycurgus(~juan@user/Lycurgus)
2022-12-29 11:29:50 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2022-12-29 11:30:16 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2022-12-29 11:30:45 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-12-29 11:31:44 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2022-12-29 11:32:49 +0100titibandit(~titibandi@xdsl-89-0-163-79.nc.de) (Remote host closed the connection)
2022-12-29 11:33:31 +0100Lord_of_Life_Lord_of_Life
2022-12-29 11:44:52 +0100mmhat(~mmh@p200300f1c721be80ee086bfffe095315.dip0.t-ipconnect.de)
2022-12-29 11:48:46 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-12-29 11:55:57 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2022-12-29 11:56:51 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 11:59:45 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 12:02:22 +0100xff0x(~xff0x@ai071162.d.east.v6connect.net)
2022-12-29 12:02:34 +0100v0id_ptr(~adrift@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2022-12-29 12:05:14 +0100KaipeiKaiepi
2022-12-29 12:05:41 +0100__monty__(~toonn@user/toonn)
2022-12-29 12:06:18 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-12-29 12:08:14 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 12:08:33 +0100zeenk(~zeenk@2a02:2f04:a110:ac00::7fe)
2022-12-29 12:09:21 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 12:24:46 +0100fizbin(~fizbin@user/fizbin)
2022-12-29 12:24:59 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 248 seconds)
2022-12-29 12:31:41 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-12-29 12:33:58 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-29 12:36:11 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-12-29 12:36:41 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-29 12:43:05 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 12:43:40 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 12:46:02 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 12:47:20 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 246 seconds)
2022-12-29 12:53:27 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-12-29 12:54:26 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 12:56:43 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 13:00:06 +0100jakalx(~jakalx@base.jakalx.net)
2022-12-29 13:03:24 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2022-12-29 13:06:02 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 13:07:32 +0100cheater_(~Username@user/cheater)
2022-12-29 13:08:28 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 13:08:40 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 13:09:15 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2022-12-29 13:09:19 +0100cheater_cheater
2022-12-29 13:10:26 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Client Quit)
2022-12-29 13:16:14 +0100Guest9971(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-12-29 13:17:02 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 13:19:15 +0100acidjnk(~acidjnk@p200300d6e7137a42305f770ee2a81388.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-12-29 13:19:55 +0100cheater__(~Username@user/cheater)
2022-12-29 13:20:33 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2022-12-29 13:20:39 +0100cheater__cheater
2022-12-29 13:24:25 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 13:28:42 +0100mc47(~mc47@xmonad/TheMC47)
2022-12-29 13:29:23 +0100v0id_ptr(~adrift@user/ptr-frac7al/x-0038398)
2022-12-29 13:31:13 +0100fizbin(~fizbin@user/fizbin) (Remote host closed the connection)
2022-12-29 13:31:32 +0100fizbin(~fizbin@user/fizbin)
2022-12-29 13:34:19 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 13:34:44 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat)
2022-12-29 13:35:26 +0100mei(~mei@user/mei)
2022-12-29 13:36:07 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::)
2022-12-29 13:39:09 +0100nerdypepper(~nerdypepp@user/nerdypepper) (Quit: bye)
2022-12-29 13:42:05 +0100nerdypepper(~nerdypepp@user/nerdypepper)
2022-12-29 13:47:21 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 13:51:58 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2022-12-29 14:06:31 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 14:12:14 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2022-12-29 14:14:13 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-29 14:20:43 +0100dextaa6(~DV@user/dextaa)
2022-12-29 14:22:44 +0100dextaa(~DV@user/dextaa) (Ping timeout: 260 seconds)
2022-12-29 14:22:44 +0100dextaa6dextaa
2022-12-29 14:25:42 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Ping timeout: 272 seconds)
2022-12-29 14:26:58 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 14:31:29 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-29 14:42:44 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 14:44:47 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 14:46:55 +0100`2jt(~jtomas@84.red-88-17-186.dynamicip.rima-tde.net) (Quit: Leaving)
2022-12-29 14:49:23 +0100mbuf(~Shakthi@49.204.117.236) (Quit: Leaving)
2022-12-29 14:51:40 +0100Guest9971(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2022-12-29 14:52:53 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 14:57:04 +0100bjourne(~bjorn@94.191.136.87.mobile.tre.se)
2022-12-29 14:58:55 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 14:59:04 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 14:59:41 +0100thongpv(~thongpv87@2402:9d80:3d4:9b78:8ba5:ce77:f12f:2cae)
2022-12-29 15:03:23 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 248 seconds)
2022-12-29 15:04:32 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-12-29 15:05:07 +0100Xeroine_(~Xeroine@user/xeroine)
2022-12-29 15:05:09 +0100Xeroine(~Xeroine@user/xeroine) (Read error: Connection reset by peer)
2022-12-29 15:05:11 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2022-12-29 15:08:58 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2022-12-29 15:14:16 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 15:14:49 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 15:15:58 +0100eldritch_(~eldritch@2804:7f4:8180:b77d:f95d:ba1e:17c9:1b93)
2022-12-29 15:16:09 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2022-12-29 15:16:43 +0100Xeroine_(~Xeroine@user/xeroine) (Read error: Connection reset by peer)
2022-12-29 15:16:47 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Ping timeout: 246 seconds)
2022-12-29 15:17:56 +0100 <eldritch_> hello can anyone enlighten my why there isn't a type class for "runnable" monad transformers IE. those with a runXXXT function?
2022-12-29 15:19:12 +0100Xeroine(~Xeroine@user/xeroine)
2022-12-29 15:19:50 +0100 <mauke[m]> because the run functions all have different signatures
2022-12-29 15:22:50 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 15:24:03 +0100 <eldritch_> they all depend on the type like a functional dependency
2022-12-29 15:24:51 +0100 <eldritch_> so couldn't it be done?
2022-12-29 15:25:29 +0100AlexZenon(~alzenon@178.34.150.35) (Ping timeout: 246 seconds)
2022-12-29 15:26:07 +0100geekosaurhas been trying to work this out
2022-12-29 15:26:11 +0100Alex_test(~al_test@178.34.150.35) (Ping timeout: 260 seconds)
2022-12-29 15:26:40 +0100 <geekosaur> if it's dependent on the type like that, wouldn't it e.g. restrict you to only one Runnable StateT?
2022-12-29 15:27:05 +0100 <geekosaur> not one per state type
2022-12-29 15:28:21 +0100 <eldritch_> why would it monadState has a polymorphic state type
2022-12-29 15:28:40 +0100 <eldritch_> it wouldn't have a problem as long as s appeared on both
2022-12-29 15:29:13 +0100 <geekosaur> but if you encode the s as part of the type then you can only have `Runnable StateT`
2022-12-29 15:29:18 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912)
2022-12-29 15:29:23 +0100 <geekosaur> and if it doesn't then you can have only one of them
2022-12-29 15:30:04 +0100 <geekosaur> well, maybe if you jettison fds but then you have to specify types everywhere because the compiler can't figure them for you
2022-12-29 15:30:16 +0100 <eldritch_> ?? it would be similar to the either monad instance we have one for each stateT s
2022-12-29 15:30:16 +0100 <lambdabot> it would be similar to the either monad instance we have one for each stateT s
2022-12-29 15:30:35 +0100 <eldritch_> why did a bot reply?
2022-12-29 15:30:57 +0100 <geekosaur> because ?? is a command (it expands any commands anywhere in the line, instead of just at the beginning)
2022-12-29 15:31:10 +0100 <eldritch_> ok
2022-12-29 15:31:26 +0100 <geekosaur> and you're wrong about Either monad: it has to be Either e, not just Either
2022-12-29 15:31:45 +0100 <geekosaur> and e is pretty much fixed to String
2022-12-29 15:32:14 +0100 <eldritch_> yes it would be stateT s instead of state its transformer instance uses stateT s so we wouldn't have a problem
2022-12-29 15:33:07 +0100 <eldritch_> ?? help
2022-12-29 15:33:07 +0100 <lambdabot> help
2022-12-29 15:33:23 +0100 <geekosaur> ?? like this ?faq
2022-12-29 15:33:23 +0100 <lambdabot> like this https://wiki.haskell.org/FAQ
2022-12-29 15:33:36 +0100 <eldritch_> nice
2022-12-29 15:33:40 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) (Ping timeout: 260 seconds)
2022-12-29 15:33:45 +0100 <geekosaur> (? and @ are both accepted as command characters)
2022-12-29 15:34:46 +0100n0den1te(~n0den1te@223.178.83.97)
2022-12-29 15:35:05 +0100Alex_test(~al_test@178.34.150.35)
2022-12-29 15:35:05 +0100 <geekosaur> hm, I think I forgot to document that one
2022-12-29 15:36:16 +0100razetime(~Thunderbi@49.207.228.176)
2022-12-29 15:37:20 +0100AlexZenon(~alzenon@178.34.150.35)
2022-12-29 15:37:44 +0100 <eldritch_> like readerT would have instance ((->) r) ReaderT r
2022-12-29 15:38:22 +0100 <eldritch_> wait sorry instance ((->) r) (ReaderT r)
2022-12-29 15:40:07 +0100 <eldritch_> i don't know how to do it for stateT s
2022-12-29 15:41:07 +0100 <eldritch_> like it would be isomorphic to compose (,s) ((->) s) bbut we don't have type level lambdas
2022-12-29 15:41:15 +0100 <eldritch_> *Compose
2022-12-29 15:41:16 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-12-29 15:41:24 +0100 <eldritch_> ?? ?commands
2022-12-29 15:41:25 +0100 <lambdabot> Plugin `compose' failed with: user error (Unknown command: "commands")
2022-12-29 15:41:42 +0100 <eldritch_> *
2022-12-29 15:41:47 +0100 <eldritch_> ?? ?help
2022-12-29 15:41:47 +0100 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
2022-12-29 15:41:52 +0100 <eldritch_> ?? ?list
2022-12-29 15:41:52 +0100 <lambdabot> What module? Try @listmodules for some ideas.
2022-12-29 15:42:39 +0100v0id_ptr(~adrift@user/ptr-frac7al/x-0038398) (Ping timeout: 260 seconds)
2022-12-29 15:43:39 +0100 <eldritch_> is Compose (,s) ((->) s) a monad ?
2022-12-29 15:46:51 +0100cheater(~Username@user/cheater)
2022-12-29 15:46:53 +0100 <mauke[m]> @unmtl ReaderT e (Writer w) a
2022-12-29 15:46:53 +0100 <lambdabot> e -> (a, w)
2022-12-29 15:47:16 +0100 <mauke[m]> @unmtl WriterT w (Reader e) a
2022-12-29 15:47:16 +0100 <lambdabot> e -> (a, w)
2022-12-29 15:47:35 +0100 <eldritch_> nice
2022-12-29 15:49:17 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2022-12-29 15:53:13 +0100 <eldritch_> i wanted to relate the runXXXT to the mapXXXT but they don't immeadiately seem equal
2022-12-29 15:53:17 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-29 15:55:01 +0100shriekingnoise(~shrieking@186.137.167.202)
2022-12-29 15:58:00 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-29 15:59:41 +0100 <mauke[m]> :t runCont
2022-12-29 15:59:42 +0100 <lambdabot> Cont r a -> (a -> r) -> r
2022-12-29 15:59:51 +0100 <mauke[m]> :t runContT
2022-12-29 15:59:52 +0100 <lambdabot> forall k (r :: k) (m :: k -> *) a. ContT r m a -> (a -> m r) -> m r
2022-12-29 16:01:54 +0100 <eldritch_> ContT doesn't have a mapContT and its monad istance is indepedent of the base type contructor being a functor or monad
2022-12-29 16:04:11 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 252 seconds)
2022-12-29 16:04:18 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 16:08:53 +0100titibandit(~titibandi@xdsl-89-0-163-79.nc.de)
2022-12-29 16:11:55 +0100mei_(~mei@user/mei)
2022-12-29 16:12:12 +0100n0den1te(~n0den1te@223.178.83.97) (Quit: leaving)
2022-12-29 16:13:47 +0100zeenk(~zeenk@2a02:2f04:a110:ac00::7fe) (Quit: Konversation terminated!)
2022-12-29 16:13:50 +0100n0den1te(~aaaa@2401:4900:1cc8:ae75:8ca5:24cf:a3c6:3784)
2022-12-29 16:15:32 +0100mei(~mei@user/mei) (Ping timeout: 246 seconds)
2022-12-29 16:20:20 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 272 seconds)
2022-12-29 16:22:48 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2022-12-29 16:25:10 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-12-29 16:28:40 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2022-12-29 16:30:25 +0100son0p(~ff@2604:3d08:5b7f:5540:98a9:2169:15a1:4c7f) (Read error: Connection reset by peer)
2022-12-29 16:30:47 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat)
2022-12-29 16:32:01 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2022-12-29 16:32:09 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::)
2022-12-29 16:34:25 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 16:35:36 +0100son0p(~ff@2604:3d08:5b7f:5540:98a9:2169:15a1:4c7f)
2022-12-29 16:39:47 +0100fserucas(~fserucas@a85-138-107-42.cpe.netcabo.pt)
2022-12-29 16:42:00 +0100jnzd[m](~jnzdmatri@2001:470:69fc:105::2:e878)
2022-12-29 16:42:29 +0100cheater_(~Username@user/cheater)
2022-12-29 16:44:34 +0100cheater_cheater
2022-12-29 16:44:50 +0100jnzd[m]jonas[m]
2022-12-29 16:47:18 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 16:47:23 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 260 seconds)
2022-12-29 16:48:58 +0100Guest40(~Guest40@2001:861:5401:12b0:d149:a31c:3c29:397f)
2022-12-29 16:51:02 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:2a2c:b09a:c3a5:8048) (Quit: WeeChat 2.8)
2022-12-29 16:55:49 +0100 <eldritch_> um is there bimonad? if not why this seems interesting
2022-12-29 16:57:01 +0100beefbambi(~beefbambi@49.204.133.80)
2022-12-29 16:57:52 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 17:00:05 +0100FurudeRika[m](~chitandae@2001:470:69fc:105::1:6039) (Quit: You have been kicked for being idle)
2022-12-29 17:01:03 +0100 <Profpatsch> Should any Profunctor p a b implement Functor over b and Contravariant over a?
2022-12-29 17:13:05 +0100 <Profpatsch> Hm, if I read http://blog.sigfpe.com/2011/07/profunctors-in-haskell.html (the linked article in the Profunctor) module correctly, that applies to Hask, but not in general
2022-12-29 17:13:22 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 17:13:53 +0100 <Profpatsch> Tho I’d guess Haskell developers expect at least a Functor instance for most things that implement Profunctor
2022-12-29 17:15:24 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 17:17:07 +0100 <gqplox[m]> hi guys
2022-12-29 17:17:43 +0100beefbambi(~beefbambi@49.204.133.80) (Ping timeout: 260 seconds)
2022-12-29 17:18:22 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-29 17:19:49 +0100 <Profpatsch> hmm, there’s Profunctor p => Functor (Procompose p q a)
2022-12-29 17:19:56 +0100 <Profpatsch> so at least for profunctor composition it does hold in general
2022-12-29 17:20:49 +0100jinsun(~jinsun@user/jinsun) (Ping timeout: 252 seconds)
2022-12-29 17:24:36 +0100 <ncf> well a profunctor is just a functor C × D^op → E, so categorically you always get a functor C → E for each object of D and a functor D^op → E for each object of C
2022-12-29 17:24:46 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2022-12-29 17:25:30 +0100 <Profpatsch> ncf: yeah but is there a newtype that witnesses that in the profunctors library
2022-12-29 17:25:37 +0100 <Profpatsch> I’m looking around, I can’t really see it
2022-12-29 17:25:39 +0100 <ncf> idk
2022-12-29 17:26:28 +0100 <Profpatsch> So I can say e.g. deriving Functor via ProfFun (p a)
2022-12-29 17:30:51 +0100ddellacosta(~ddellacos@143.244.47.100)
2022-12-29 17:31:16 +0100 <gqplox[m]> i'm having a little trouble with recursion if anyone wouldn't mind taking a look
2022-12-29 17:32:26 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 17:33:37 +0100 <gqplox[m]> its for advent of code day 7
2022-12-29 17:33:40 +0100 <Jadesheit[m]> sure, just show what you have trouble with
2022-12-29 17:34:29 +0100Vq(~vq@90-227-195-41-no77.tbcn.telia.com) (Remote host closed the connection)
2022-12-29 17:34:36 +0100 <mauke[m]> can't take a look if you don't show us the code :-)
2022-12-29 17:37:16 +0100 <gqplox[m]> http://sprunge.us/WQwNcf
2022-12-29 17:37:52 +0100 <gqplox[m]> i am trying to parse the commands into a tree. i did this first in python it was very easy as i can just make a structure which holds the data and children and parents and then if the directory is .. i can just do something like cur_node = cur_node.parent. in haskell i searched up on how to do this kind of thing and saw something about tying the knot which works for the make children. but the real issue is im a bit confused on how to handle
2022-12-29 17:37:52 +0100 <gqplox[m]> a cd .. in my recursive create tree function
2022-12-29 17:38:29 +0100 <gqplox[m]> i think my cd is bad as if i uncomment the cd .. line, it will be called from the (cd dir) path so the parent node actually goes on the child
2022-12-29 17:38:48 +0100 <gqplox[m]> ok wow that was a terrible explaination but yeah help would be appreicated please. or any pointer in general
2022-12-29 17:38:52 +0100 <mauke[m]> tying the knot can be nice for read-only structures. I don't think it makes much sense for mutable structures
2022-12-29 17:39:02 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds)
2022-12-29 17:39:39 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-12-29 17:39:54 +0100 <mauke[m]> I still have to read your code, but in general you don't need a parent pointer in your data structure
2022-12-29 17:39:56 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
2022-12-29 17:40:38 +0100 <gqplox[m]> yeah I understand that this way is almost certainly not a good way to do this problem, however I am wondering how I can make the create tree function work properly with cd ..? It must be possible im just looking it the wrong way and Im annoyed why I cant figure it out
2022-12-29 17:41:08 +0100 <gqplox[m]> i look forward to reading some other people's solutions when i'm done too because this one is terrible
2022-12-29 17:41:10 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-12-29 17:41:39 +0100 <Jadesheit[m]> In haskell you can represent your tree with a recursive ADT, I assume you have that
2022-12-29 17:42:08 +0100 <Jadesheit[m]> for "editing" a node you can write a recursive funtion that takes your tree and returns a new one
2022-12-29 17:42:11 +0100eldritchcookie[4(~eldritchc@2001:470:69fc:105::2:d53c)
2022-12-29 17:42:15 +0100 <Jadesheit[m]> if you give us your ADT as well as a specific function we can help you
2022-12-29 17:42:49 +0100 <gqplox[m]> I put the code in chat above if that's what you mean? http://sprunge.us/WQwNcf
2022-12-29 17:42:57 +0100eldritch_(~eldritch@2804:7f4:8180:b77d:f95d:ba1e:17c9:1b93) (Quit: Leaving)
2022-12-29 17:43:22 +0100 <Jadesheit[m]> and what function/operation do you need help with?
2022-12-29 17:43:53 +0100 <mauke[m]> that CD dir implementation looks fishy to me
2022-12-29 17:44:21 +0100 <gqplox[m]> i don't know how to represent the (cd '..') operation, I thought i could do it by called createTree on the parent of the current node,, but. the problem is in the cd dir function becauise it will be called from there so it just changes one of the childrne instead of going up like it should
2022-12-29 17:44:21 +0100razetime(~Thunderbi@49.207.228.176) (Remote host closed the connection)
2022-12-29 17:44:36 +0100 <gqplox[m]> but im not quite sure how to go about fixing it
2022-12-29 17:45:02 +0100 <Jadesheit[m]> `cd ..` would just be... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/f7195d1006dd0d1264d2d619629da117fc8e…>)
2022-12-29 17:45:13 +0100 <mauke[m]> I don't know how to fix it for your data structure either
2022-12-29 17:45:17 +0100 <Jadesheit[m]> * `cd ..` would just be, no?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/5d099dcf0eefb06089451bde8b722727c689…>)
2022-12-29 17:45:21 +0100 <mauke[m]> I used a tree zipper
2022-12-29 17:45:29 +0100 <Jadesheit[m]> * `cd ..` would just be, no?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/feaab20fd079d5ab80cdaaba3fd7b4e04e51…>)
2022-12-29 17:45:33 +0100 <Profpatsch> yeah, a zipper is probably the right data structure here
2022-12-29 17:45:40 +0100 <Profpatsch> It does exactly this
2022-12-29 17:45:46 +0100 <Jadesheit[m]> * `cd ..` would just be, no?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/efc054a2bf23517ec2143a228dccc511661b…>)
2022-12-29 17:45:49 +0100 <Profpatsch> navigate through a recursive thing & adjust leaves
2022-12-29 17:46:32 +0100 <gqplox[m]> yep I read about that when i found out about tying the knot, i think ill try that out too . But it's just annoying me that I couldn't make it work for my current tree so i thought id ask here.
2022-12-29 17:48:35 +0100 <Jadesheit[m]> Maybe I'm just really stupid but how is `up = parent` incorrect?
2022-12-29 17:48:39 +0100 <Jadesheit[m]> parent simply gives you the directory one up
2022-12-29 17:49:09 +0100 <mauke[m]> well, since all your Tree nodes are connected (i.e. you can navigate from any node in the tree to any other node via parent/children pointers), to update any of the entries you'd have to recreate your whole structure
2022-12-29 17:49:27 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-29 17:49:39 +0100 <Profpatsch> gqplox[m]: Maybe somtething like data Tree f a = File File | Dir [f a]
2022-12-29 17:49:48 +0100 <gqplox[m]> No I think you're correct it should be my function is just a mess right now. it is correct but the problem is that it is called from a recursive called which basicaly does x.child = up(dir) and it messes it up.
2022-12-29 17:50:18 +0100 <gqplox[m]> recursive call* basically* i can't spell today oops
2022-12-29 17:50:37 +0100 <mauke[m]> e.g. if (via ls/cd commands) your code learns new information "further up" in the directory tree, you can't just rebuild/update the top layer; you have to recreate the whole filesystem
2022-12-29 17:50:44 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-29 17:50:57 +0100 <mauke[m]> because otherwise your nested layers (subdirectories) will keep outdated information in their "parent" fields
2022-12-29 17:51:09 +0100 <gqplox[m]> yeah, that is what i'm struggling with
2022-12-29 17:51:27 +0100 <gqplox[m]> well i guess ill try and do it with the zippers for now and perhaps come back in a bit
2022-12-29 17:51:31 +0100 <gqplox[m]> thank you for the help guys
2022-12-29 17:52:15 +0100 <mauke[m]> cloning a deeply interlinked structure is a pain, and it's even more painful if you have to do it for every single command
2022-12-29 17:52:44 +0100 <mauke[m]> it just doesn't fit Haskell's model (unless you go full imperative and use IORefs or something)
2022-12-29 17:54:05 +0100 <gqplox[m]> i agree and ill try and do it the more idiomatic way now
2022-12-29 17:54:32 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-12-29 17:54:52 +0100 <mauke[m]> that said, I did this one in perl, too, and I didn't need parent pointers there either
2022-12-29 18:00:56 +0100lechner(~lechner@debian/lechner)
2022-12-29 18:05:25 +0100 <lechner> Hi, I have been gone for a while but thought maybe there is a suitable candidate here for this open Ph.D. position in automated theorem proving. The deadline is Jan 6 https://mathstodon.xyz/@wtgowers/109593027450888693
2022-12-29 18:06:34 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-12-29 18:08:34 +0100titibandit(~titibandi@xdsl-89-0-163-79.nc.de) (Remote host closed the connection)
2022-12-29 18:12:09 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-29 18:12:09 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-29 18:12:09 +0100wroathe(~wroathe@user/wroathe)
2022-12-29 18:23:37 +0100Guest40(~Guest40@2001:861:5401:12b0:d149:a31c:3c29:397f) (Quit: Client closed)
2022-12-29 18:27:16 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 18:28:15 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-12-29 18:29:35 +0100Vq(~vq@90-227-195-41-no77.tbcn.telia.com)
2022-12-29 18:30:41 +0100jonas[m](~jnzdmatri@2001:470:69fc:105::2:e878) ()
2022-12-29 18:37:49 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 18:37:57 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 18:41:21 +0100danza(~francesco@151.37.220.178)
2022-12-29 18:42:12 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
2022-12-29 18:43:26 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 18:51:48 +0100hyperbolic-dg(~quassel@i577AA562.versanet.de)
2022-12-29 18:54:52 +0100ddellacosta(~ddellacos@143.244.47.100) (Ping timeout: 272 seconds)
2022-12-29 18:55:10 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912)
2022-12-29 18:56:49 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2022-12-29 18:57:54 +0100Neuromancer(~Neuromanc@user/neuromancer)
2022-12-29 19:01:46 +0100econo(uid147250@user/econo)
2022-12-29 19:02:18 +0100danza(~francesco@151.37.220.178) (Quit: Leaving)
2022-12-29 19:03:56 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-12-29 19:08:33 +0100 <eldritchcookie[4> is there a lawful monad instance for data Pair a = Pair a a ?
2022-12-29 19:09:11 +0100 <glguy> Yes
2022-12-29 19:09:41 +0100 <eldritchcookie[4> really? what is it i tried to write one but was unable to
2022-12-29 19:10:00 +0100 <Axman6> I didn't think there was
2022-12-29 19:10:02 +0100 <glguy> Do you want to try again or see the answer?
2022-12-29 19:10:13 +0100 <eldritchcookie[4> see the anwser
2022-12-29 19:10:19 +0100 <glguy> https://hackage.haskell.org/package/linear-1.22/docs/src/Linear.V2.html#line-196
2022-12-29 19:10:30 +0100trev(~trev@user/trev) (Remote host closed the connection)
2022-12-29 19:11:27 +0100 <eldritchcookie[4> that is amazing would never think about that one
2022-12-29 19:12:07 +0100 <eldritchcookie[4> does it work if instead of pair we have PairT m a = PairT a (m a) ?
2022-12-29 19:14:02 +0100random-jellyfish(~random-je@user/random-jellyfish)
2022-12-29 19:14:55 +0100 <glguy> Yeah, without writing it out I believe it's the same pattern
2022-12-29 19:15:10 +0100stef204(~stef204@user/stef204)
2022-12-29 19:15:16 +0100tose(~tose@cst-prg-38-106.cust.vodafone.cz)
2022-12-29 19:15:42 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) (Remote host closed the connection)
2022-12-29 19:16:11 +0100 <glguy> The second case in the bind implementation would use f=<<b
2022-12-29 19:16:39 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 19:16:40 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2914:f025:7ef3:a77d)
2022-12-29 19:20:02 +0100lechner(~lechner@debian/lechner) (Using Circe, the loveliest of all IRC clients)
2022-12-29 19:22:08 +0100 <eldritchcookie[4> i just don't know how to write lift
2022-12-29 19:23:15 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 260 seconds)
2022-12-29 19:23:42 +0100 <glguy> You can't
2022-12-29 19:23:54 +0100 <eldritchcookie[4> thought so
2022-12-29 19:23:58 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 19:25:00 +0100Xeroine(~Xeroine@user/xeroine)
2022-12-29 19:25:09 +0100 <glguy> If you could you could show that combined with the Monad instance for Proxy you could define something with type something :: a
2022-12-29 19:25:46 +0100 <eldritchcookie[4> what if i have data PairTFake m a = PairTFake (Maybe a) (m a) instead?
2022-12-29 19:27:23 +0100 <glguy> No
2022-12-29 19:28:05 +0100 <glguy> MonadTrans requires that. lift . return = return
2022-12-29 19:29:04 +0100Lycurgus(~juan@user/Lycurgus)
2022-12-29 19:29:05 +0100 <glguy> return must put Just in the first argument. lift would have to put Nothing
2022-12-29 19:35:14 +0100acidjnk(~acidjnk@p200300d6e7137a52305f770ee2a81388.dip0.t-ipconnect.de)
2022-12-29 19:36:39 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-12-29 19:38:27 +0100mmhat(~mmh@p200300f1c721be80ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-12-29 19:38:33 +0100 <eldritchcookie[4> that is so weird considering that i can define mapPairT
2022-12-29 19:38:49 +0100mmhat(~mmh@p200300f1c721be69ee086bfffe095315.dip0.t-ipconnect.de)
2022-12-29 19:39:05 +0100 <eldritchcookie[4> wait can i?
2022-12-29 19:39:29 +0100 <eldritchcookie[4> no i can't
2022-12-29 19:42:45 +0100 <ggVGc> ^ the best kind of monologue
2022-12-29 19:44:44 +0100 <EvanR> the idea that join :: m (m a) -> m a is analogous to "flatten" is helpful in types like Pair a
2022-12-29 19:46:05 +0100 <EvanR> another way to look at Pair a is as Bool -> a
2022-12-29 19:47:33 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2022-12-29 19:47:43 +0100 <EvanR> (which has a monad instance)
2022-12-29 19:52:37 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 256 seconds)
2022-12-29 19:52:57 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 19:52:59 +0100tose(~tose@cst-prg-38-106.cust.vodafone.cz) (Ping timeout: 248 seconds)
2022-12-29 19:55:02 +0100 <monochrom> In fact Pair has exactly one way to be a monad.
2022-12-29 19:55:20 +0100 <monochrom> And yeah, for existence, what EvanR said.
2022-12-29 19:55:37 +0100 <monochrom> I still like to tell you how I learned it the hard way. :)
2022-12-29 19:56:27 +0100 <ggVGc> hm, how is Pair a the same as Bool -> a?
2022-12-29 19:56:37 +0100 <monochrom> One day I thought "Pair is the composition of two adjoint functors I know of, let me use the formula to calculate what join does."
2022-12-29 19:56:54 +0100 <monochrom> Oh that's a question I put on my exam >:)
2022-12-29 19:57:01 +0100 <EvanR> the same as is quite a powerful assertion xD, how about "one way to look at it is as a" xD
2022-12-29 19:57:17 +0100 <monochrom> So, 4 pages of calculations later I got it, and I happily told #haskell.
2022-12-29 19:57:35 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-12-29 19:57:43 +0100 <EvanR> OWTLAIIAA
2022-12-29 19:57:43 +0100 <monochrom> Then one of you pointed out "that's just (->)Bool, use the Reader monad". So, derp. :)
2022-12-29 19:58:16 +0100 <monochrom> Well the technical jargon is "isomorphic".
2022-12-29 19:58:44 +0100 <monochrom> But in the good spirit of relative subjective "sameness", let's say "isomorphic" is the same as "same as" >:)
2022-12-29 19:58:54 +0100 <EvanR> yeah isomorphic gets abused to all hell
2022-12-29 19:59:24 +0100 <monochrom> Or if you want to be more pedantic, "isomorphic" is isomorphic to "same as" up to unique isomorphism...
2022-12-29 19:59:45 +0100 <EvanR> now we're abusing up to unique isomorphism
2022-12-29 19:59:52 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-29 19:59:59 +0100 <monochrom> abusing up to unique abuse
2022-12-29 20:00:10 +0100 <ncf> :t bool -- ggVGc
2022-12-29 20:00:11 +0100 <lambdabot> a -> a -> Bool -> a
2022-12-29 20:00:17 +0100 <EvanR> enough red tape and no one has the resources to question it xD
2022-12-29 20:01:50 +0100 <monochrom> There is an easy bijection between Bool->a and Pair a. Furthermore this bijection preserves the monad operations. It is a monad isomorphism.
2022-12-29 20:01:51 +0100 <glguy> There isn't a unique isomorphism between pair and bool-> since there are two choices
2022-12-29 20:02:07 +0100 <monochrom> Sure.
2022-12-29 20:02:53 +0100 <monochrom> But there is only one way to make (->)Bool a monad, and only one way to make Pair a monad, and either bijection preserves that.
2022-12-29 20:03:09 +0100 <monochrom> "This is fine."
2022-12-29 20:03:16 +0100 <glguy> I agree, just joining in
2022-12-29 20:03:34 +0100 <EvanR> one way to look at Pair a is as Bool -> a haha
2022-12-29 20:03:54 +0100 <EvanR> (but not even close to all the ways)
2022-12-29 20:04:05 +0100 <monochrom> Two bijections going in. Only one monad coming out. >:)
2022-12-29 20:04:28 +0100 <EvanR> Pair (Pair a) can be considered as a 2x2 matrix
2022-12-29 20:04:52 +0100 <EvanR> which can be seen as a linear function
2022-12-29 20:05:10 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 272 seconds)
2022-12-29 20:05:51 +0100 <monochrom> So one thing you can do is to start with join (Pair (Pair a b) (Pair c d)) = Pair x y, where x is one of a,b,c,d, y is one of a,b,c,d. (By parametricity / free theorems.)
2022-12-29 20:06:30 +0100 <monochrom> Then the monad laws narrow down the choice space. You will find that you are left with only one choice.
2022-12-29 20:06:46 +0100 <monochrom> This settles both existence and uniqueness.
2022-12-29 20:07:07 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 20:07:51 +0100 <monochrom> BTW on my exams I also like to give a wrong formula for >>= and ask my students "use a counterexample to show that it breaks a monad law".
2022-12-29 20:08:11 +0100 <EvanR> which course is this btw
2022-12-29 20:08:14 +0100 <monochrom> Sometimes I do it with (->)Bool, sometimes Pair.
2022-12-29 20:08:21 +0100 <EvanR> please say computer science 101
2022-12-29 20:08:25 +0100 <monochrom> A "principles of programming languages" course.
2022-12-29 20:09:37 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2022-12-29 20:10:53 +0100mei_(~mei@user/mei) (Quit: mei_)
2022-12-29 20:11:32 +0100 <monochrom> The next level is "data Stream a = Cons a (Stream a)" is also a monad in a unique way, along the same line.
2022-12-29 20:12:17 +0100 <Jadesheit[m]> What are examples for monad instances where return /= pure
2022-12-29 20:12:24 +0100 <monochrom> None.
2022-12-29 20:13:32 +0100Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-12-29 20:14:16 +0100 <Jadesheit[m]> assumed so, what were the historical reasons for why return existed?
2022-12-29 20:14:46 +0100 <monochrom> The Monad class predated the Applicative class (even the idea) by some 10 years or more.
2022-12-29 20:14:50 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-12-29 20:15:02 +0100 <Jadesheit[m]> ah yeah, ok makes sense
2022-12-29 20:16:45 +0100 <EvanR> Stream (Stream a) is an infinite matrix xD
2022-12-29 20:16:45 +0100Xeroine(~Xeroine@user/xeroine)
2022-12-29 20:16:55 +0100tose(~tose@cst-prg-38-106.cust.vodafone.cz)
2022-12-29 20:16:59 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-12-29 20:17:00 +0100 <EvanR> physicists love those
2022-12-29 20:18:47 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db)
2022-12-29 20:19:19 +0100cheater(~Username@user/cheater)
2022-12-29 20:19:41 +0100 <mizlan> in this comment https://www.reddit.com/r/haskell/comments/nfyvy/instance_monad_ziplist_where/c38x9q9/ could someone explain the part talking about Streams
2022-12-29 20:19:51 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2022-12-29 20:20:00 +0100 <mizlan> i take it to mean that if one had a theoretical ZipStream it would be a monad
2022-12-29 20:20:05 +0100 <mizlan> but not ZipList...
2022-12-29 20:20:47 +0100 <monochrom> Understood. (->)Bool : Pair :: (->)Natural : Stream
2022-12-29 20:21:13 +0100 <monochrom> Pair is an array of length 2. Stream is an array of length infinite.
2022-12-29 20:21:55 +0100fserucas(~fserucas@a85-138-107-42.cpe.netcabo.pt) (Ping timeout: 252 seconds)
2022-12-29 20:22:44 +0100 <monochrom> or perhaps s/infinite/omega/ or s/infinite/aleph-0/
2022-12-29 20:23:02 +0100CodeInTheShade(~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Ping timeout: 246 seconds)
2022-12-29 20:24:53 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 252 seconds)
2022-12-29 20:25:54 +0100 <monochrom> Or rather, Pair is an array with index set {0,1} or Bool, Stream is an array with index set Natural. Then, observe that "array with index set Foo" may as well be mathematically "(->)Foo".
2022-12-29 20:26:43 +0100 <mizlan> i can see that
2022-12-29 20:36:00 +0100beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-29 20:37:31 +0100beefbambi(~beefbambi@183.82.24.237)
2022-12-29 20:37:50 +0100pavonia(~user@user/siracusa)
2022-12-29 20:43:26 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2022-12-29 20:45:56 +0100cheater(~Username@user/cheater)
2022-12-29 20:46:23 +0100jwiegley(~jwiegley@2600:1700:cf00:db0:750e:ca3e:1343:8732)
2022-12-29 20:49:50 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-12-29 20:50:11 +0100tose(~tose@cst-prg-38-106.cust.vodafone.cz) (Ping timeout: 255 seconds)
2022-12-29 20:51:11 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-12-29 20:51:31 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2022-12-29 20:51:57 +0100unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36)
2022-12-29 20:52:40 +0100cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2022-12-29 20:52:48 +0100unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Client Quit)
2022-12-29 20:53:21 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2914:f025:7ef3:a77d) (Remote host closed the connection)
2022-12-29 20:58:08 +0100cheater(~Username@user/cheater)
2022-12-29 20:59:19 +0100trev(~trev@user/trev)
2022-12-29 21:00:33 +0100cfricke(~cfricke@user/cfricke) (Ping timeout: 268 seconds)
2022-12-29 21:02:17 +0100thongpv(~thongpv87@2402:9d80:3d4:9b78:8ba5:ce77:f12f:2cae) (Read error: Connection reset by peer)
2022-12-29 21:03:23 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2022-12-29 21:03:44 +0100 <jean-paul[m]> anyone know of a megaparsec parser for iso8601 datetimes?
2022-12-29 21:05:15 +0100cheater(~Username@user/cheater)
2022-12-29 21:05:41 +0100 <monochrom> I don't know of one. But the time package (comes with GHC) has a Data.Time.Format.ISO8601 that uses Maybe or ReadP.
2022-12-29 21:06:32 +0100 <monochrom> Err, just ReadP.
2022-12-29 21:08:33 +0100 <jean-paul[m]> Getting the result in Maybe is annoying since it means I have to manually glue together decent error reporting
2022-12-29 21:09:22 +0100 <jean-paul[m]> I guess maybe I can do something with ... try ... that's not too much work?
2022-12-29 21:09:48 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 268 seconds)
2022-12-29 21:10:17 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2022-12-29 21:13:54 +0100beefbambi(~beefbambi@183.82.24.237) (Read error: Connection reset by peer)
2022-12-29 21:14:00 +0100 <monochrom> On second thought, it's going to be too much work :)
2022-12-29 21:18:41 +0100 <sm> Maybe sounds better for decent error reporting, but there's also https://hackage.haskell.org/package/time-1.13/docs/Data-Time-Format.html#v:parseTimeOrError ?
2022-12-29 21:20:58 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:d293:7b78:ce13:3f64)
2022-12-29 21:21:17 +0100 <jean-paul[m]> Huh, how does parseTimeOrError represent the error?
2022-12-29 21:21:33 +0100ddellacosta(~ddellacos@89.46.62.213)
2022-12-29 21:22:02 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 21:22:52 +0100 <geekosaur> looks like it throws (`error`)
2022-12-29 21:23:12 +0100 <geekosaur> `fails` looks like copypasta from parseTimeMultipleM
2022-12-29 21:26:43 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-12-29 21:27:17 +0100beefbambi(~beefbambi@183.82.24.237)
2022-12-29 21:28:55 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 268 seconds)
2022-12-29 21:29:06 +0100cheater(~Username@user/cheater)
2022-12-29 21:30:05 +0100catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Ping timeout: 260 seconds)
2022-12-29 21:30:33 +0100cheater_(~Username@user/cheater)
2022-12-29 21:33:00 +0100`2jt(~jtomas@84.red-88-17-186.dynamicip.rima-tde.net)
2022-12-29 21:33:02 +0100 <sm> ah, that makes more sense
2022-12-29 21:33:55 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2022-12-29 21:33:58 +0100cheater_cheater
2022-12-29 21:39:42 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 21:42:42 +0100cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2022-12-29 21:43:56 +0100 <stefan-_> grml, tried to solve aoc day 16 with viterbi, it's quite close to the example solution (1649 vs. 1651), but it does not to find the optimum
2022-12-29 21:44:16 +0100 <Rembane> That sounds frustrating.
2022-12-29 21:44:31 +0100paulpaul1076(~textual@95-29-5-111.broadband.corbina.ru)
2022-12-29 21:45:08 +0100 <monochrom> Is grml a new markup language for marking up grumbles? :)
2022-12-29 21:45:23 +0100cheater(~Username@user/cheater)
2022-12-29 21:46:22 +0100 <sm> excellent, seems low boilerplate
2022-12-29 21:46:45 +0100 <stefan-_> Rembane, yes a bit, also because I run out of possible approaches ;)
2022-12-29 21:47:49 +0100 <Rembane> stefan-_: Ach! I ran out of possible approaches way before trying a viterbi :)
2022-12-29 21:49:05 +0100 <stefan-_> the number of possible schedules is in the order of 10^12, so trying all possible permutations is not feasible (that was my first approach)
2022-12-29 21:50:09 +0100cheater_(~Username@user/cheater)
2022-12-29 21:50:21 +0100pie__(~pie_bnc@user/pie/x-2818909)
2022-12-29 21:50:21 +0100pie__(~pie_bnc@user/pie/x-2818909) (Client Quit)
2022-12-29 21:52:12 +0100cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2022-12-29 21:52:15 +0100cheater_cheater
2022-12-29 21:53:51 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2914:f025:7ef3:a77d)
2022-12-29 21:54:54 +0100 <darkling> Can you do some kind of local search (say, simulated annealing) from the close solution?
2022-12-29 21:59:29 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:2914:f025:7ef3:a77d) (Ping timeout: 255 seconds)
2022-12-29 22:02:24 +0100 <stefan-_> darkling, hm, that could be possible, although I would prefer a method which finds the optimum guaranteed
2022-12-29 22:03:34 +0100 <darkling> At that point, I'd reach, very reluctantly, for the MILP. :)
2022-12-29 22:04:50 +0100hueso(~root@user/hueso)
2022-12-29 22:05:50 +0100 <darkling> Or take a closer look at the problem and see if there's more structure to it that can be exploited for something like a branch and bound -- are there cases you can prune early in the enumeration solution?
2022-12-29 22:06:08 +0100 <darkling> (I was never very good at branch and bound -- local search was more my thing)
2022-12-29 22:07:42 +0100cheater_(~Username@user/cheater)
2022-12-29 22:08:35 +0100jinsun(~jinsun@user/jinsun)
2022-12-29 22:10:34 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2022-12-29 22:11:12 +0100cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2022-12-29 22:11:19 +0100cheater_cheater
2022-12-29 22:13:47 +0100 <mauke[m]> there's some general talk about AoC day 16 starting at https://ircbrowse.tomsmeding.com/browse/lchaskell?id=826025#trid826025
2022-12-29 22:14:19 +0100 <mauke[m]> including glguy's excellent solution
2022-12-29 22:14:46 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:d293:7b78:ce13:3f64) (Quit: WeeChat 2.8)
2022-12-29 22:15:38 +0100beefbambi(~beefbambi@183.82.24.237) (Read error: Connection reset by peer)
2022-12-29 22:16:12 +0100beefbambi(~beefbambi@183.82.24.237)
2022-12-29 22:17:28 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 22:18:18 +0100 <darkling> Aha. That looks something like the pruning/brand-and-bound idea.
2022-12-29 22:18:59 +0100 <stefan-_> mauke[m], thanks
2022-12-29 22:21:07 +0100 <mauke[m]> and my somewhat clumsy but fast enough solution for part 1: https://paste.tomsmeding.com/FL2j6gCB
2022-12-29 22:21:53 +0100 <mauke[m]> oh, that's the version I updated after the previous discussion. I was playing around with Map vs. IntMap and Set vs. IntSet
2022-12-29 22:24:30 +0100beefbambi(~beefbambi@183.82.24.237) (Read error: Connection reset by peer)
2022-12-29 22:25:08 +0100beefbambi(~beefbambi@183.82.24.237)
2022-12-29 22:27:19 +0100glguyuses monochrom's mention of time providing ReadP parsers to revise his aoc 2018-04 https://github.com/glguy/advent/commit/8f81894be20647502f5b7e3d18e9d3e16172b2cd
2022-12-29 22:27:20 +0100trev(~trev@user/trev) (Remote host closed the connection)
2022-12-29 22:28:37 +0100 <glguy> Next project is to think about how to make the format string quasiquoter a separate, more generally useful package
2022-12-29 22:28:52 +0100 <glguy> someone posted a feature request about that
2022-12-29 22:29:00 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 22:30:26 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 22:36:57 +0100mikoto-chan(~mikoto-ch@164.5.249.78)
2022-12-29 22:37:10 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 252 seconds)
2022-12-29 22:38:23 +0100n0den1te(~aaaa@2401:4900:1cc8:ae75:8ca5:24cf:a3c6:3784) (Quit: Quitting...)
2022-12-29 22:38:53 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-12-29 22:39:13 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 256 seconds)
2022-12-29 22:40:18 +0100cheater_(~Username@user/cheater)
2022-12-29 22:43:55 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2022-12-29 22:43:56 +0100cheater_cheater
2022-12-29 22:45:30 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-12-29 22:46:37 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-29 22:46:37 +0100Guest9971(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-12-29 22:46:44 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 260 seconds)
2022-12-29 22:48:08 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-29 22:49:29 +0100stef204(~stef204@user/stef204) (Quit: WeeChat 3.7.1)
2022-12-29 22:52:35 +0100morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Ping timeout: 265 seconds)
2022-12-29 22:56:48 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 272 seconds)
2022-12-29 22:56:59 +0100ft(~ft@i59F5448E.versanet.de)
2022-12-29 22:57:55 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2022-12-29 23:00:01 +0100hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0123.hinet-ip6.hinet.net) (Remote host closed the connection)
2022-12-29 23:00:11 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 248 seconds)
2022-12-29 23:00:17 +0100hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0123.hinet-ip6.hinet.net)
2022-12-29 23:03:27 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
2022-12-29 23:06:06 +0100Xeroine(~Xeroine@user/xeroine)
2022-12-29 23:06:07 +0100beefbambi(~beefbambi@183.82.24.237) (Read error: Connection reset by peer)
2022-12-29 23:07:37 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 23:09:22 +0100beefbambi(~beefbambi@183.82.24.237)
2022-12-29 23:11:52 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 252 seconds)
2022-12-29 23:12:57 +0100cheater_(~Username@user/cheater)
2022-12-29 23:13:22 +0100cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2022-12-29 23:13:31 +0100cheater_cheater
2022-12-29 23:13:55 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 252 seconds)
2022-12-29 23:14:20 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 265 seconds)
2022-12-29 23:23:39 +0100Xeroine(~Xeroine@user/xeroine)
2022-12-29 23:25:32 +0100freeside(~mengwong@103.252.202.159)
2022-12-29 23:29:06 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 272 seconds)
2022-12-29 23:32:57 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
2022-12-29 23:32:58 +0100jwiegley(~jwiegley@2600:1700:cf00:db0:750e:ca3e:1343:8732) (Quit: ZNC - http://znc.in)
2022-12-29 23:36:42 +0100Xeroine(~Xeroine@user/xeroine)
2022-12-29 23:38:14 +0100catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
2022-12-29 23:40:16 +0100hueso(~root@user/hueso) (Ping timeout: 268 seconds)
2022-12-29 23:42:31 +0100acidjnk(~acidjnk@p200300d6e7137a52305f770ee2a81388.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-12-29 23:44:07 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 260 seconds)
2022-12-29 23:44:33 +0100mizlan(~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
2022-12-29 23:47:48 +0100acidjnk(~acidjnk@p200300d6e7137a52305f770ee2a81388.dip0.t-ipconnect.de)
2022-12-29 23:48:47 +0100mstruebing(~mstruebin@ip4d14fa11.dynamic.kabel-deutschland.de)
2022-12-29 23:48:55 +0100hueso(~root@user/hueso)
2022-12-29 23:50:18 +0100Xeroine(~Xeroine@user/xeroine)
2022-12-29 23:57:09 +0100caryhartline(~caryhartl@2600:1700:2d0:8d30:486e:abe:5ebb:c6a0)
2022-12-29 23:59:42 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)