2022/06/25

2022-06-25 00:00:20 +0000dsrt^(~dsrt@50.237.44.186) (Ping timeout: 246 seconds)
2022-06-25 00:00:37 +0000alp(~alp@user/alp) (Ping timeout: 268 seconds)
2022-06-25 00:00:51 +0000 <cdsmith> Hmm... I have a type for which I really want to use <|>, but empty cannot exist. Why, oh why, did Alternative have to put both in the same class?
2022-06-25 00:01:18 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Ping timeout: 272 seconds)
2022-06-25 00:01:22 +0000 <jackdk> cdsmith: https://hackage.haskell.org/package/semigroupoids . Look for `class Alt` and `(<!>)` specifically
2022-06-25 00:02:01 +0000Tuplanolla(~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.)
2022-06-25 00:02:16 +0000 <cdsmith> Ah, okay. Thanks!
2022-06-25 00:04:30 +0000moet(~moet@mobile-166-177-248-140.mycingular.net) (Ping timeout: 240 seconds)
2022-06-25 00:04:51 +0000moet(~moet@mobile-166-170-39-82.mycingular.net)
2022-06-25 00:13:45 +0000even4void(even4void@came.here.for-some.fun)
2022-06-25 00:14:53 +0000 <cdsmith> Here's a weirder one. I want something analogous to Functor, but fmap must be given a bijection rather than an arbitrary function.
2022-06-25 00:16:36 +0000 <cdsmith> Basically, a valid use of Apply at https://github.com/shapr/trynocular/blob/46b988d73425d9e390407e5d8688f6778492769f/src/Trynocular.h… really ought to have a bijection, and ought to include both directions of the correspondence.
2022-06-25 00:18:03 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-06-25 00:20:33 +0000 <jackdk> cdsmith: `class Invariant` from https://hackage.haskell.org/package/invariant ?
2022-06-25 00:20:58 +0000 <cdsmith> Oooh, you're good!
2022-06-25 00:22:01 +0000 <cdsmith> Though... doing this will break the Alt instance. Hmm. Yeah, use of something like <!> would require proving that the two alternatives yield non-overlapping values...
2022-06-25 00:22:10 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-06-25 00:23:07 +0000xacktm(xacktm@user/xacktm)
2022-06-25 00:23:15 +0000 <cdsmith> Okay, I need to think about how to keep some kind of ergonomics here.
2022-06-25 00:31:09 +0000AndChat-624225(~trace@user/trace)
2022-06-25 00:32:14 +0000alexhandy2(~trace@user/trace) (Read error: Connection reset by peer)
2022-06-25 00:33:10 +0000alexhandy(~trace@user/trace)
2022-06-25 00:35:03 +0000 <zzz> question: why can't we drop the f in fmap? we could leave it as an alias for backwards compatibility but other than that i don't see what the problem is
2022-06-25 00:35:46 +0000AndChat-624225(~trace@user/trace) (Ping timeout: 268 seconds)
2022-06-25 00:36:06 +0000 <cdsmith63> Making the change would break existing code that relies on `map` to monomorphize an expression and thus resolve ambiguous types, I guess.
2022-06-25 00:36:21 +0000 <zzz> ah.
2022-06-25 00:36:27 +0000 <zzz> fair
2022-06-25 00:37:20 +0000 <cdsmith63> And there's a fair cohort of Haskellers (esp. in education) that believe that concrete types are more usable.  Overloading is, in general, the enemy of comprehensible error messages.
2022-06-25 00:37:41 +0000 <zzz> althougj if you're relying on map to monomorphize you deserve to get broken
2022-06-25 00:38:24 +0000 <geekosaur> there are already major complaints about the amount of churn in the Haskell ecosystem
2022-06-25 00:38:37 +0000 <geekosaur> nobody wants to deal with the churn from that one
2022-06-25 00:38:58 +0000 <zzz> bah
2022-06-25 00:39:07 +0000 <zzz> avoid success at all costs
2022-06-25 00:39:39 +0000bilegeek(~bilegeek@2600:1008:b00c:f975:8f30:87a2:4ca8:5acd)
2022-06-25 00:40:00 +0000 <darkling> I've also read a comment that newcomers trying to use "map" would rather read an error message about maps than something obscure and technical about functors.
2022-06-25 00:40:31 +0000 <darkling> (I'm a newcomer -- no direct experience of that particular dichotomy myself)
2022-06-25 00:40:47 +0000 <geekosaur> you'll probably hit it with Foldable at some point
2022-06-25 00:40:49 +0000 <cdsmith> zzz: This is actually a great example of what "avoid success at all costs" meant in the past... and the fact that Haskell no longer follows that principle.
2022-06-25 00:41:45 +0000 <geekosaur> and Foldable's more perverse effects
2022-06-25 00:41:50 +0000 <geekosaur> > length (1,2,3)
2022-06-25 00:41:53 +0000 <lambdabot> error:
2022-06-25 00:41:53 +0000 <lambdabot> • No instance for (Foldable ((,,) Integer Integer))
2022-06-25 00:41:53 +0000 <lambdabot> arising from a use of ‘length’
2022-06-25 00:41:57 +0000 <cdsmith> "avoid success" suggests that, indeed, we should change things to match what our best current understanding of the ideal choice. But Haskell is already in a state where that's too painful to do.
2022-06-25 00:42:01 +0000 <geekosaur> > length (1,2)
2022-06-25 00:42:03 +0000 <lambdabot> 1
2022-06-25 00:43:23 +0000jargon(~jargon@184.101.186.108)
2022-06-25 00:44:12 +0000 <zzz> who are these newcommers anyway? when i first started i remember not understanding a single word the compiler threw at me and somehow i think that having map specialized didn't make thinks easier
2022-06-25 00:44:23 +0000 <cdsmith> Yeah, the Foldable ((,) a) instance is a perfect example of overloading being dangerous. It exists because it occasionally makes sense to think of ((,) a) as meaning "(oh, and also an a on the side but it doesn't really count)". But in the majority of cases, it doesn't actually mean that. The Foldable instance is the right one for the "also on the side" meaning, but shouldn't exist in the majority case.
2022-06-25 00:45:08 +0000 <Bulby[m]> geekosaur: why
2022-06-25 00:45:09 +0000 <geekosaur> zzz, there's that and then there's deliberately making it even more comprehensible
2022-06-25 00:45:29 +0000 <geekosaur> Bulby[m], because someone thought a Foldable instance for (,) made sense
2022-06-25 00:45:34 +0000 <Bulby[m]> cdsmith: bifoldable is more useful to me for tuples
2022-06-25 00:45:39 +0000 <geekosaur> I'm not convinced it ever does
2022-06-25 00:45:41 +0000 <Bulby[m]> oh this is irc
2022-06-25 00:45:42 +0000 <Bulby[m]> sorry
2022-06-25 00:46:01 +0000 <Bulby[m]> sorry for the matrix to irc jank
2022-06-25 00:46:20 +0000 <cdsmith> Bulby: Why? Because (1,2) sometimes (rarely) means "2 (and also a 1 on the side)" The 2 is the value. The "(1,)" is just context. So if you ask how many values there are, the answer is that there is 1.
2022-06-25 00:46:30 +0000 <geekosaur> it's just a type error trap the compiler *ought* to catch but now won't
2022-06-25 00:46:54 +0000 <Bulby[m]> well I guess a tuple is the product pair type
2022-06-25 00:47:09 +0000 <Bulby[m]> (pretend that makes sense)
2022-06-25 00:47:20 +0000 <zzz> i never agreed with the Functor instance of tuples but whatever
2022-06-25 00:47:38 +0000 <darkling> I pretend that most things on this channel make sense. I don't think it helps much. :)
2022-06-25 00:48:00 +0000 <EvanR> I like the Functor for tuples
2022-06-25 00:48:05 +0000 <darkling> I pretend good. ;)
2022-06-25 00:48:08 +0000 <Bulby[m]> the "these" lib describes what i want to say
2022-06-25 00:48:12 +0000 <EvanR> when it doesn't suck
2022-06-25 00:48:53 +0000 <Bulby[m]> an "inner join" type
2022-06-25 00:49:59 +0000 <zzz> EvanR: when do you find it useful?
2022-06-25 00:50:47 +0000 <jackdk> it enables the Traversable instance, which I often find useful
2022-06-25 00:51:28 +0000 <cdsmith> The Functor instance for ((,) a) is alright, because type changes propagate through fmap. The problem with the Foldable instance is primarily that members like `length` swallow type changes, breaking the general property that you can change a type and code that relied on that type fails to build.
2022-06-25 00:51:46 +0000 <EvanR> when I can't be arsed to make a wrapper type that tacks on a monomorphic decorator
2022-06-25 00:52:21 +0000 <cdsmith> i.e., if I used to have `f :: a -> [b]`, and I change it to `f :: a -> ([b], c)`, then old code that looked like `length (f x)` still builds, but returns the wrong result.
2022-06-25 00:52:48 +0000 <Bulby[m]> isn't Prelude length list specific
2022-06-25 00:52:59 +0000 <EvanR> :t length
2022-06-25 00:53:01 +0000 <lambdabot> Foldable t => t a -> Int
2022-06-25 00:53:02 +0000 <geekosaur> :t Prelude.length
2022-06-25 00:53:03 +0000 <EvanR> NO
2022-06-25 00:53:04 +0000 <lambdabot> Foldable t => t a -> Int
2022-06-25 00:53:11 +0000 <Bulby[m]> 😱
2022-06-25 00:53:26 +0000 <EvanR> the folding bridges proposal
2022-06-25 00:54:29 +0000moet(~moet@mobile-166-170-39-82.mycingular.net) (Quit: leaving)
2022-06-25 00:54:32 +0000stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-06-25 00:55:01 +0000 <Bulby[m]> part of the burning bridges proposal
2022-06-25 00:56:22 +0000 <ski> it would be nice if one could reexport an identifier, with a restricted type
2022-06-25 00:56:34 +0000 <Bulby[m]> seems niche
2022-06-25 00:56:35 +0000 <darkling> Did that come from Königsberg?
2022-06-25 00:57:46 +0000 <cdsmith> Fun story: some of the original seven bridges of Königsberg were, in fact, burned during WWII.
2022-06-25 00:57:58 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Ping timeout: 268 seconds)
2022-06-25 00:57:58 +0000even4void(even4void@came.here.for-some.fun) (Ping timeout: 268 seconds)
2022-06-25 00:58:00 +0000 <Bulby[m]> 😭
2022-06-25 00:58:03 +0000 <Bulby[m]> no more puzzles
2022-06-25 00:58:35 +0000xacktm(xacktm@user/xacktm) (Ping timeout: 268 seconds)
2022-06-25 00:58:44 +0000 <darkling> cdsmith: And they've built an eighth since, defeating the original solution... :)
2022-06-25 00:59:08 +0000 <darkling> Not to mention renaming the town.
2022-06-25 00:59:21 +0000 <Bulby[m]> original proof not solution right
2022-06-25 00:59:34 +0000 <darkling> Yeah.
2022-06-25 01:01:04 +0000 <darkling> I used to be a mathematician. I'm _allowed_ to be vague. ;)
2022-06-25 01:01:12 +0000 <darkling> (I'm better now)
2022-06-25 01:02:08 +0000 <Bulby[m]> i'm glad you're better
2022-06-25 01:04:30 +0000 <hpc> better at being vague?
2022-06-25 01:04:48 +0000 <darkling> It takes practice.
2022-06-25 01:07:37 +0000 <darkling> (As someone once said in another IRC channel: "everything darkling says is a joke; we just haven't got most of them yet." Do tell me to stop if it's annoying)
2022-06-25 01:14:00 +0000even4void(even4void@came.here.for-some.fun)
2022-06-25 01:18:48 +0000xacktm(xacktm@user/xacktm)
2022-06-25 01:22:08 +0000lainon(~lainon@2601:7c0:c500:4d20:c809:c5a6:6263:efd5)
2022-06-25 01:25:28 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-06-25 01:29:30 +0000quarkyalice_(~quarkyali@user/quarkyalice/x-8092822)
2022-06-25 01:29:51 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2022-06-25 01:29:59 +0000quarkyalice(~alice@user/quarkyalice)
2022-06-25 01:32:12 +0000quarkyalice_(~quarkyali@user/quarkyalice/x-8092822) (Client Quit)
2022-06-25 01:32:22 +0000quarkyalice(~alice@user/quarkyalice) (Client Quit)
2022-06-25 01:32:40 +0000quarkyalice(~alice@172.79.70.10)
2022-06-25 01:32:40 +0000quarkyalice(~alice@172.79.70.10) (Changing host)
2022-06-25 01:32:40 +0000quarkyalice(~alice@user/quarkyalice)
2022-06-25 01:35:55 +0000z0k(~z0k@206.84.143.59)
2022-06-25 01:42:51 +0000lainon(~lainon@2601:7c0:c500:4d20:c809:c5a6:6263:efd5) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-06-25 01:44:16 +0000 <monochrom> I thought it was "I used to be a mathematician. Now I'm a comedian."
2022-06-25 01:47:30 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
2022-06-25 01:47:51 +0000 <monochrom> At the crossroad where one road goes to heaven, and the other road goes to hell, there are three guardians. One of them tells you truths only. Another tells you lies only. And the third one tells you jokes only...
2022-06-25 01:49:35 +0000quarkyalice(~alice@user/quarkyalice) (Remote host closed the connection)
2022-06-25 01:49:45 +0000Lumia(~Lumia@c-73-219-104-153.hsd1.ma.comcast.net)
2022-06-25 01:59:10 +0000frost(~frost@user/frost)
2022-06-25 02:00:07 +0000finsternis(~X@23.226.237.192)
2022-06-25 02:07:59 +0000nunggu(~q@user/nunggu)
2022-06-25 02:10:49 +0000unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 244 seconds)
2022-06-25 02:17:55 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-06-25 02:17:55 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-06-25 02:17:55 +0000finn_elijaFinnElija
2022-06-25 02:21:44 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-06-25 02:22:04 +0000 <zzz> when i was a kid i told my parents i wanted to be a comedian when i grew up, they laughed im my face. well, noone's lauvhing now!
2022-06-25 02:22:46 +0000 <zzz> *g
2022-06-25 02:23:05 +0000nunggu(~q@user/nunggu) (Ping timeout: 268 seconds)
2022-06-25 02:26:04 +0000nunggu(~q@user/nunggu)
2022-06-25 02:27:20 +0000 <monochrom> haha
2022-06-25 02:27:25 +0000nate4(~nate@98.45.169.16)
2022-06-25 02:30:52 +0000nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Quit: quit)
2022-06-25 02:31:00 +0000nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2022-06-25 02:34:41 +0000mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 246 seconds)
2022-06-25 02:38:18 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
2022-06-25 02:42:01 +0000lainon(~lainon@2601:7c0:c500:4d20:c809:c5a6:6263:efd5)
2022-06-25 02:43:08 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 255 seconds)
2022-06-25 02:46:36 +0000td_(~td@94.134.91.109) (Ping timeout: 272 seconds)
2022-06-25 02:48:10 +0000td_(~td@muedsl-82-207-238-209.citykom.de)
2022-06-25 02:51:41 +0000nate4(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-06-25 02:54:02 +0000nunggu(~q@user/nunggu) (Remote host closed the connection)
2022-06-25 02:54:49 +0000nunggu(~q@user/nunggu)
2022-06-25 02:56:43 +0000lainon(~lainon@2601:7c0:c500:4d20:c809:c5a6:6263:efd5) (Quit: Textual IRC Client: www.textualapp.com)
2022-06-25 03:00:00 +0000Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-06-25 03:00:01 +0000haasn(~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2022-06-25 03:00:12 +0000Vajb(~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06)
2022-06-25 03:00:56 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds)
2022-06-25 03:01:24 +0000haasn(~nand@haasn.dev)
2022-06-25 03:01:24 +0000Vajb(~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) (Read error: Connection reset by peer)
2022-06-25 03:05:08 +0000russruss(~russruss@my.russellmcc.com) (Ping timeout: 255 seconds)
2022-06-25 03:06:55 +0000russruss(~russruss@my.russellmcc.com)
2022-06-25 03:10:58 +0000dsrt^(~dsrt@50.237.44.186)
2022-06-25 03:15:30 +0000img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-06-25 03:18:17 +0000Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving)
2022-06-25 03:20:54 +0000img(~img@user/img)
2022-06-25 03:23:55 +0000causal(~user@50.35.83.177)
2022-06-25 03:24:22 +0000mathr(~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net)
2022-06-25 03:24:27 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
2022-06-25 03:26:05 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-25 03:26:35 +0000machinedgod(~machinedg@66.244.246.252) (Ping timeout: 268 seconds)
2022-06-25 03:28:05 +0000 <mathr> hi, I have a simple program that exhausts my RAM and I can't figure out why:
2022-06-25 03:28:06 +0000 <mathr> import Control.Monad (replicateM)
2022-06-25 03:28:06 +0000 <mathr> shapes bias p = [ s | m <- [0 .. p], s <- replicateM (fromInteger m + 2) [1 .. p], p == sum (zipWith (*) (map (bias +) s) (tail s)) ]
2022-06-25 03:28:09 +0000 <mathr> main = mapM_ (print . length . shapes 0) [1..10]
2022-06-25 03:30:50 +0000 <mathr> I know the run-time asymptotics will be terrible (O((p+2)^p) or something) but I thought laziness would mean each s in shapes could be collected and it'd run in O((p+2)*p) space
2022-06-25 03:42:05 +0000P1RATEZ(piratez@user/p1ratez)
2022-06-25 03:48:52 +0000nate4(~nate@98.45.169.16)
2022-06-25 03:54:20 +0000nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-06-25 04:02:56 +0000shiraeeshi(~shiraeesh@46.34.206.55)
2022-06-25 04:04:25 +0000quarkyalice(~quarkyali@user/quarkyalice)
2022-06-25 04:05:27 +0000quarkyalice(~quarkyali@user/quarkyalice) (Client Quit)
2022-06-25 04:13:33 +0000nunggu(~q@user/nunggu) (Remote host closed the connection)
2022-06-25 04:14:10 +0000 <dsal> That looks super expensive to me because it's going to make a bunch of thunks.
2022-06-25 04:14:30 +0000 <dsal> Depending on your compiler version at least. Historically, `sum` is ridiculously expensive when used like that.
2022-06-25 04:18:13 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
2022-06-25 04:18:50 +0000nunggu(~q@user/nunggu)
2022-06-25 04:22:24 +0000 <mathr> dsal: I figured out a version that doesn't space leak all the (:) from replicateM https://paste.tomsmeding.com/Oih8TQAv
2022-06-25 04:24:32 +0000 <mathr> now runs in constant space (less than 50kB) instead of exploding and getting OOM-killed on a desktop with 32GB RAM
2022-06-25 04:26:21 +0000Lumia(~Lumia@c-73-219-104-153.hsd1.ma.comcast.net) (Quit: ,-)
2022-06-25 04:26:25 +0000nate4(~nate@98.45.169.16)
2022-06-25 04:27:03 +0000 <mathr> maybe the effects run in the wrong order compared to Control.Monad.replicateM, i only tested it with m == []
2022-06-25 04:31:35 +0000nate4(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-06-25 04:41:34 +0000 <dsal> !undo do { f <- fs; pure (f []) }
2022-06-25 04:41:39 +0000 <dsal> @undo do { f <- fs; pure (f []) }
2022-06-25 04:41:39 +0000 <lambdabot> fs >>= \ f -> pure (f [])
2022-06-25 04:43:39 +0000Infinite(~Infinite@49.39.119.176)
2022-06-25 04:44:03 +0000 <dsal> I don't quite get what replicateM is doing for you there.
2022-06-25 04:45:22 +0000 <mathr> > replicateM 3 "abc" -- Cartesian product
2022-06-25 04:45:24 +0000 <lambdabot> ["aaa","aab","aac","aba","abb","abc","aca","acb","acc","baa","bab","bac","bb...
2022-06-25 04:45:33 +0000 <dsal> Oh, yes, of course.
2022-06-25 04:46:41 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-06-25 04:46:45 +0000 <mathr> Control.Monad.replicateM retains the whole output list -> OOM killed when large, while the version I pasted using difference lists runs in small constant space
2022-06-25 04:46:56 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-06-25 04:47:46 +0000nate4(~nate@98.45.169.16)
2022-06-25 04:48:23 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-06-25 04:50:24 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-25 04:52:14 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-06-25 04:52:16 +0000 <[Leary]> You probably don't need to keep the difflist accumulator in m.
2022-06-25 04:58:28 +0000nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-06-25 05:28:59 +0000shiraeeshi(~shiraeesh@46.34.206.55) (Ping timeout: 246 seconds)
2022-06-25 05:33:38 +0000coot(~coot@213.134.190.95)
2022-06-25 05:36:06 +0000leeb(~leeb@KD106154144157.au-net.ne.jp) (Ping timeout: 264 seconds)
2022-06-25 05:37:56 +0000leeb(~leeb@KD106155002017.au-net.ne.jp)
2022-06-25 05:42:45 +0000perdent(~perdent@101.175.156.43)
2022-06-25 05:43:44 +0000Infinite(~Infinite@49.39.119.176) (Quit: Ping timeout (120 seconds))
2022-06-25 05:44:34 +0000Midjak(~Midjak@82.66.147.146)
2022-06-25 05:46:33 +0000rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca)
2022-06-25 05:53:50 +0000dsrt^(~dsrt@50.237.44.186) (Ping timeout: 246 seconds)
2022-06-25 05:57:08 +0000chomwitt(~chomwitt@2a02:587:dc0d:e600:e74a:b005:c722:73f7)
2022-06-25 06:00:52 +0000dsrt^(~dsrt@50.237.44.186)
2022-06-25 06:03:06 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-06-25 06:04:00 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-25 06:09:13 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
2022-06-25 06:11:14 +0000chomwitt(~chomwitt@2a02:587:dc0d:e600:e74a:b005:c722:73f7) (Ping timeout: 268 seconds)
2022-06-25 06:12:25 +0000PiDelport(uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-25 06:13:16 +0000jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-06-25 06:13:17 +0000echoreply(~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
2022-06-25 06:14:01 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-06-25 06:14:38 +0000echoreply(~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d)
2022-06-25 06:16:46 +0000tabemann(~tabemann@2600:1700:7990:24e0:defe:9c15:44ea:93a5) (Remote host closed the connection)
2022-06-25 06:17:04 +0000tabemann(~tabemann@2600:1700:7990:24e0:5b3:4d0f:e683:f449)
2022-06-25 06:22:08 +0000perdent(~perdent@101.175.156.43) (Quit: Client closed)
2022-06-25 06:24:24 +0000shiraeeshi(~shiraeesh@46.34.206.55)
2022-06-25 06:27:47 +0000rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Ping timeout: 246 seconds)
2022-06-25 06:28:07 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-25 06:35:10 +0000perdent(~perdent@101.175.156.43)
2022-06-25 06:36:50 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-06-25 06:48:43 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
2022-06-25 06:50:22 +0000random-jellyfish(~random-je@user/random-jellyfish)
2022-06-25 06:53:50 +0000mattil(~mattil@helsinki.portalify.com)
2022-06-25 06:55:50 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
2022-06-25 06:58:02 +0000vglfr(~vglfr@coupling.penchant.volia.net) (Ping timeout: 272 seconds)
2022-06-25 06:59:32 +0000mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2022-06-25 07:00:32 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 255 seconds)
2022-06-25 07:09:46 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
2022-06-25 07:10:00 +0000vglfr(~vglfr@coupling.penchant.volia.net)
2022-06-25 07:14:45 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Ping timeout: 268 seconds)
2022-06-25 07:18:39 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-25 07:20:18 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-25 07:20:27 +0000nunggu(~q@user/nunggu) (Quit: nunggu)
2022-06-25 07:23:02 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2022-06-25 07:24:08 +0000mattil(~mattil@helsinki.portalify.com) (Ping timeout: 246 seconds)
2022-06-25 07:33:33 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-25 07:33:59 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-25 07:44:01 +0000phma(~phma@host-67-44-209-11.hnremote.net) (Read error: Connection reset by peer)
2022-06-25 07:44:59 +0000phma(phma@2001:5b0:211c:4d08:1069:cd39:8f5a:796f)
2022-06-25 07:46:15 +0000z0k(~z0k@206.84.143.59) (Ping timeout: 256 seconds)
2022-06-25 07:50:44 +0000mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 246 seconds)
2022-06-25 07:52:43 +0000random-jellyfish(~random-je@user/random-jellyfish) (Quit: Client closed)
2022-06-25 07:53:07 +0000zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
2022-06-25 07:55:32 +0000mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2022-06-25 08:01:02 +0000fweht(uid404746@id-404746.lymington.irccloud.com)
2022-06-25 08:03:35 +0000bilegeek(~bilegeek@2600:1008:b00c:f975:8f30:87a2:4ca8:5acd) (Quit: Leaving)
2022-06-25 08:04:46 +0000P1RATEZ(piratez@user/p1ratez) (Remote host closed the connection)
2022-06-25 08:10:08 +0000quarkyalice(~quarkyali@user/quarkyalice)
2022-06-25 08:12:13 +0000quarkyalice(~quarkyali@user/quarkyalice) (Client Quit)
2022-06-25 08:12:47 +0000_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-06-25 08:16:22 +0000BusConscious(~martin@ip5f5bdf01.dynamic.kabel-deutschland.de)
2022-06-25 08:16:25 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-25 08:17:52 +0000Tuplanolla(~Tuplanoll@91-159-69-97.elisa-laajakaista.fi)
2022-06-25 08:20:02 +0000chomwitt(~chomwitt@2a02:587:dc0d:e600:59fa:73d0:5de3:cb11)
2022-06-25 08:20:28 +0000cosimone(~user@93-44-186-171.ip98.fastwebnet.it) (Read error: Connection reset by peer)
2022-06-25 08:24:30 +0000acidjnk(~acidjnk@dynamic-046-114-173-051.46.114.pool.telefonica.de)
2022-06-25 08:29:27 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-06-25 08:30:17 +0000ulvarref`(~user@188.124.56.153) (Ping timeout: 248 seconds)
2022-06-25 08:46:18 +0000coot(~coot@213.134.190.95) (Quit: coot)
2022-06-25 08:48:09 +0000gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
2022-06-25 08:49:28 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-06-25 08:54:03 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-06-25 08:57:32 +0000dsrt^(~dsrt@50.237.44.186) (Ping timeout: 255 seconds)
2022-06-25 09:00:06 +0000daveakre[m](~daveakrem@2001:470:69fc:105::1:88b7) (Quit: You have been kicked for being idle)
2022-06-25 09:11:55 +0000shiraeeshi(~shiraeesh@46.34.206.55) (Ping timeout: 268 seconds)
2022-06-25 09:12:26 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-06-25 09:13:09 +0000acidjnk(~acidjnk@dynamic-046-114-173-051.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2022-06-25 09:14:35 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-06-25 09:17:24 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-06-25 09:17:25 +0000cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81)
2022-06-25 09:18:04 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-06-25 09:19:06 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
2022-06-25 09:21:27 +0000m1dnight(~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 256 seconds)
2022-06-25 09:23:21 +0000m1dnight(~christoph@78-22-9-5.access.telenet.be)
2022-06-25 09:28:04 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-06-25 09:28:40 +0000acidjnk(~acidjnk@dynamic-046-114-173-051.46.114.pool.telefonica.de)
2022-06-25 09:29:02 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-25 09:31:02 +0000alexhandy(~trace@user/trace) (Read error: Connection reset by peer)
2022-06-25 09:31:08 +0000AndChat-624225(~trace@user/trace)
2022-06-25 09:31:39 +0000__monty__(~toonn@user/toonn)
2022-06-25 09:39:00 +0000zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
2022-06-25 09:42:21 +0000misterfish(~misterfis@87.215.131.98)
2022-06-25 09:48:10 +0000coot(~coot@213.134.190.95)
2022-06-25 09:48:24 +0000acidjnk(~acidjnk@dynamic-046-114-173-051.46.114.pool.telefonica.de) (Ping timeout: 272 seconds)
2022-06-25 09:51:50 +0000gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2022-06-25 10:11:28 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-06-25 10:14:30 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
2022-06-25 10:18:47 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-06-25 10:23:21 +0000moonsheep(~user@user/moonsheep)
2022-06-25 10:30:25 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-06-25 10:30:33 +0000moonsheep(~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-06-25 10:30:49 +0000nate4(~nate@98.45.169.16)
2022-06-25 10:30:57 +0000AndChat-624225(~trace@user/trace) (Read error: Connection reset by peer)
2022-06-25 10:31:08 +0000alexhandy(~trace@user/trace)
2022-06-25 10:33:13 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-25 10:34:54 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 264 seconds)
2022-06-25 10:40:20 +0000nate4(~nate@98.45.169.16) (Ping timeout: 272 seconds)
2022-06-25 10:46:26 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2022-06-25 10:47:39 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
2022-06-25 10:53:03 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Read error: Connection reset by peer)
2022-06-25 10:53:48 +0000coot(~coot@213.134.190.95) (Quit: coot)
2022-06-25 10:54:10 +0000shiraeeshi(~shiraeesh@46.34.206.55)
2022-06-25 10:56:56 +0000alp(~alp@user/alp)
2022-06-25 10:57:48 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-25 11:06:00 +0000kjak(~kjak@pool-108-31-68-111.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2022-06-25 11:12:05 +0000zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-06-25 11:15:14 +0000kitzman(~kitzman@user/dekenevs) (Quit: C-x C-c)
2022-06-25 11:19:16 +0000kitzman(~kitzman@user/dekenevs)
2022-06-25 11:20:15 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2022-06-25 11:25:38 +0000eod|fserucas_(~eod|fseru@193.65.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds)
2022-06-25 11:25:38 +0000eod|fserucas(~eod|fseru@193.65.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds)
2022-06-25 11:26:22 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
2022-06-25 11:28:16 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-06-25 11:38:41 +0000Henson(~kvirc@107-179-133-201.cpe.teksavvy.com)
2022-06-25 11:41:53 +0000 <Henson> does anybody here have much experience with Conduit? I'm trying to figure out how best to make a conduit that converts items into lists of items, like "ConduitT a [a] m r", and back again? The reason for this is I'm trying to deal with await's returning of "Maybe a" in an easy way.
2022-06-25 11:43:20 +0000 <Henson> I tried something like "runMaybeT $ forever $ do item <- MaybeT await; output <- doSomething input; lift $ yield output" but that seems to have a memory leak. The better paradigm seems to be to use Conduit's "awaitForever" function, but that takes in only single items, and I need to accumulate a list of items to work with.
2022-06-25 11:44:06 +0000 <Henson> according to Conduit's documentation they are encouraging people to use the Conduit.Combinators instead of the Conduit.List module, and I can't seem to figure out how to make chunksOfExactlyCE work in my situation.
2022-06-25 11:44:50 +0000 <Henson> I can't figure out how to make chunksOfExactlyCE work at all.
2022-06-25 11:49:49 +0000z0k(~z0k@206.84.143.59)
2022-06-25 11:50:50 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-06-25 11:53:07 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-25 11:58:47 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-06-25 11:59:19 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
2022-06-25 12:02:15 +0000phma(phma@2001:5b0:211c:4d08:1069:cd39:8f5a:796f) (Read error: Connection reset by peer)
2022-06-25 12:02:50 +0000 <shiraeeshi> Henson: mapMC?
2022-06-25 12:02:53 +0000phma(~phma@host-67-44-208-150.hnremote.net)
2022-06-25 12:03:10 +0000jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2022-06-25 12:03:27 +0000jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-06-25 12:05:13 +0000coot(~coot@213.134.190.95)
2022-06-25 12:06:23 +0000liz__(~liz@host86-159-158-175.range86-159.btcentralplus.com)
2022-06-25 12:06:30 +0000 <Henson> shiraeeshi: that's close, but only works on a single input item. I want to essentially call "await" many times to accumulate the input items into a list, then work with the list. chunksOfExactlyCE, upon reading the source, seems to do what I want, but I can't figure out how to get it to work.
2022-06-25 12:06:53 +0000 <Henson> shiraeeshi: with the runMaybeT trick it's very easy to get this to work, but that approach has a memory leak for some reason, so I'm trying to find an alternative.
2022-06-25 12:10:13 +0000unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-06-25 12:10:43 +0000 <shiraeeshi> Henson: are you trying to consume chunks of n items wrapped in Just while ignoring Nothing values?
2022-06-25 12:12:52 +0000 <Henson> shiraeeshi: not necessarily wrapped in Just. If I call "await" many times, I need to deal with the possibility of the conduit ending, and one of them returning a Nothing. That was very easy to handle with runMaybeT. But I'm trying to find an alternative. awaitForever works very well for single items, but I need to work with a list of items. I also can't use mapC on the list of items...
2022-06-25 12:13:59 +0000 <Henson> because I need to be able to detect when the conduit closes, and do something different when the list is done. Both "runMaybeT $ forever $ blah" and "awaitForever" return when the conduit is closed (when one of the awaits returns Nothing) and allows me to react to the conduit closure.
2022-06-25 12:14:42 +0000 <Henson> my code used to be written with the Pipe library, but pipes have no way of telling when the data pipeline has terminated, and individual components of the pipeline cannot detect and react to the closure.
2022-06-25 12:15:10 +0000 <Henson> conduit can, and I'm trying to find a graceful way to work with every await return a "Maybe a"
2022-06-25 12:17:40 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2022-06-25 12:20:09 +0000 <maerwald[m]> Henson: in streamly you have a finalizer for a stream when it throws an exception or terminates normally. It's basically a GC hook.
2022-06-25 12:23:13 +0000jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-06-25 12:23:23 +0000liz__(~liz@host86-159-158-175.range86-159.btcentralplus.com) (Ping timeout: 246 seconds)
2022-06-25 12:25:42 +0000 <Henson> maerwald: wow, streamly looks pretty cool, I'll keep it in mind for the future. It looks like it's very good at doing parallel and concurrent data processing with streams of data. However I would like to avoid rewriting my code again, so want to try to figure out how to do this is Conduit.
2022-06-25 12:26:27 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-06-25 12:27:40 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-06-25 12:30:20 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-25 12:30:30 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 268 seconds)
2022-06-25 12:30:59 +0000zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
2022-06-25 12:31:30 +0000 <maerwald[m]> But I'm not sure I understand your use case... do you want the function running on the lsst element to somehow now it's the last element?
2022-06-25 12:31:50 +0000 <maerwald[m]> Then you'd need a way to look ahead
2022-06-25 12:31:50 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2022-06-25 12:33:11 +0000 <shiraeeshi> yeah, why not just sequence running a conduit with an action than you want to run after the conduit?
2022-06-25 12:33:30 +0000 <maerwald[m]> Henson: depending on your code it might not be hard to rewrite
2022-06-25 12:34:47 +0000jakalx(~jakalx@base.jakalx.net)
2022-06-25 12:35:03 +0000 <Henson> maerwald: I have a function that takes in a TChan. This TChan allows me to pipe data from one thread to another. It's also able to signal to the other thread that the TChan has closed and no more data will be coming (to allow the other thread to terminate). I want to make a Conduit sink that awaits its input items and then puts them into the TChan for the other thread to process, but this...
2022-06-25 12:35:15 +0000 <shiraeeshi> I mean, doing something like runConduit () >> doSomething
2022-06-25 12:35:34 +0000 <Henson> Conduit needs to be able to tell when the stream of data has ended, so it can send the "TChan closed" value on the TChan so the other thread knows it can terminate.
2022-06-25 12:36:04 +0000 <Henson> shiraeeshi: sequencing the running of the conduit with the other action won't work, because the other action is part of one of the members of the conduit pipeline.
2022-06-25 12:36:31 +0000 <Henson> shiraeeshi: the other action has to be performed as part of running the conduit, not after the conduit has terminated.
2022-06-25 12:36:57 +0000 <shiraeeshi> Henson: have you heard about stm-conduit?
2022-06-25 12:37:08 +0000 <Henson> shiraeeshi: I have now!
2022-06-25 12:37:13 +0000Hensonlooks
2022-06-25 12:39:05 +0000 <maerwald[m]> Henson: that sounds to me like the GC finalizer could close the TChan
2022-06-25 12:39:08 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-06-25 12:39:39 +0000 <Henson> maerwald: how could I get the GC finalizer to do that?
2022-06-25 12:39:55 +0000 <maerwald[m]> Henson: I mean in the case of streamly
2022-06-25 12:40:03 +0000 <Henson> maerwald: ah
2022-06-25 12:40:15 +0000jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-06-25 12:41:26 +0000mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-06-25 12:41:59 +0000 <maerwald[m]> https://hackage.haskell.org/package/streamly-0.8.2/docs/Streamly-Prelude.html#v:finally
2022-06-25 12:42:32 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-06-25 12:42:51 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
2022-06-25 12:42:54 +0000 <maerwald[m]> And this behaves well under combining streams etc
2022-06-25 12:49:02 +0000 <shiraeeshi> sounds like Data.Conduit.TMChan from stm-conduit covers Henson's use case
2022-06-25 12:49:03 +0000 <shiraeeshi> https://hackage.haskell.org/package/stm-conduit-4.0.1/docs/Data-Conduit-TMChan.html
2022-06-25 12:49:16 +0000jakalx(~jakalx@base.jakalx.net)
2022-06-25 12:49:32 +0000 <shiraeeshi> it even says:
2022-06-25 12:49:33 +0000 <shiraeeshi> We register closing function explicitly, because starting with version 1.3.0 conduits library no longer maintain resources, so this is the only way to safely close channel in case of exceptions.
2022-06-25 12:51:07 +0000Vajb(~Vajb@85-76-45-197-nat.elisa-mobile.fi)
2022-06-25 12:51:33 +0000 <Henson> shiraeeshi, maerwald: thank you for your help
2022-06-25 12:53:55 +0000unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 268 seconds)
2022-06-25 12:54:50 +0000 <shiraeeshi> Henson: that's one way of doing what you want, it seems. You do forkIO . runResourceT (registerTerminationHandler >> runConduit)
2022-06-25 12:55:23 +0000 <shiraeeshi> and registerTerminationHandler invokes register from resourcet
2022-06-25 12:58:39 +0000dsrt^(~dsrt@50.237.44.186)
2022-06-25 13:01:30 +0000nate4(~nate@98.45.169.16)
2022-06-25 13:08:07 +0000nate4(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2022-06-25 13:10:08 +0000obabo(~obabo@20014C4C1C41D6000000000000001000.catv.pool.telekom.hu)
2022-06-25 13:12:25 +0000leeb(~leeb@KD106155002017.au-net.ne.jp) (Ping timeout: 268 seconds)
2022-06-25 13:17:21 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-06-25 13:19:12 +0000mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 268 seconds)
2022-06-25 13:20:01 +0000pleo(~pleo@user/pleo)
2022-06-25 13:21:44 +0000frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-06-25 13:22:33 +0000dsrt^(~dsrt@50.237.44.186) (Ping timeout: 248 seconds)
2022-06-25 13:29:39 +0000zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!)
2022-06-25 13:32:09 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-06-25 13:32:21 +0000yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
2022-06-25 13:32:57 +0000Lumia(~Lumia@c-73-219-104-153.hsd1.ma.comcast.net)
2022-06-25 13:32:59 +0000yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-25 13:34:25 +0000dsrt^(~dsrt@50.237.44.186)
2022-06-25 13:35:29 +0000dsrt^(~dsrt@50.237.44.186) (Remote host closed the connection)
2022-06-25 13:35:47 +0000jargon(~jargon@184.101.186.108) (Remote host closed the connection)
2022-06-25 13:35:59 +0000xacktm(xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-06-25 13:36:00 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
2022-06-25 13:37:29 +0000yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 248 seconds)
2022-06-25 13:38:24 +0000even4void(even4void@came.here.for-some.fun) (Quit: fBNC - https://bnc4free.com)
2022-06-25 13:40:23 +0000leeb(~leeb@KD106155002017.au-net.ne.jp)
2022-06-25 13:42:34 +0000z0k(~z0k@206.84.143.59) (Quit: WeeChat 3.5)
2022-06-25 13:43:22 +0000alp(~alp@user/alp) (Ping timeout: 272 seconds)
2022-06-25 13:45:28 +0000Everything(~Everythin@37.115.210.35)
2022-06-25 13:50:31 +0000cyanide4dinner(~cyanide4d@182.70.136.113)
2022-06-25 13:54:50 +0000xacktm(xacktm@user/xacktm)
2022-06-25 13:59:53 +0000xacktm(xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-06-25 14:00:07 +0000Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) (Quit: ZNC - http://znc.in)
2022-06-25 14:02:13 +0000Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
2022-06-25 14:06:41 +0000Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-06-25 14:10:02 +0000cyanide4dinner(~cyanide4d@182.70.136.113) (Remote host closed the connection)
2022-06-25 14:13:10 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-06-25 14:14:20 +0000Lumia(~Lumia@c-73-219-104-153.hsd1.ma.comcast.net) (Ping timeout: 255 seconds)
2022-06-25 14:17:36 +0000zaquest(~notzaques@5.130.79.72)
2022-06-25 14:20:13 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-25 14:24:12 +0000 <cdsmith> I'm looking for a word here. Given a value (say, `(4, Left 5)`), what do you call the semilattice of partial approximations to the value? (In this case, that semilattice would look like https://paste.tomsmeding.com/zNWlF1UC)
2022-06-25 14:27:06 +0000 <cdsmith> Oops, I guess it is in fact a lattice, not just a semilattice
2022-06-25 14:28:51 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-06-25 14:37:14 +0000Lumia(~Lumia@c-73-219-104-153.hsd1.ma.comcast.net)
2022-06-25 14:39:05 +0000shiraeeshi(~shiraeesh@46.34.206.55) (Ping timeout: 255 seconds)
2022-06-25 14:48:07 +0000Lumia(~Lumia@c-73-219-104-153.hsd1.ma.comcast.net) (Quit: ,-)
2022-06-25 14:48:37 +0000pleo(~pleo@user/pleo) (Ping timeout: 268 seconds)
2022-06-25 14:50:18 +0000pleo(~pleo@user/pleo)
2022-06-25 14:58:12 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-06-25 14:59:58 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-06-25 15:02:51 +0000machinedgod(~machinedg@66.244.246.252)
2022-06-25 15:13:23 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
2022-06-25 15:15:05 +0000cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2022-06-25 15:18:07 +0000coot(~coot@213.134.190.95) (Quit: coot)
2022-06-25 15:23:22 +0000cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Remote host closed the connection)
2022-06-25 15:25:58 +0000nate4(~nate@98.45.169.16)
2022-06-25 15:28:54 +0000coot(~coot@213.134.190.95)
2022-06-25 15:30:49 +0000cosimone(~user@93-44-186-171.ip98.fastwebnet.it)
2022-06-25 15:33:12 +0000Kaiepi(~Kaiepi@156.34.47.253) (Remote host closed the connection)
2022-06-25 15:33:21 +0000Kaiepi(~Kaiepi@156.34.47.253)
2022-06-25 15:33:49 +0000cheater(~Username@user/cheater)
2022-06-25 15:36:09 +0000coot(~coot@213.134.190.95) (Quit: coot)
2022-06-25 15:48:08 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2022-06-25 15:48:46 +0000chomwitt(~chomwitt@2a02:587:dc0d:e600:59fa:73d0:5de3:cb11) (Ping timeout: 272 seconds)
2022-06-25 15:49:01 +0000cyanide4dinner(~cyanide4d@182.70.136.113)
2022-06-25 15:49:35 +0000econo(uid147250@user/econo)
2022-06-25 15:52:03 +0000 <Bulby[m]> https://sschakraborty.github.io/benchmark/fannkuchredux.html
2022-06-25 15:52:17 +0000 <Bulby[m]> 57x
2022-06-25 15:53:05 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-25 15:55:48 +0000 <[exa]> Bulby[m]: well given it's an initial bad implementation, that's not surprising
2022-06-25 15:55:54 +0000 <[exa]> the good one is 1.8x
2022-06-25 15:56:01 +0000 <Bulby[m]> WHAT
2022-06-25 15:56:23 +0000 <[exa]> what?
2022-06-25 15:56:34 +0000 <Bulby[m]> sorry you know I suck at reading
2022-06-25 15:56:35 +0000 <Bulby[m]> i can't believe how blazing fast haskell is
2022-06-25 15:57:00 +0000 <Bulby[m]> in comparison to C
2022-06-25 15:57:03 +0000 <Bulby[m]> it's fast
2022-06-25 15:58:59 +0000misterfish(~misterfis@87.215.131.98) (Ping timeout: 246 seconds)
2022-06-25 16:00:07 +0000schuelermine[m](~schuelerm@user/schuelermine) (Quit: You have been kicked for being idle)
2022-06-25 16:00:12 +0000jinsun__(~jinsun@user/jinsun)
2022-06-25 16:00:12 +0000jinsunGuest2528
2022-06-25 16:00:12 +0000Guest2528(~jinsun@user/jinsun) (Killed (molybdenum.libera.chat (Nickname regained by services)))
2022-06-25 16:00:12 +0000jinsun__jinsun
2022-06-25 16:00:37 +0000shiraeeshi(~shiraeesh@46.34.206.55)
2022-06-25 16:02:47 +0000cyanide4dinner(~cyanide4d@182.70.136.113) (Remote host closed the connection)
2022-06-25 16:04:36 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-25 16:06:19 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
2022-06-25 16:12:59 +0000shiraeeshi(~shiraeesh@46.34.206.55) (Ping timeout: 246 seconds)
2022-06-25 16:22:18 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-06-25 16:23:48 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-06-25 16:25:26 +0000fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-06-25 16:26:27 +0000mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2022-06-25 16:27:01 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-25 16:27:06 +0000notzmv(~zmv@user/notzmv) (Ping timeout: 264 seconds)
2022-06-25 16:28:34 +0000jakalx(~jakalx@base.jakalx.net)
2022-06-25 16:29:09 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
2022-06-25 16:34:16 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-06-25 16:35:57 +0000chomwitt(~chomwitt@2a02:587:dc0d:e600:15f0:abfd:c02c:258d)
2022-06-25 16:36:44 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-06-25 16:37:12 +0000cyanide4dinner(~cyanide4d@182.70.136.113)
2022-06-25 16:37:32 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
2022-06-25 16:39:01 +0000cyanide4dinner(~cyanide4d@182.70.136.113) (Client Quit)
2022-06-25 16:39:15 +0000cyanide4dinner(~cyanide4d@182.70.136.113)
2022-06-25 16:45:11 +0000nate4(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-06-25 16:47:38 +0000pleo(~pleo@user/pleo) (Quit: quit)
2022-06-25 16:51:18 +0000notzmv(~zmv@user/notzmv)
2022-06-25 16:51:24 +0000perdent(~perdent@101.175.156.43) (Quit: Client closed)
2022-06-25 16:54:22 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-25 16:56:43 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-25 17:11:41 +0000notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2022-06-25 17:15:07 +0000coot(~coot@213.134.190.95)
2022-06-25 17:18:15 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
2022-06-25 17:20:57 +0000adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
2022-06-25 17:22:47 +0000adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-06-25 17:24:33 +0000king_gs(~Thunderbi@2806:103e:29:a4ff:9938:ec1d:a54a:6688)
2022-06-25 17:24:43 +0000 <EvanR> Bulby[m], as long as you don't hit any potholes like space leaks, unwanted laziness,
2022-06-25 17:28:20 +0000kspalaiologos(~kspalaiol@user/kspalaiologos)
2022-06-25 17:31:09 +0000coot(~coot@213.134.190.95) (Quit: coot)
2022-06-25 17:31:23 +0000chronon_(~chronon@user/chronon) (Quit: leaving)
2022-06-25 17:32:35 +0000nate4(~nate@98.45.169.16)
2022-06-25 17:32:47 +0000rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca)
2022-06-25 17:37:35 +0000nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-06-25 17:39:12 +0000notzmv(~zmv@user/notzmv)
2022-06-25 17:43:55 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
2022-06-25 17:45:16 +0000 <Bulby[m]> it's witchcraft. that un GC-d langs are comparable to haskell
2022-06-25 17:46:22 +0000coot(~coot@213.134.190.95)
2022-06-25 17:50:20 +0000nate4(~nate@98.45.169.16)
2022-06-25 17:59:38 +0000king_gs(~Thunderbi@2806:103e:29:a4ff:9938:ec1d:a54a:6688) (Quit: king_gs)
2022-06-25 17:59:47 +0000nate4(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-06-25 18:01:06 +0000coot(~coot@213.134.190.95) (Quit: coot)
2022-06-25 18:03:04 +0000chronon(~chronon@user/chronon)
2022-06-25 18:05:41 +0000cyanide4dinner(~cyanide4d@182.70.136.113) (Ping timeout: 246 seconds)
2022-06-25 18:10:35 +0000chomwitt(~chomwitt@2a02:587:dc0d:e600:15f0:abfd:c02c:258d) (Ping timeout: 255 seconds)
2022-06-25 18:11:44 +0000rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Remote host closed the connection)
2022-06-25 18:13:42 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-06-25 18:14:21 +0000cyanide4dinner(~cyanide4d@106.201.249.151)
2022-06-25 18:15:23 +0000rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca)
2022-06-25 18:18:17 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-06-25 18:20:57 +0000shiraeeshi(~shiraeesh@46.34.206.55)
2022-06-25 18:29:43 +0000chronon(~chronon@user/chronon) (Quit: leaving)
2022-06-25 18:31:52 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-25 18:34:58 +0000motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 240 seconds)
2022-06-25 18:35:20 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-25 18:37:59 +0000pleo(~pleo@user/pleo)
2022-06-25 18:44:37 +0000cyanide3dinner(~cyanide4d@106.201.249.151)
2022-06-25 18:44:49 +0000alexhandy2(~trace@user/trace)
2022-06-25 18:46:44 +0000kspalaiologos(~kspalaiol@user/kspalaiologos) (Quit: Leaving)
2022-06-25 18:47:46 +0000motherfsck(~motherfsc@user/motherfsck)
2022-06-25 18:47:56 +0000alexhandy(~trace@user/trace) (Ping timeout: 255 seconds)
2022-06-25 18:48:22 +0000Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-06-25 18:52:17 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-06-25 18:53:19 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-06-25 18:55:02 +0000even4void(even4void@came.here.for-some.fun)
2022-06-25 18:57:09 +0000opow242(~igloo@83.sub-174-205-101.myvzw.com)
2022-06-25 18:57:14 +0000opow242(~igloo@83.sub-174-205-101.myvzw.com) (Max SendQ exceeded)
2022-06-25 18:59:43 +0000xacktm(xacktm@user/xacktm)
2022-06-25 19:03:47 +0000machinedgod(~machinedg@66.244.246.252) (Ping timeout: 246 seconds)
2022-06-25 19:05:44 +0000nate4(~nate@98.45.169.16)
2022-06-25 19:11:19 +0000nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-06-25 19:12:59 +0000coot(~coot@213.134.190.95)
2022-06-25 19:18:00 +0000ulvarrefr(~user@188.124.56.153)
2022-06-25 19:20:11 +0000eod|fserucas_(~eod|fseru@193.65.114.89.rev.vodafone.pt)
2022-06-25 19:20:11 +0000eod|fserucas(~eod|fseru@193.65.114.89.rev.vodafone.pt)
2022-06-25 19:28:44 +0000cyanide4dinner(~cyanide4d@106.201.249.151) (Remote host closed the connection)
2022-06-25 19:28:44 +0000cyanide3dinner(~cyanide4d@106.201.249.151) (Remote host closed the connection)
2022-06-25 19:30:11 +0000coot(~coot@213.134.190.95) (Quit: coot)
2022-06-25 19:35:11 +0000pleo(~pleo@user/pleo) (Quit: quit)
2022-06-25 19:35:30 +0000zeenk(~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3)
2022-06-25 19:36:34 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-06-25 19:46:35 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-25 19:47:38 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
2022-06-25 19:48:14 +0000shiraeeshi(~shiraeesh@46.34.206.55) (Ping timeout: 246 seconds)
2022-06-25 19:54:45 +0000shiraeeshi(~shiraeesh@46.34.206.55)
2022-06-25 19:55:30 +0000Sgeo(~Sgeo@user/sgeo)
2022-06-25 19:55:37 +0000shapr(~user@2600:4040:2d31:7100:8a04:a12a:c6c2:2309) (Ping timeout: 248 seconds)
2022-06-25 19:56:46 +0000michalz(~michalz@185.246.204.119)
2022-06-25 19:59:27 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-25 20:00:09 +0000chomwitt(~chomwitt@2a02:587:dc0d:e600:8c30:8a72:c29d:62b2)
2022-06-25 20:02:20 +0000pavonia(~user@user/siracusa)
2022-06-25 20:04:17 +0000Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-06-25 20:04:17 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
2022-06-25 20:04:29 +0000acidjnk(~acidjnk@dynamic-046-114-172-226.46.114.pool.telefonica.de)
2022-06-25 20:05:36 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-06-25 20:07:05 +0000 <monochrom> Oh haha, I have an OOM in runghc that doesn't kill the runghc, but rather Chrome instead.
2022-06-25 20:07:43 +0000Kaipei(~Kaiepi@156.34.47.253)
2022-06-25 20:07:55 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2022-06-25 20:08:17 +0000 <monochrom> "avoid killing haskell at all costs"
2022-06-25 20:09:44 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
2022-06-25 20:10:38 +0000Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 246 seconds)
2022-06-25 20:12:06 +0000 <[exa]> chrome deserved tho
2022-06-25 20:18:50 +0000Kaipei(~Kaiepi@156.34.47.253) (Ping timeout: 255 seconds)
2022-06-25 20:20:30 +0000coot(~coot@213.134.190.95)
2022-06-25 20:21:50 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2022-06-25 20:22:39 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-06-25 20:24:50 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-06-25 20:28:28 +0000pleo(~pleo@user/pleo)
2022-06-25 20:29:42 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-25 20:32:18 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-25 20:32:32 +0000_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-06-25 20:40:28 +0000random-jellyfish(~random-je@user/random-jellyfish)
2022-06-25 20:40:43 +0000coot(~coot@213.134.190.95) (Quit: coot)
2022-06-25 20:43:43 +0000Kaipei(~Kaiepi@156.34.47.253)
2022-06-25 20:45:14 +0000gmg(~user@user/gehmehgeh)
2022-06-25 20:45:40 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
2022-06-25 20:51:12 +0000jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-06-25 20:53:35 +0000jinsun__(~jinsun@user/jinsun)
2022-06-25 20:53:35 +0000jinsunGuest9781
2022-06-25 20:53:35 +0000jinsun__jinsun
2022-06-25 20:55:40 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
2022-06-25 20:57:29 +0000Guest9781(~jinsun@user/jinsun) (Ping timeout: 248 seconds)
2022-06-25 20:58:01 +0000gmg(~user@user/gehmehgeh) (Ping timeout: 268 seconds)
2022-06-25 20:58:50 +0000gmg(~user@user/gehmehgeh)
2022-06-25 21:02:33 +0000mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: WeeChat 3.5)
2022-06-25 21:04:44 +0000rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Ping timeout: 255 seconds)
2022-06-25 21:08:05 +0000Henson(~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2022-06-25 21:08:35 +0000cyanide3dinner(~cyanide4d@106.201.249.151)
2022-06-25 21:08:43 +0000misterfish(~misterfis@ip214-130-173-82.adsl2.static.versatel.nl)
2022-06-25 21:09:39 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-25 21:10:06 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-25 21:11:31 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net)
2022-06-25 21:13:22 +0000Kaipei(~Kaiepi@156.34.47.253) (Read error: Connection reset by peer)
2022-06-25 21:14:39 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Ping timeout: 268 seconds)
2022-06-25 21:15:16 +0000acidjnk(~acidjnk@dynamic-046-114-172-226.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2022-06-25 21:16:30 +0000yauhsien(~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-06-25 21:16:48 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
2022-06-25 21:21:28 +0000Lumia(~Lumia@c-73-219-104-153.hsd1.ma.comcast.net)
2022-06-25 21:23:46 +0000dcoutts(~duncan@host86-150-18-54.range86-150.btcentralplus.com)
2022-06-25 21:24:27 +0000Guest27(~Guest27@2601:281:d47f:1590::2df)
2022-06-25 21:25:40 +0000jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-06-25 21:25:56 +0000jinsun(~jinsun@user/jinsun)
2022-06-25 21:26:36 +0000Guest27(~Guest27@2601:281:d47f:1590::2df) (Client Quit)
2022-06-25 21:28:03 +0000jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-06-25 21:28:09 +0000nate4(~nate@98.45.169.16)
2022-06-25 21:28:18 +0000jinsun(~jinsun@user/jinsun)
2022-06-25 21:31:02 +0000unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-06-25 21:33:23 +0000 <AndreasK> Anyone got good ideas for keeping types representing the same data in sync across haskell and rust code.
2022-06-25 21:33:46 +0000nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-06-25 21:33:57 +0000 <AndreasK> The idea being that at least while I still play around with the data format I can regenerate one definition from the other and then just fix the code where it breaks.
2022-06-25 21:35:21 +0000alp(~alp@user/alp)
2022-06-25 21:36:15 +0000 <EvanR> generate the rust code using haskell xD
2022-06-25 21:36:24 +0000 <monochrom> I have a cunning plan! Design a 3rd language for expressing your type. Then a program that translate that to Rust types, and a program that translates that to Haskell types.
2022-06-25 21:37:32 +0000 <AndreasK> Given it's a toy project I did think about generating the rust definitions for the haskell types via Data or Generics
2022-06-25 21:37:54 +0000 <monochrom> I think it's Generics.
2022-06-25 21:38:34 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-25 21:38:58 +0000 <monochrom> My understanding of Data is that it's good for writing the catamorphism for you. Whereas Generics gives you better access to constructor names, field names, etc those metadata.
2022-06-25 21:39:00 +0000 <AndreasK> afaik you can get the require info from both, not sure which is easier to work with
2022-06-25 21:40:14 +0000random-jellyfish(~random-je@user/random-jellyfish) (Quit: Client closed)
2022-06-25 21:45:06 +0000 <tdammers> clearly, the answer is Lisp
2022-06-25 21:47:55 +0000sayola(~vekto@dslb-088-078-152-210.088.078.pools.vodafone-ip.de) (Quit: Leaving.)
2022-06-25 21:48:21 +0000Lumia(~Lumia@c-73-219-104-153.hsd1.ma.comcast.net) (Quit: ,-)
2022-06-25 21:50:26 +0000mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2022-06-25 21:51:46 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-06-25 21:55:36 +0000 <monochrom> I would weaken that to S-expressions but yeah :)
2022-06-25 21:55:46 +0000 <monochrom> Either S-expressions or XML haha.
2022-06-25 21:58:44 +0000nate4(~nate@98.45.169.16)
2022-06-25 22:01:39 +0000Topsi(~Topsi@dyndsl-095-033-020-051.ewe-ip-backbone.de)
2022-06-25 22:02:15 +0000Haskelytic(~Haskelyti@118.179.211.17)
2022-06-25 22:02:20 +0000shiraeeshi(~shiraeesh@46.34.206.55) (Ping timeout: 255 seconds)
2022-06-25 22:02:42 +0000 <AndreasK> I rather write the types twice than in an XML spec
2022-06-25 22:03:45 +0000 <dsal> The good news is that if you do it in XML, you'll probably end up writing everything twice anyway because that's how we roll.
2022-06-25 22:03:45 +0000shiraeeshi(~shiraeesh@46.34.206.55)
2022-06-25 22:03:53 +0000 <monochrom> haha
2022-06-25 22:04:50 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-25 22:05:26 +0000michalz(~michalz@185.246.204.119) (Remote host closed the connection)
2022-06-25 22:06:27 +0000nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-06-25 22:09:12 +0000machinedgod(~machinedg@66.244.246.252)
2022-06-25 22:10:13 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-06-25 22:10:31 +0000king_gs(~Thunderbi@2806:103e:29:a4ff:9938:ec1d:a54a:6688)
2022-06-25 22:11:14 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-06-25 22:12:23 +0000king_gs(~Thunderbi@2806:103e:29:a4ff:9938:ec1d:a54a:6688) (Client Quit)
2022-06-25 22:15:57 +0000 <BusConscious> hey I need a function f :: a -> b -> (a,b) f a b = (a,b)
2022-06-25 22:16:02 +0000 <BusConscious> what is this called?
2022-06-25 22:16:25 +0000 <geekosaur> :t (,)
2022-06-25 22:16:26 +0000 <lambdabot> a -> b -> (a, b)
2022-06-25 22:16:40 +0000 <BusConscious> thanks
2022-06-25 22:16:49 +0000 <BusConscious> kind of makes sense
2022-06-25 22:16:56 +0000misterfish(~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 268 seconds)
2022-06-25 22:17:06 +0000 <BusConscious> so , is just an infix operator when we write tuples?
2022-06-25 22:17:11 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
2022-06-25 22:17:21 +0000 <ski> sortof, but not quite
2022-06-25 22:17:33 +0000 <geekosaur> sort of. there are some limitations, like you have to enable an extension to use it as a section
2022-06-25 22:17:38 +0000 <ski> @type (,,)
2022-06-25 22:17:39 +0000 <lambdabot> a -> b -> c -> (a, b, c)
2022-06-25 22:17:50 +0000 <ski> `TupleSections' is a language extension
2022-06-25 22:17:57 +0000 <ski> @type (,False,)
2022-06-25 22:17:59 +0000 <lambdabot> t1 -> t2 -> (t1, Bool, t2)
2022-06-25 22:18:21 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl)
2022-06-25 22:18:44 +0000 <ski> (and you can't write just `2,False', you have to write `(2,False)' (unlike in OCaml))
2022-06-25 22:19:51 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection)
2022-06-25 22:20:07 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87)
2022-06-25 22:23:14 +0000johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
2022-06-25 22:27:08 +0000jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 272 seconds)
2022-06-25 22:28:12 +0000chomwitt(~chomwitt@2a02:587:dc0d:e600:8c30:8a72:c29d:62b2) (Quit: Leaving)
2022-06-25 22:29:55 +0000hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!)
2022-06-25 22:29:58 +0000 <monochrom> It is the other way round. "(x, y)" is syntax sugar for "(,) x y".
2022-06-25 22:30:23 +0000jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-06-25 22:33:25 +0000 <BusConscious> monochrom: Just applied that partially, that's why I asked: https://github.com/MartinErhardt/kell/blob/7d42d731fbe4df3cf3b38f8bbdd36dc9b2aa275f/TokParser.hs#L…
2022-06-25 22:37:04 +0000quarkyalice(~quarkyali@user/quarkyalice)
2022-06-25 22:38:31 +0000 <dsal> Some people really don't like tuple sections because of a principled reason I don't want to understand.
2022-06-25 22:39:13 +0000 <ski> hm ?
2022-06-25 22:39:44 +0000 <BusConscious> ski: dsal: So with tuple sections I could have written (e,)?
2022-06-25 22:39:55 +0000 <ski> (i can understand a general reason to feel a bit iffy about sections .. but i'm not sure if that's the reason those people had in mind)
2022-06-25 22:39:58 +0000 <ski> BusConscious, yes
2022-06-25 22:40:04 +0000 <EvanR> whatever is missing from the syntactic construction is where the argument goes
2022-06-25 22:40:09 +0000 <AndreasK> I don't like them because I find they can make code harder to read :) But I've worked on code using them before and survived ;D
2022-06-25 22:40:15 +0000 <ski> BusConscious : also (regardless), the surrounding brackets are redundant
2022-06-25 22:40:36 +0000 <ski> (and `lastSep' seems to be unused)
2022-06-25 22:40:39 +0000 <geekosaur> only reason I';ve ever heard is it stops people from using tuples (and possibly lists) with optional trailing comma like python
2022-06-25 22:40:57 +0000 <geekosaur> pfft
2022-06-25 22:41:06 +0000 <ski> that might be a plus, in my book .. not sure
2022-06-25 22:41:20 +0000 <BusConscious> I find myself making way too many brackets in haskell generally
2022-06-25 22:41:39 +0000 <EvanR> that trailing comma thing is probably some good lisp fodder. "silly comma users" xD
2022-06-25 22:41:48 +0000 <dsal> The principled reason I've heard is that it makes `(,)` behave like a function when it's not. But, I feel like it's consistent with, e.g. `(^)`.
2022-06-25 22:42:02 +0000 <ski> BusConscious : you should probably learn to use the `Applicative' combinators for parsers more
2022-06-25 22:42:09 +0000 <EvanR> but, it is a function
2022-06-25 22:42:13 +0000jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-06-25 22:42:16 +0000jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Remote host closed the connection)
2022-06-25 22:42:19 +0000skiwas just about to say
2022-06-25 22:42:28 +0000 <EvanR> rather, it has the function type
2022-06-25 22:42:38 +0000 <EvanR> so you can't tell if it's "not really"
2022-06-25 22:44:28 +0000 <BusConscious> ski yeah applicative style can be very readable
2022-06-25 22:44:36 +0000 <dsal> The principled people argue it's something quite different in particular ways that I don't care about. "you can just use `(,) 2` or `\x -> (x,2)`" -- which... I don't really find better. Similarly, if you look at `(2^)` vs. `(^) 2` -- it's much easier to read the latter incorrectly than the former.
2022-06-25 22:44:42 +0000 <BusConscious> I use it more here https://github.com/MartinErhardt/kell/blob/master/WordExp.hs
2022-06-25 22:45:04 +0000 <ski> parseToks = parseSepList <* (eof <|> op EOF) -- BusConscious, e.g.
2022-06-25 22:45:28 +0000 <BusConscious> ski: Yupp I didn't know about <* until yesterday
2022-06-25 22:45:32 +0000 <ski> BusConscious : also, you match on `(Word w)' in `case'-`of's, when it could be just `Word w'
2022-06-25 22:46:15 +0000 <BusConscious> ski you're right as I said: too many brackets
2022-06-25 22:46:20 +0000 <ski> BusConscious : and no need for `... >>= (\w -> ..w..)', just go `... >>= \w -> ..w..' (or `do w <- ...; ..w..')
2022-06-25 22:47:58 +0000gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
2022-06-25 22:48:03 +0000 <ski> parseAssignWord = (,) <$> parseXBDName <* char '=' <*> rest
2022-06-25 22:49:03 +0000 <Haskelytic> fellas, i'm reading this blog post on parametricity https://www.well-typed.com/blog/2015/05/parametricity/
2022-06-25 22:49:12 +0000 <Haskelytic> the author mentions the notion of "closed type"
2022-06-25 22:49:15 +0000 <Haskelytic> what does that mean?
2022-06-25 22:49:15 +0000cyanide3dinner(~cyanide4d@106.201.249.151) (Remote host closed the connection)
2022-06-25 22:50:01 +0000 <hpc> closed types can't have stuff added to them after the fact
2022-06-25 22:50:08 +0000 <hpc> Bool is a closed type
2022-06-25 22:50:25 +0000 <hpc> something like java's Object is an open type, because you can extend it
2022-06-25 22:50:27 +0000 <ski> `if nLs then newlineList else return ()' could be `when nLS newlineList'
2022-06-25 22:50:56 +0000 <Haskelytic> hpc: what would be an example of an open type in Haskell?
2022-06-25 22:51:34 +0000 <BusConscious> ski: ok that's interesting gotta bookmark "when"
2022-06-25 22:51:35 +0000 <hpc> Functor f => (a -> b) -> f a -> f b
2022-06-25 22:51:36 +0000Guest8247(~krjst@2604:a880:800:c1::16b:8001) (Quit: bye)
2022-06-25 22:51:56 +0000krjst(~krjst@2604:a880:800:c1::16b:8001)
2022-06-25 22:52:18 +0000 <hpc> you can always write a new Functor instance, adding more stuff to that type
2022-06-25 22:52:29 +0000quarkyalice(~quarkyali@user/quarkyalice) (Quit: quarkyalice)
2022-06-25 22:52:37 +0000 <ski> Haskelytic : what hpc mentioned is a different notion of "open" than what is referred to in the blag. in that context, "open" means that it has free variables. like `x + 1' is open, you can't compute it unless/until you give a specific value to `x'
2022-06-25 22:53:05 +0000 <hpc> oh, heh
2022-06-25 22:53:06 +0000merijn(~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2022-06-25 22:53:07 +0000 <ski> (well, "open" vs. "closed" notion, really)
2022-06-25 22:53:20 +0000 <ski> BusConscious : also `unless'
2022-06-25 22:53:55 +0000 <Haskelytic> ski: but `x+1` is a term no?
2022-06-25 22:54:04 +0000skimight say `Dynamic' or `SomeException' are open (in the first sense)
2022-06-25 22:54:17 +0000 <ski> Haskelytic : sure. (and ?)
2022-06-25 22:54:37 +0000 <ski> (an open term)
2022-06-25 22:55:01 +0000 <Haskelytic> I'm just a bit hung up on the terminology because I'm thinking open type and open term should be different, unless I'm misunderstanding something completely XD
2022-06-25 22:55:09 +0000 <Haskelytic> Hmm but I get the idea
2022-06-25 22:55:12 +0000 <Haskelytic> Thanks guys!
2022-06-25 22:55:34 +0000 <ski> Haskelytic : it's the same notion of "open" in "open type" and "open term", just applied to types vs. terms
2022-06-25 22:56:25 +0000 <ski> `Int -> [a] -> [a]' is an open type, since we haven't specified which type `a' is to be. otoh, `forall a. Int -> [a] -> [a]' is closed. it is the type of `take', e.g.
2022-06-25 22:56:29 +0000 <ski> @type take
2022-06-25 22:56:30 +0000 <lambdabot> Int -> [a] -> [a]
2022-06-25 22:56:34 +0000 <EvanR> is an extensible variant an open type
2022-06-25 22:57:18 +0000 <ski> however, Haskell commonly elides the `forall' part, making it implicit (iow, it implicitly inserts it for you, in some (not all) contexts) .. maybe this somewhat more difficult to get a clear hold of, initially
2022-06-25 22:57:27 +0000 <hpc> would it be misleading to call an open term a closure?
2022-06-25 22:57:49 +0000 <ski> well, the open term, together with its environment, i guess ?
2022-06-25 22:58:21 +0000 <hpc> (that question was 90% pun)
2022-06-25 22:58:44 +0000 <ski> (although, usually, "closure" is used for the implementation of the resulting value, when reducing such a term-in-environment .. more specifically when we can't GC away the environment, wrt the resulting value)
2022-06-25 22:58:48 +0000 <monochrom> This is an open-and-shut case. :)
2022-06-25 23:00:01 +0000 <ski> iirc this is where the term "closure" comes from, "closing the term (or its value), over its enclosing environment, making it self-contained"
2022-06-25 23:00:04 +0000 <Haskelytic> Seems like I need more time to absorb all this lingo coming at me at mach speed :)
2022-06-25 23:00:49 +0000 <BusConscious> ski: thanks for the feedback. The codebase in general and that file in particular is still kind of a mess as i rush towards turing completeness and more advanced control structures, but partially applying (,) and using when, unless, curry and uncurry are for sure tools to clean it up a bit
2022-06-25 23:01:22 +0000 <monochrom> I think you don't need the word "closure" or its meaning until you wonder what's the magic that enables "\x -> x + y" to know which "y" it should use.
2022-06-25 23:02:14 +0000 <BusConscious> Though it also ought to be said, that while applicative style is usually more readable, I also try to stay below 125 characters per line
2022-06-25 23:02:33 +0000 <monochrom> Unless you are an advanced programmer or a compiler/interpreter writer, you don't really care other than "obviously lexical scoping".
2022-06-25 23:03:05 +0000 <monochrom> (It is easier said than done. But how many people actually need to know how it's done?)
2022-06-25 23:03:17 +0000lottaquestions(~nick@2607:fa49:5041:a200:d970:339e:3d32:94d) (Quit: Konversation terminated!)
2022-06-25 23:04:09 +0000 <monochrom> Therefore unpopular opinion: Experts throwing around the word "closure" just encourages either cargo-culting jargons or unnecessary distractions or both.
2022-06-25 23:04:15 +0000 <Haskelytic> monochrom: I'm still in the "duh lexical scoping" camp
2022-06-25 23:04:55 +0000 <Haskelytic> I've seen so many things called closures that sometimes I wonder if I'm insane or the author is ;)
2022-06-25 23:05:01 +0000 <monochrom> As another example look at how many people say "isomorphic" without ever asking what it means. Most of them confess "I heard experts say it, therefore I say it."
2022-06-25 23:05:45 +0000 <Haskelytic> Programming is sloppy business though so i can understand why most people might not be interested in precise definitions
2022-06-25 23:05:55 +0000 <Haskelytic> I'm just trying to reduce my own sloppiness
2022-06-25 23:06:16 +0000 <monochrom> "lexical scoping" is very precise. "closure" is an implementation detail.
2022-06-25 23:06:39 +0000wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-06-25 23:06:39 +0000wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-06-25 23:06:39 +0000wroathe(~wroathe@user/wroathe)
2022-06-25 23:06:53 +0000 <EvanR> unpopular opinion: programming doesn't have to be sloppy business
2022-06-25 23:07:14 +0000 <ski> monochrom : sure. (as you know) closures (and free variables in general) are "just" an optimization over the substitution-model
2022-06-25 23:07:26 +0000 <ski> BusConscious : usually i stay below 80
2022-06-25 23:07:30 +0000 <monochrom> "bijective" is very precise. "isomorphic" adds an extra condition, sure. But Ironically, everything is being sloppy about that extra condition. At which point actually "bijective" is more precise.
2022-06-25 23:07:42 +0000 <monochrom> s/everything/everyone/
2022-06-25 23:08:41 +0000 <Haskelytic> EvanR: try saying that to the python programmers :)
2022-06-25 23:08:44 +0000shiraeeshi(~shiraeesh@46.34.206.55) (Ping timeout: 268 seconds)
2022-06-25 23:08:58 +0000 <ski> yea, "closure" is an implementation-specific term. if you're not talking about implementation, it's probably better to say "function(al) value" or "first-class function" or "lambda abstraction" or "lexical/static scope", or something along those lines
2022-06-25 23:09:03 +0000 <EvanR> bring it
2022-06-25 23:09:32 +0000 <EvanR> come at me pythro
2022-06-25 23:11:58 +0000kmein(~weechat@user/kmein) (Ping timeout: 240 seconds)
2022-06-25 23:12:41 +0000 <BusConscious> ski: how would you tidy up something like this? https://github.com/MartinErhardt/kell/blob/7d42d731fbe4df3cf3b38f8bbdd36dc9b2aa275f/TokParser.hs#L…
2022-06-25 23:13:48 +0000 <BusConscious> when you have DataConstructor with a lot of different parameters and you want to create a new data structure from the old one that is equal in all of these parameters except one or some
2022-06-25 23:14:06 +0000 <BusConscious> bc rn it feels super redundant to write something like this
2022-06-25 23:17:07 +0000Haskelytic(~Haskelyti@118.179.211.17) (Quit: Client closed)
2022-06-25 23:18:00 +0000 <EvanR> you can factor out the common parts, or try your hand at extensible records
2022-06-25 23:19:23 +0000kmein(~weechat@user/kmein)
2022-06-25 23:22:04 +0000 <ski> addAssign strstr cmd = cmd {assign = [strstr] ++ assign cmd} -- record update
2022-06-25 23:24:22 +0000 <BusConscious> ski: aaaah that is really good to know thank you
2022-06-25 23:24:41 +0000unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
2022-06-25 23:25:13 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2022-06-25 23:25:46 +0000elkcl(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Read error: Connection reset by peer)
2022-06-25 23:25:50 +0000unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-06-25 23:26:40 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-06-25 23:27:21 +0000TonyStone(~TonyStone@2603-7080-8607-c36a-514e-68a6-af12-10c9.res6.spectrum.com) (Ping timeout: 248 seconds)
2022-06-25 23:27:36 +0000elkcl(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
2022-06-25 23:31:23 +0000 <monochrom> I think the python people don't mean to be sloppy, they just want to be flexible and extensible.
2022-06-25 23:31:58 +0000BusConscious(~martin@ip5f5bdf01.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2022-06-25 23:32:12 +0000Tuplanolla(~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.)
2022-06-25 23:32:15 +0000Colere(~colere@about/linux/staff/sauvin)
2022-06-25 23:32:22 +0000 <monochrom> OTOH programming jokes are OK! :)
2022-06-25 23:33:03 +0000 <monochrom> Haskell requires having attempted PhD and failed. >:)
2022-06-25 23:33:36 +0000 <geekosaur> o.O
2022-06-25 23:34:02 +0000 <EvanR> or is haskell just a side effect of that
2022-06-25 23:34:11 +0000 <monochrom> I would think "refactoring" applies equally well to data type definitions.
2022-06-25 23:35:25 +0000 <monochrom> You have "a function" and then later you desire "a 2nd function that's like the 1st with just one small change". You go "let me refactor the 1st function".
2022-06-25 23:35:44 +0000 <monochrom> Why can't that also be s/function/type/ ?
2022-06-25 23:36:59 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-06-25 23:37:56 +0000yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
2022-06-25 23:39:42 +0000TonyStone(~TonyStone@2603-7080-8607-c36a-09e4-c1eb-6da4-2a7c.res6.spectrum.com)
2022-06-25 23:42:30 +0000yrlnry(~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 272 seconds)
2022-06-25 23:43:42 +0000mathr(~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) (Quit: ->)
2022-06-25 23:49:13 +0000motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 248 seconds)