Home liberachat/#haskell: Logs Calendar

Logs on 2025-02-01 (liberachat/#haskell)

00:00:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
00:01:22 × jinsun quits (~jinsun@user/jinsun) ()
00:08:00 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 264 seconds)
00:09:01 <haskellbridge> <sm> Leary: could you expand that a little ? $> foo comments ?
00:10:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:12:09 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds)
00:15:06 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
00:18:13 <Leary> sm: If you use the `--allow-eval` or `--enable-eval` flags in ghcid or ghciwatch respectively, they look for comments of the form `-- $> <code>` in your source to evaluate.
00:19:22 × malte quits (~malte@mal.tc) (Remote host closed the connection)
00:22:52 ljdarj1 joins (~Thunderbi@user/ljdarj)
00:23:12 malte joins (~malte@mal.tc)
00:23:17 Guest96 joins (~Guest96@81-207-104-14.fixed.kpn.net)
00:23:59 × Guest96 quits (~Guest96@81-207-104-14.fixed.kpn.net) (Client Quit)
00:26:02 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:26:04 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
00:26:05 ljdarj1 is now known as ljdarj
00:28:13 <haskellbridge> <sm> good to know!
00:30:44 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
00:32:50 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
00:35:14 alfiee joins (~alfiee@user/alfiee)
00:39:45 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
00:44:04 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:48:37 × alp quits (~alp@2001:861:8ca0:4940:291:464f:2c61:f1c2) (Remote host closed the connection)
00:48:54 alp joins (~alp@2001:861:8ca0:4940:be55:7820:aa2d:6e12)
00:52:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
00:52:36 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
00:53:11 ec joins (~ec@gateway/tor-sasl/ec)
00:53:44 × alp quits (~alp@2001:861:8ca0:4940:be55:7820:aa2d:6e12) (Ping timeout: 260 seconds)
01:03:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:08:07 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
01:09:50 × sprotte24 quits (~sprotte24@p200300d16f06b9001d5c2b08794be0ce.dip0.t-ipconnect.de) (Quit: Leaving)
01:18:39 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:19:17 × otto_s quits (~user@p5de2fd05.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
01:21:12 otto_s joins (~user@p5b0448ee.dip0.t-ipconnect.de)
01:24:20 alfiee joins (~alfiee@user/alfiee)
01:24:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
01:28:54 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
01:35:03 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:39:21 Guest22 joins (~Guest62@c-73-217-79-154.hsd1.co.comcast.net)
01:39:26 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
01:45:22 × acidjnk_new3 quits (~acidjnk@p200300d6e7283f83f8f1a3a9ad07643b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
01:50:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:54:57 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
01:58:41 × Guest22 quits (~Guest62@c-73-217-79-154.hsd1.co.comcast.net) (Quit: Client closed)
02:04:19 × xff0x quits (~xff0x@ai096095.d.east.v6connect.net) (Ping timeout: 260 seconds)
02:06:07 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:10:36 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
02:13:06 alfiee joins (~alfiee@user/alfiee)
02:13:38 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:15:32 weary-traveler joins (~user@user/user363627)
02:16:01 × euleritian quits (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection)
02:16:19 euleritian joins (~euleritia@77.23.250.232)
02:16:50 xff0x joins (~xff0x@2405:6580:b080:900:9526:2be3:6fc8:68b2)
02:17:34 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
02:17:56 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
02:28:58 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:29:18 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
02:30:09 tavare joins (~tavare@user/tavare)
02:31:19 vanishingideal joins (~vanishing@user/vanishingideal)
02:32:33 × euleritian quits (~euleritia@77.23.250.232) (Remote host closed the connection)
02:32:51 euleritian joins (~euleritia@77.23.250.232)
02:33:02 euouae joins (~euouae@user/euouae)
02:33:17 <euouae> Hello I was using Debug.Trace to check up on sharing
02:33:34 <euouae> but e.g. `let y = trace "y-demanded" 1 in (y, y)` will print two y-demanded messages. Why? I thought 'y' would be shared in the pair expression
02:33:42 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
02:33:48 <euouae> Is it just because sharing (for some reason) didn't happen there?
02:34:10 <geekosaur> did you use optimization?
02:34:19 <geekosaur> (if you were doing it in ghci, you weren't)
02:34:24 <int-e> compare let y = trace "y-demanded" 1 :: Integer in (y, y)
02:34:38 <int-e> then figure out why adding a type signature makes a difference
02:34:45 <geekosaur> oh, right
02:35:29 <int-e> the remark about optimizations is valid too of course
02:36:07 <EvanR> that's so tricky
02:36:23 <euouae> because the type inference prevents it from being shared?
02:36:34 <geekosaur> type inference didn't happen
02:36:38 <geekosaur> there's a piece missing
02:36:50 <geekosaur> well, it did but it didn't reach a final result
02:36:55 <int-e> :t 1
02:36:56 <lambdabot> Num p => p
02:37:09 <euouae> it being Num doesn't tell me much I don't know what to make of it
02:37:13 <EvanR> 1 is like a function waiting to be given a Num instance
02:37:24 <EvanR> rather than a number
02:37:33 <geekosaur> :t let y = 1 in (y,y)
02:37:34 <lambdabot> (Num a, Num b) => (a, b)
02:37:57 <geekosaur> think about that one for a bit
02:38:12 <euouae> well, so it is type inference right
02:38:18 <euouae> because I can do :: (Int, Double)
02:38:47 <EvanR> :t let y = 1 in (y,y) :: (Int, Double)
02:38:48 <lambdabot> (Int, Double)
02:38:53 <EvanR> now it's a pair of numbers
02:38:54 <int-e> well sharing and lack thereof is firmly a runtime phenomenon
02:39:03 <int-e> so it's not *just* type inference
02:39:25 <euouae> Yeah, `let x = trace "foo" 1 in (x :: Int, x :: Int)` will still print two foos
02:39:38 <EvanR> pair of numbers vs "like a function waiting for two different Num instances, that may or may not happen to be the same instance"
02:39:40 <euouae> it's something more than that
02:40:30 <euouae> when you say function do you mean type function
02:40:37 <EvanR> no
02:40:41 <euouae> the `p` argument in Num p => p?
02:40:50 <EvanR> no the => in Num p => p
02:41:07 <geekosaur> as long as it has a constraint, it's like a partially applied function. (=> looks like -> for a reason) the thing that needs to be applied is an instance dictionary
02:41:16 <int-e> Concretely at runtime, the argument is a Num dictionary for p.
02:41:18 × nitrix quits (~nitrix@user/meow/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
02:41:31 <euouae> I haven't heard of dictionary before
02:41:32 <geekosaur> by the time you apply it to the tuple, it's too late to go back and do sharing. if you specify it in the let, it can share
02:42:03 <int-e> (Dictionaries are an implementation detail of type classes.)
02:42:12 <geekosaur> have you reached typeclasses yet?
02:42:26 <euouae> No I just roughly know they have to do with interfaces
02:42:32 <EvanR> D:
02:42:35 <int-e> (And there are alternatives... notably, JHC passed type descriptors instead.)
02:42:37 nitrix joins (~nitrix@user/meow/nitrix)
02:42:39 tabaqui1 joins (~root@87.200.129.102)
02:43:24 <EvanR> is passing type descriptors tangibly different in practice
02:43:27 <geekosaur> "interfaces" is a flawed attempt to understand typeclasses in terms of something better known, much like all the failed monad tutorials floating around the internet
02:43:57 <euouae> failure does not worry me
02:44:17 <EvanR> > fail "monad tutorial failed"
02:44:18 <lambdabot> error:
02:44:18 <lambdabot> • Ambiguous type variables ‘m0’,
02:44:18 <lambdabot> ‘a0’ arising from a use of ‘show_M13899420735...
02:44:20 <geekosaur> it should, you will have problems if you insist on "thats good enlugh isnt it?"
02:44:28 <geekosaur> because it won't be good enough
02:44:31 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:45:34 <euouae> so anyway, sharing happens in concrete types?
02:45:40 <int-e> EvanR: Hmm I suspect it mostly affects optimization. But you can probably construct degenerate examples where type descriptors blow up (you construct an arbitrary sized type descriptor) but the functions associated with the class instances don't. (It's `coerce` all the way.) If you only worry about whether something is a function or not at runtime... no it makes no difference.
02:46:08 <EvanR> euouae, for sharing to be possible, the two expressions would have to be known to evaluate to the same value
02:46:11 <EvanR> then you can share the value
02:46:33 <EvanR> in your example they very well may not be the same value
02:46:35 <EvanR> or even the same type
02:46:47 <euouae> so what happens with (x :: Int, x :: Int) that still prevents it from being shared?
02:47:05 <euouae> that x::Int is unevaluated while x::Int evaluates to `x` (but Int now) and then _that_ thunk gets shared?
02:47:08 <EvanR> x was a polymorphic thing waiting to be told what Num instance to use
02:47:40 <EvanR> presumably a smart enough compiler could look at (x :: Int, x :: Int) and deduce they must evaluate to the same thing
02:47:46 <EvanR> but doesn't?
02:47:50 <geekosaur> as I said earlier, if you make them both Int when you are tupling them, it's too late; the decision was made that it couldn't share them
02:48:09 <geekosaur> because they might not be the same type when applied
02:48:12 <euouae> right but is there some deeper understanding to draw from that geekosaur ?
02:48:24 <int-e> euouae: there's *no* CSE
02:48:31 <EvanR> oh that's why
02:48:39 <euouae> not sure what CSE is
02:48:45 <int-e> in your context, which is GHCi (so unoptimized bytecode)
02:48:50 <geekosaur> "common subexpression elimination"
02:49:14 <EvanR> CSE could make let x = 1 in (x::Int,x::Int) into let x = 1 :: Int in (x,x)
02:49:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
02:49:25 <euouae> ah I see. What is the subexpression? the x in the tuple?
02:49:29 <EvanR> x::Int
02:50:25 <EvanR> and then sharing would be an optimization on top of that
02:50:59 <euouae> thank you
02:52:23 <EvanR> you're in good shape if you don't care about sharing xD
02:52:34 <EvanR> otherwise D:
02:53:29 <EvanR> it's not represented in the semantics which is always fun
02:57:35 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Quit: Lost terminal)
02:59:55 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:01:19 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
03:01:30 alfiee joins (~alfiee@user/alfiee)
03:04:21 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
03:05:39 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
03:11:15 <euouae> <https://wiki.haskell.org/GHC_optimisations#Common_subexpression_elimination> "Long story short: "If you care about CSE, do it by hand." "
03:11:34 <euouae> One would think `let x = 1 in (x, x)` is doing CSE by hand but... classes :D tricky stuff
03:14:00 <euouae> what is a type that is not like that called?
03:14:11 <euouae> because 1 as a type is .. a kind? not a type?
03:14:38 <euouae> `Num a => a` versus `a`. Is it OK to call it concrete type (the latter) or do I call it something else? Wah is the former called?
03:15:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:17:36 <ncf> a is all but concrete!
03:17:38 <int-e> Cop-out: it's a value. (Functions are values.)
03:18:04 <ncf> i suggest calling the former Num a => a and the latter a. don't make up words
03:18:50 <int-e> You can cook up terminology like "instance-dependent value" but I don't think we have any standard terminology for this.
03:19:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
03:26:51 <Leary> euouae: The question is somewhat confused. Perhaps you want to describe values, not types, with 'monomorphic' for `1 :: Int` and 'polymorphic' for `1 :: forall a. Num a => a`. That somewhat incidentally ends up capturing whether or not the value is expecting a constraint, since GHC ensures known constraints are supplied.
03:29:14 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Ping timeout: 272 seconds)
03:30:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:33:15 <euouae> how come `forall` pops up in Haskell source code? is it legal haskell?
03:33:20 <euouae> e.g. stuff in Base
03:34:18 <euouae> Monomorphic value is fine; I'm just trying to say how I think CSE would be manually done if desired as an optimization (ensuring the value is monomorphic with type annotations)
03:34:22 <int-e> What's your definition of "legal"? A lot of Haskell code only works with GHC.
03:34:30 <Leary> All type variables are implicitly or explicitly introduced with `forall`, though you need to enable language extensions so GHC will accept it.
03:34:45 <int-e> The `base` that comes with GHC in particular is tied to GHC.
03:34:50 <euouae> I see
03:35:33 <int-e> (There was a time when hugs and GHC shared most of the base libraries but that's in the distant past. Like, over 2 decades ago.)
03:36:32 <euouae> Well, I do remember when Hugs was a thing
03:36:41 <euouae> I had attempted to learn haskell around 18 years ago I think
03:37:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
03:39:03 <int-e> Hmm. So you hit the brief window when there were half a dozen actively developed Haskell implementations? Maybe it was just four.
03:39:17 <EvanR> forall is how you introduce type variables for polymorphism purposes
03:39:36 <EvanR> normally it's understood and not written in a type sig
03:39:45 <EvanR> map :: (a -> b) -> [a] -> [b]
03:39:57 <EvanR> there's really a forall a b . at the beginning of that
03:40:07 <int-e> or is that forall b a. :-)
03:40:13 <euouae> yes I did
03:40:19 <euouae> there was a lot of hype back then
03:40:26 <EvanR> but with rank N types and ScopedTypeVariables you need explicit forall for reasons
03:41:01 <euouae> I'm not super interested in the crazy type theory stuff; I already had some exposure with Coq so at least I saw it in action elsewhere
03:41:18 <euouae> perhaps only interested as it pertains to my purposes of writing software
03:41:28 <EvanR> type theory has to do with logic
03:41:35 <EvanR> haskell is illogical so you're good
03:41:41 <euouae> I'm good
03:41:41 <euouae> :P
03:43:13 × td_ quits (~td@i5387092E.versanet.de) (Ping timeout: 248 seconds)
03:48:48 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:50:13 alfiee joins (~alfiee@user/alfiee)
03:54:25 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
03:57:05 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
03:57:43 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:08:15 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:10:08 robobub joins (uid248673@id-248673.uxbridge.irccloud.com)
04:12:04 ensyde joins (~ensyde@2601:5c6:c200:6dc0::64a2)
04:13:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
04:23:38 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:25:14 aforemny_ joins (~aforemny@2001:9e8:6ce1:bc00:8ce8:3eef:6047:48a7)
04:26:16 × aforemny quits (~aforemny@i577B135A.versanet.de) (Ping timeout: 252 seconds)
04:28:10 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
04:35:07 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
04:39:00 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:41:18 alfiee joins (~alfiee@user/alfiee)
04:43:36 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
04:45:52 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds)
04:54:23 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:58:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
05:09:45 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:14:18 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
05:18:38 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
05:22:51 × prasad quits (~Thunderbi@2601:243:c001:3f07::fe) (Ping timeout: 246 seconds)
05:25:07 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:28:54 × eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 260 seconds)
05:29:42 alfiee joins (~alfiee@user/alfiee)
05:30:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
05:30:32 Lears joins (~Leary@user/Leary/x-0910699)
05:30:48 × Leary quits (~Leary@user/Leary/x-0910699) (Ping timeout: 252 seconds)
05:30:51 Lears is now known as Leary
05:34:19 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
05:37:45 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
05:40:38 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:44:53 × EvanR quits (~EvanR@user/evanr) (Ping timeout: 248 seconds)
05:45:09 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
05:45:16 EvanR joins (~EvanR@user/evanr)
05:49:29 × Flow quits (~none@gentoo/developer/flow) (Ping timeout: 252 seconds)
05:53:32 Flow joins (~none@gentoo/developer/flow)
05:56:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:56:33 Guest93 joins (~Guest62@c-73-217-79-154.hsd1.co.comcast.net)
05:56:39 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:57:32 takuan joins (~takuan@d8D86B601.access.telenet.be)
06:00:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:01:06 Sgeo joins (~Sgeo@user/sgeo)
06:05:41 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
06:07:44 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
06:10:44 j1n37 joins (~j1n37@user/j1n37)
06:11:23 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:13:04 euphores joins (~SASL_euph@user/euphores)
06:16:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
06:18:26 alfiee joins (~alfiee@user/alfiee)
06:22:36 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
06:24:21 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
06:26:46 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:33:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
06:35:30 × Guest93 quits (~Guest62@c-73-217-79-154.hsd1.co.comcast.net) (Quit: Client closed)
06:38:22 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
06:38:46 ec joins (~ec@gateway/tor-sasl/ec)
06:44:49 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:49:16 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:56:51 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:58:49 target_i joins (~target_i@user/target-i/x-6023099)
07:00:13 × JamesMowery4395 quits (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) (Quit: Goodbye)
07:00:30 JamesMowery4395 joins (~JamesMowe@ip68-228-212-232.ph.ph.cox.net)
07:00:40 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
07:01:06 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
07:07:11 alfiee joins (~alfiee@user/alfiee)
07:11:17 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
07:12:13 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:16:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
07:17:56 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
07:27:36 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:32:23 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
07:42:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:47:03 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 245 seconds)
07:47:14 tnt2 joins (~Thunderbi@user/tnt1)
07:47:36 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
07:49:32 tnt2 is now known as tnt1
07:55:35 alfiee joins (~alfiee@user/alfiee)
07:58:22 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:58:41 acidjnk_new3 joins (~acidjnk@p200300d6e7283f12b860008857e92372.dip0.t-ipconnect.de)
07:59:58 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
08:00:00 × caconym quits (~caconym@user/caconym) (Quit: bye)
08:00:38 caconym joins (~caconym@user/caconym)
08:05:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
08:16:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:20:56 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
08:24:45 alp joins (~alp@2001:861:8ca0:4940:1361:ca4a:3bd8:54c7)
08:26:06 × alp quits (~alp@2001:861:8ca0:4940:1361:ca4a:3bd8:54c7) (Remote host closed the connection)
08:26:24 alp joins (~alp@2001:861:8ca0:4940:266a:1da5:8305:6611)
08:31:46 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:32:36 gmg joins (~user@user/gehmehgeh)
08:36:23 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
08:40:00 tnt2 joins (~Thunderbi@user/tnt1)
08:40:18 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 244 seconds)
08:40:18 tnt2 is now known as tnt1
08:44:21 alfiee joins (~alfiee@user/alfiee)
08:46:18 × jle` quits (~jle`@2603:8001:3b02:84d4:467d:3e5f:31ca:9a0a) (Quit: WeeChat 4.4.1)
08:47:10 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:47:45 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
08:48:48 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
08:51:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
08:54:12 jle` joins (~jle`@2603:8001:3b02:84d4:a102:3812:c97b:44bc)
09:04:45 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 276 seconds)
09:05:17 × alp quits (~alp@2001:861:8ca0:4940:266a:1da5:8305:6611) (Ping timeout: 252 seconds)
09:05:26 × ensyde quits (~ensyde@2601:5c6:c200:6dc0::64a2) (Quit: WeeChat 4.5.1)
09:09:01 AlexNoo_ joins (~AlexNoo@5.139.233.186)
09:10:04 × AlexZenon quits (~alzenon@5.139.233.186) (Ping timeout: 252 seconds)
09:10:44 × AlexNoo quits (~AlexNoo@5.139.233.186) (Ping timeout: 260 seconds)
09:14:39 sawilagar joins (~sawilagar@user/sawilagar)
09:14:46 AlexZenon joins (~alzenon@5.139.233.186)
09:14:57 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
09:17:37 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:18:49 eL_Bart0 joins (eL_Bart0@dietunichtguten.org)
09:19:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
09:30:20 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
09:33:09 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 248 seconds)
09:33:25 alfiee joins (~alfiee@user/alfiee)
09:35:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
09:35:59 × Philonous quits (~Philonous@user/philonous) (Quit: ZNC - https://znc.in)
09:36:24 Philonous joins (~Philonous@user/philonous)
09:37:59 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
09:44:37 × anpad quits (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
09:45:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
09:46:35 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
09:48:20 anpad joins (~pandeyan@user/anpad)
09:48:42 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
09:52:51 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
09:58:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:05:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
10:05:34 × sarna quits (~sarna@d224-221.icpnet.pl) (Ping timeout: 260 seconds)
10:09:50 alp joins (~alp@2001:861:8ca0:4940:22d4:d676:43ac:a093)
10:10:55 × euouae quits (~euouae@user/euouae) ()
10:12:34 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
10:16:11 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:20:45 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
10:22:06 × alp quits (~alp@2001:861:8ca0:4940:22d4:d676:43ac:a093) (Ping timeout: 246 seconds)
10:22:10 alfiee joins (~alfiee@user/alfiee)
10:26:20 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
10:26:35 wootehfoot joins (~wootehfoo@user/wootehfoot)
10:26:37 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:31:49 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 248 seconds)
10:33:26 sawilagar joins (~sawilagar@user/sawilagar)
10:35:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
10:38:33 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
10:39:16 × talismanick quits (~user@2601:644:937c:ed10::ae5) (Ping timeout: 272 seconds)
10:46:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:50:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
10:51:52 × nek0 quits (~nek0@user/nek0) (Quit: The Lounge - https://thelounge.chat)
10:59:49 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
11:02:25 lisbeths` joins (~user@c-73-53-106-200.hsd1.wa.comcast.net)
11:02:34 <lisbeths`> everybody asleep but #haskell never sleeps
11:02:37 emmanuelux joins (~emmanuelu@user/emmanuelux)
11:03:05 <lisbeths`> i ran out of dopamine to write my fastlisp compiler https://github.com/memesmith0/fastlisp
11:07:59 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
11:08:47 nek0 joins (~nek0@user/nek0)
11:08:57 <haskellbridge> <hellwolf> I didn't see Haskell
11:09:22 <lisbeths`> are you referring to me?
11:11:38 <haskellbridge> <hellwolf> yes. since you come here to ask, might I suggest you should probably try Haskell's parser combinator,you code probably will be 5-10 times less in Haskell.
11:11:47 <haskellbridge> <hellwolf> and clearer.
11:11:54 alfiee joins (~alfiee@user/alfiee)
11:14:26 <lisbeths`> I don't know alot of haskell. this is just a prototype written in python
11:14:44 <lisbeths`> there is already a binary lambda calculus interpreter in haskell afaik
11:15:20 <lisbeths`> the connection between this and haskell is that every valid fastlisp program is a pure lambda
11:16:38 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds)
11:16:43 <haskellbridge> <hellwolf> mkay. how can we help?
11:18:21 <lisbeths`> well once i get this compiler working then it can interoperate with haskell in a purely functional way
11:18:54 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
11:19:20 <lisbeths`> some of the people in my project want to interoperate with haskell but i have to focus more on interoperating with python and posix
11:23:32 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
11:24:09 × lisbeths` quits (~user@c-73-53-106-200.hsd1.wa.comcast.net) (Ping timeout: 260 seconds)
11:24:20 lisbeths joins (~user@2603:3023:4be:4000:216:3eff:fe17:d69d)
11:24:48 <lisbeths> I apologize i lost connection
11:25:02 <lisbeths> my langauge is a universal donor to haskell and haskell seems to be a universal donor to my language
11:25:14 <lisbeths> so some of the folks in my project are very interested in interoperating with haskell
11:28:23 lxsameer joins (~lxsameer@Serene/lxsameer)
11:29:21 monochrm joins (trebla@216.138.220.146)
11:29:23 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 252 seconds)
11:29:38 monochrm is now known as monochrom
11:34:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
11:39:21 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 265 seconds)
11:40:42 ski idly wonders what "universal donor" means, in this context
11:41:18 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
11:45:05 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
11:45:54 <lisbeths> every fastlisp program is a pure lambda so fastlisp code is a universal donor to haskell
11:46:39 × ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj)
11:46:59 ljdarj joins (~Thunderbi@user/ljdarj)
11:49:00 haskellbridge hellwolf thinks it must be an English and Python creole that I can't decipher neither.
11:49:54 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
11:52:09 <lisbeths> no the python code merely converts from one format of expressing lambda expressions to another format
11:52:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
11:52:24 <lisbeths> a universal format for lambdas called blc is interpretable by haskell already afaik
11:53:25 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
11:53:44 <lisbeths> it wouldn't matter which language the compiler was written in it could be written in ruby, perl, or php
11:56:38 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
11:56:46 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds)
11:59:31 alexherbo2 joins (~alexherbo@2a02-8440-3507-0847-08b4-4a7a-18fb-2194.rev.sfr.net)
11:59:40 alfiee joins (~alfiee@user/alfiee)
12:00:04 × caconym quits (~caconym@user/caconym) (Quit: bye)
12:00:49 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
12:02:08 Digitteknohippie joins (~user@user/digit)
12:02:11 caconym joins (~caconym@user/caconym)
12:03:29 × Digit quits (~user@user/digit) (Ping timeout: 248 seconds)
12:03:57 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
12:07:35 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
12:10:24 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
12:20:51 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
12:25:23 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
12:26:20 tnt2 joins (~Thunderbi@user/tnt1)
12:26:25 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 248 seconds)
12:26:26 tnt2 is now known as tnt1
12:32:03 rvalue- joins (~rvalue@user/rvalue)
12:32:47 <haskellbridge> <hellwolf> perhaps you would be interested in knowing Ghc core is entirely built around a few constructors: https://x.com/tritlo/status/1885283297137205357
12:32:53 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 245 seconds)
12:36:14 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
12:36:31 ozkutuk joins (~ozkutuk@24.133.86.69)
12:40:39 rvalue- is now known as rvalue
12:42:04 tnt2 joins (~Thunderbi@user/tnt1)
12:42:54 × tnt1 quits (~Thunderbi@user/tnt1) (Ping timeout: 260 seconds)
12:42:54 tnt2 is now known as tnt1
12:42:57 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
12:47:24 alfiee joins (~alfiee@user/alfiee)
12:48:43 nckx joins (nckx@libera/staff/owl/nckx)
12:51:32 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
12:54:00 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
12:58:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
13:01:51 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
13:06:11 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
13:06:12 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 264 seconds)
13:06:41 ec joins (~ec@gateway/tor-sasl/ec)
13:16:03 AlexNoo_ is now known as AlexNoo
13:17:15 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
13:18:02 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
13:18:38 lxsameer joins (~lxsameer@Serene/lxsameer)
13:21:42 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
13:32:38 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
13:35:28 alfiee joins (~alfiee@user/alfiee)
13:39:42 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
13:40:21 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 276 seconds)
13:43:14 × euleritian quits (~euleritia@77.23.250.232) (Ping timeout: 252 seconds)
13:43:24 euleritian joins (~euleritia@dynamic-176-006-139-135.176.6.pool.telefonica.de)
13:46:47 harveypwca joins (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6)
13:49:12 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
13:50:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
13:51:00 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
13:55:10 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
13:55:55 benjamin joins (~benjamin@2a03:4b80:a720:6e10:957c:a7eb:4e40:5d64)
13:56:18 rainburnsi0i joins (~rainburns@14.194.140.178)
14:02:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
14:03:16 wootehfoot joins (~wootehfoo@user/wootehfoot)
14:04:08 × rainburnsi0i quits (~rainburns@14.194.140.178) (Quit: Client closed)
14:06:48 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 264 seconds)
14:07:17 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
14:07:40 ChaiTRex joins (~ChaiTRex@user/chaitrex)
14:08:32 × ozkutuk quits (~ozkutuk@24.133.86.69) (Remote host closed the connection)
14:18:12 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
14:21:35 rainburnsi0i joins (~rainburns@14.194.140.178)
14:22:28 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
14:23:52 alfiee joins (~alfiee@user/alfiee)
14:26:48 Digitteknohippie is now known as Digit
14:27:53 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
14:31:10 × rainburnsi0i quits (~rainburns@14.194.140.178) (Ping timeout: 240 seconds)
14:33:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
14:38:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
14:40:50 pavonia joins (~user@user/siracusa)
14:48:57 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
14:53:48 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
14:55:57 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
14:56:34 L29Ah joins (~L29Ah@wikipedia/L29Ah)
15:00:14 weary-traveler joins (~user@user/user363627)
15:03:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
15:06:54 × simplystuart quits (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Remote host closed the connection)
15:09:28 alfiee joins (alfiee@user/alfiee)
15:10:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
15:12:15 × lisbeths quits (~user@2603:3023:4be:4000:216:3eff:fe17:d69d) (Ping timeout: 252 seconds)
15:13:06 × img_ quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
15:13:22 img joins (~img@user/img)
15:14:46 michalz joins (~michalz@185.246.207.221)
15:15:33 alp joins (~alp@2001:861:8ca0:4940:e7c0:2b3f:562a:38cb)
15:18:04 × alfiee quits (alfiee@user/alfiee) (Ping timeout: 260 seconds)
15:18:29 _ht joins (~huub@62.250.52.179)
15:19:16 alfiee joins (~alfiee@user/alfiee)
15:20:56 × benjamin quits (~benjamin@2a03:4b80:a720:6e10:957c:a7eb:4e40:5d64) (Ping timeout: 244 seconds)
15:21:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
15:23:38 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 265 seconds)
15:26:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
15:28:58 × euleritian quits (~euleritia@dynamic-176-006-139-135.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
15:29:16 euleritian joins (~euleritia@77.23.250.232)
15:32:24 ljdarj joins (~Thunderbi@user/ljdarj)
15:34:44 × EvanR quits (~EvanR@user/evanr) (Read error: Connection reset by peer)
15:34:57 EvanR joins (~EvanR@user/evanr)
15:35:47 × euleritian quits (~euleritia@77.23.250.232) (Ping timeout: 252 seconds)
15:36:58 euleritian joins (~euleritia@dynamic-176-006-139-135.176.6.pool.telefonica.de)
15:37:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
15:38:36 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
15:41:36 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
15:43:09 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 244 seconds)
15:46:10 ljdarj1 joins (~Thunderbi@user/ljdarj)
15:46:11 × weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!)
15:50:12 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
15:50:13 ljdarj1 is now known as ljdarj
15:52:40 weary-traveler joins (~user@user/user363627)
15:52:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
15:53:06 Guest51 joins (~Guest51@36.73.33.179)
15:53:52 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
15:55:03 iNKa joins (~Java@188.119.54.147)
15:55:31 Guest51t joins (~Guest51t@36.73.33.179)
15:55:50 × iNKa quits (~Java@188.119.54.147) (Remote host closed the connection)
15:56:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
16:04:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
16:05:10 × Guest51t quits (~Guest51t@36.73.33.179) (Ping timeout: 240 seconds)
16:05:28 lisbeths joins (~user@c-174-164-24-226.hsd1.wa.comcast.net)
16:07:20 alfiee joins (~alfiee@user/alfiee)
16:07:40 × Guest51 quits (~Guest51@36.73.33.179) (Ping timeout: 240 seconds)
16:09:51 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
16:11:54 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 260 seconds)
16:20:14 pera joins (~pera@user/pera)
16:22:04 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
16:25:11 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
16:25:18 Maeda joins (~Maeda@91-161-10-149.subs.proxad.net)
16:25:37 ChaiTRex joins (~ChaiTRex@user/chaitrex)
16:26:02 × Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Client Quit)
16:26:38 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
16:34:54 × weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!)
16:39:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
16:41:00 weary-traveler joins (~user@user/user363627)
16:44:21 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
16:44:33 lxsameer joins (~lxsameer@Serene/lxsameer)
16:46:54 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
16:49:08 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 245 seconds)
16:51:05 L29Ah joins (~L29Ah@wikipedia/L29Ah)
16:52:00 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Read error: Connection reset by peer)
16:52:01 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
16:52:17 chexum joins (~quassel@gateway/tor-sasl/chexum)
16:52:24 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
16:54:40 vanishingideal joins (~vanishing@user/vanishingideal)
16:54:41 × AlexNoo quits (~AlexNoo@5.139.233.186) (Read error: Connection reset by peer)
16:54:58 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
16:54:59 AlexNoo joins (~AlexNoo@5.139.233.186)
16:55:44 alfiee joins (~alfiee@user/alfiee)
16:57:04 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
16:59:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
17:00:08 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
17:02:09 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
17:04:39 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
17:05:49 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
17:06:57 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
17:10:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
17:19:12 × pera quits (~pera@user/pera) (Ping timeout: 252 seconds)
17:19:28 pera joins (~pera@user/pera)
17:21:13 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
17:25:24 × alexherbo2 quits (~alexherbo@2a02-8440-3507-0847-08b4-4a7a-18fb-2194.rev.sfr.net) (Remote host closed the connection)
17:26:27 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
17:33:13 × tavare quits (~tavare@user/tavare) (Remote host closed the connection)
17:36:10 monochrm joins (trebla@216.138.220.146)
17:37:04 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
17:37:29 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 260 seconds)
17:37:29 monochrm is now known as monochrom
17:39:51 Digitteknohippie joins (~user@user/digit)
17:41:00 × Digit quits (~user@user/digit) (Ping timeout: 246 seconds)
17:41:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
17:44:29 alfiee joins (~alfiee@user/alfiee)
17:48:31 × pera quits (~pera@user/pera) (Quit: leaving)
17:48:42 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
17:52:26 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
17:52:39 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
17:54:21 vanishingideal joins (~vanishing@user/vanishingideal)
17:55:33 Digitteknohippie is now known as Digit
17:59:20 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
18:06:51 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:11:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
18:11:37 × euleritian quits (~euleritia@dynamic-176-006-139-135.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
18:11:48 euleritian joins (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
18:18:29 × lisbeths quits (~user@c-174-164-24-226.hsd1.wa.comcast.net) (Ping timeout: 248 seconds)
18:19:27 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
18:19:27 × fmira quits (~user@user/fmira) (Remote host closed the connection)
18:19:52 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
18:20:00 fmira joins (~user@user/fmira)
18:22:12 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:22:49 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:23:46 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
18:25:45 Lord_of_Life_ is now known as Lord_of_Life
18:26:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
18:32:34 alfiee joins (~alfiee@user/alfiee)
18:36:38 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 245 seconds)
18:37:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:44:00 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
18:54:46 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:58:18 notzmv joins (~umar@user/notzmv)
19:00:59 × tabemann_ quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Quit: Leaving)
19:04:03 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
19:04:33 × jle` quits (~jle`@2603:8001:3b02:84d4:a102:3812:c97b:44bc) (Ping timeout: 245 seconds)
19:07:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:10:26 ash3en joins (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207)
19:12:44 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
19:12:57 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:20:59 alfiee joins (~alfiee@user/alfiee)
19:23:13 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:25:06 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 248 seconds)
19:27:25 benjamin joins (~benjamin@2a03:4b80:a720:6e10:bd7:f45b:a039:ce10)
19:27:28 × benjamin quits (~benjamin@2a03:4b80:a720:6e10:bd7:f45b:a039:ce10) (Client Quit)
19:27:45 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
19:31:48 sprotte24 joins (~sprotte24@p200300d16f174a005425e35c82ecf678.dip0.t-ipconnect.de)
19:32:47 dsrt^ joins (~dsrt@108.192.66.114)
19:38:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:38:36 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 246 seconds)
19:45:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
19:50:11 ljdarj1 joins (~Thunderbi@user/ljdarj)
19:53:44 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
19:53:44 ljdarj1 is now known as ljdarj
19:56:37 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:00:04 × caconym quits (~caconym@user/caconym) (Quit: bye)
20:00:42 caconym joins (~caconym@user/caconym)
20:00:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
20:08:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:09:21 × dsrt^ quits (~dsrt@108.192.66.114) (Ping timeout: 248 seconds)
20:10:04 alfiee joins (~alfiee@user/alfiee)
20:10:44 ljdarj1 joins (~Thunderbi@user/ljdarj)
20:10:47 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
20:13:09 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
20:13:45 sonny joins (~sonny@bras-base-london140cw-grc-03-142-114-127-76.dsl.bell.ca)
20:14:06 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
20:14:18 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 246 seconds)
20:17:21 × ljdarj1 quits (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
20:19:49 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
20:21:33 vanishingideal joins (~vanishing@user/vanishingideal)
20:24:13 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:28:39 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
20:32:28 × eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 245 seconds)
20:39:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:42:03 × tabaqui1 quits (~root@87.200.129.102) (Ping timeout: 245 seconds)
20:44:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
20:47:42 Sgeo joins (~Sgeo@user/sgeo)
20:53:35 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
20:54:13 erdem joins (~erdem@user/erdem)
20:55:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:56:41 × ash3en quits (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
20:59:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
21:00:42 × Digit quits (~user@user/digit) (Read error: Connection reset by peer)
21:01:30 alfiee joins (~alfiee@user/alfiee)
21:01:56 × comonad quits (~comonad@p200300d027182d00bcfd40be9d94d2dc.dip0.t-ipconnect.de) (Quit: WeeChat 4.5.1)
21:02:03 comonad joins (~comonad@p200300d027182d00bcfd40be9d94d2dc.dip0.t-ipconnect.de)
21:06:16 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 272 seconds)
21:06:31 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:08:39 lisbeths joins (~user@c-174-164-24-226.hsd1.wa.comcast.net)
21:10:48 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
21:12:04 Digit joins (~user@user/digit)
21:13:16 ljdarj joins (~Thunderbi@user/ljdarj)
21:14:33 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 245 seconds)
21:19:33 ensyde joins (~ensyde@2601:5c6:c200:6dc0::2163)
21:20:09 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:21:54 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:24:26 × notzmv quits (~umar@user/notzmv) (Read error: Connection reset by peer)
21:27:03 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
21:29:39 monochrm joins (trebla@216.138.220.146)
21:30:28 eL_Bart0 joins (eL_Bart0@dietunichtguten.org)
21:31:36 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 272 seconds)
21:31:37 monochrm is now known as monochrom
21:32:48 sonny parts (~sonny@bras-base-london140cw-grc-03-142-114-127-76.dsl.bell.ca) ()
21:34:42 weary-traveler joins (~user@user/user363627)
21:34:53 infinity0 joins (~infinity0@pwned.gg)
21:37:18 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:38:48 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Quit: Lost terminal)
21:40:10 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
21:43:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
21:49:34 alfiee joins (~alfiee@user/alfiee)
21:49:54 × connrs quits (~connrs@user/connrs) (Quit: ZNC 1.9.1 - https://znc.in)
21:53:54 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 244 seconds)
21:55:21 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:56:48 connrs joins (~connrs@user/connrs)
21:59:42 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:06:16 × takuan quits (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection)
22:10:39 <sim590> I'm realizing that I need to use a concurrent access capable datatype for the state of my application in order to modify/read the state on different threads. At first I had a new type around `StateT MyState IO a`. So I think I can change it to `StateT (MVar MyState) IO a`. But I read on stackoverflow that for updating data, I should use TVar instead, but I don't see why. If I understand correctly,
22:10:41 <sim590> I can make sure to access properly the data by doing `takeMVar` when I need it and `putMVar` when I'm finished modifying it. I have the impression that it is equivalent to using stm's `modifyTVar`. Am I mistaken? Why should I really avoid using MVar over TVar ?
22:10:42 × hgolden quits (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
22:10:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:12:10 <sim590> Context: MyState contains a Map of values that either concurrently called callbacks are gonna possibly modify in addition to some user's call to a a function on the main thread that would explicitly modify the state.
22:12:15 <geekosaur> MVar requires you to make sure you do everything correctly, especially if you have multiple of them. TVar more or less handles this automatically, retrying transactions as needed. So it's less error-prone
22:13:52 hgolden joins (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363)
22:13:57 <sim590> Is it possible to not use it correctly? I saw readTVar, but also readTVarIO. I didn't see how I could put STM inside my newtype signature, so I was just thinking to use readTVarIO. Is that gonna play well with the features you just talked about for TVar ?
22:14:05 <Leary> sim590: If you make a mistake with MVar---and the bar for correctness here is much higher than it looks due to pitfalls of exception handling---your program will be bogged down in deadlocks that are quite difficult to debug.
22:14:12 <geekosaur> also I'd note that since you don't need to switch MVars, you probably want to use ReaderT instead of StateT
22:15:09 <sim590> geekosaur: oh right. I actually thought to something close to that reasoning. I relized I didn't read to write the state anymore.
22:15:19 <sim590> need to*
22:15:56 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
22:15:56 × connrs quits (~connrs@user/connrs) (Read error: Connection reset by peer)
22:16:15 <sim590> Leary: Right. So, if I don't want to risk that, I should use TVar.
22:16:36 <geekosaur> anyway you would use newTVarIO to get the TVar, then use atomically in IO to work with it
22:18:18 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 245 seconds)
22:18:36 <L29Ah> is there a dataset to benchmark LLM Haskell coding capability?
22:19:12 <sim590> OK. So, to resume, I would need to have my newtype as `ReaderT (TVar MyState) IO a` and I don't need to put STM anywhere in there. That's what was buggin gme.
22:20:13 vanishingideal joins (~vanishing@user/vanishingideal)
22:21:00 <geekosaur> right, when you want to use STM, you use `atomically` which runs an STM transaction and gives you back an IO action
22:21:59 <sim590> OK. That makes sense.
22:22:02 <sim590> Thanks!
22:22:16 <geekosaur> you don't want your STM transactions to be too big (and transactions can't be shared across threads for what I hope are obvious reasons) or they'll be more prone to deadlocking
22:22:30 <Leary> sim590: I suggest `newtype YourAppT f a = YourAppT (ReaderT (TVar YourState) f a)`, so you can instantiate `f` at either `IO` or `STM` as convenient. In particular, writing STM-only functions in `YourAppT STM` means you can compose them without loss of atomicity.
22:22:33 <geekosaur> so most stuff should be in IO and you dive into STM when needed
22:23:33 <sim590> Leary: right. I see!
22:23:52 <sim590> geekosaur: right. Got it.
22:24:44 <geekosaur> L29Ah, not that I'm aware of, just a lot of anecdata
22:24:53 <geekosaur> possibly someone should assemble one
22:25:07 <geekosaur> (I did try it once and it failed miserably)
22:25:16 <geekosaur> (it = chatgpt)
22:26:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:26:06 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich)
22:26:23 <geekosaur> (that said, what I asked for wasn't merely Haskell buit highly xmonad-specific which probably stacked the deck against it)
22:27:00 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
22:29:33 × lisbeths quits (~user@c-174-164-24-226.hsd1.wa.comcast.net) (Ping timeout: 245 seconds)
22:30:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:38:18 alfiee joins (~alfiee@user/alfiee)
22:41:28 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:42:36 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 252 seconds)
22:45:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:52:59 × michalz quits (~michalz@185.246.207.221) (Remote host closed the connection)
22:55:54 connrs joins (~connrs@user/connrs)
22:56:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:01:17 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
23:05:12 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
23:12:13 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:13:39 × olivial quits (~benjaminl@user/benjaminl) (Ping timeout: 276 seconds)
23:17:33 × harveypwca quits (~harveypwc@2601:246:d080:f6e0:34b5:bbb2:c6c:1ef6) (Quit: Leaving)
23:19:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
23:22:10 monochrm joins (trebla@216.138.220.146)
23:22:55 olivial joins (~benjaminl@user/benjaminl)
23:24:00 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 246 seconds)
23:24:00 monochrm is now known as monochrom
23:27:02 alfiee joins (~alfiee@user/alfiee)
23:30:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:31:38 × dispater quits (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
23:31:51 × alfiee quits (~alfiee@user/alfiee) (Ping timeout: 276 seconds)
23:32:23 dispater joins (~dispater@mail.brprice.uk)
23:35:06 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
23:41:03 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:41:18 <sim590> geekosaur: it doesn't seem like it's possible to block access to a TVar while doing an IO action. All I can do is STM action and STM is not MonadIO. Am I correct?
23:42:05 <geekosaur> correct and deliberately so. how do you retry an IO action?
23:48:33 × yushyin quits (CinQEuz8mT@mail.karif.server-speed.net) (Ping timeout: 248 seconds)
23:48:34 × s4msung quits (wBrkYH9KHh@user/s4msung) (Ping timeout: 248 seconds)
23:50:06 <sim590> geekosaur: Yeah, I understand. But, then, if I'm not mistaken, that is something I could be doing with MVars though?
23:50:52 s4msung joins (DQyKc40dMf@user/s4msung)
23:51:06 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:51:07 tabemann joins (~tabemann@8.9.45.41)
23:52:28 <EvanR> anything you can do with an MVar you can do with a TVar (Maybe a)
23:52:34 <geekosaur> oh yes, it'll happily let you make a mess
23:52:35 <Leary> sim590: You can't ever block access to a `TVar`. You instead hide inconsistent states within atomic transactions, so you don't need to.
23:52:49 × alp quits (~alp@2001:861:8ca0:4940:e7c0:2b3f:562a:38cb) (Ping timeout: 248 seconds)
23:53:01 <geekosaur> but if that's really what you want to do, just use an IORef
23:53:46 <EvanR> it's just that you generally can't do IO in the middle of a transaction
23:54:20 <EvanR> but there's a "trust me" trap door for that in which all bets are off if your I/O matters
23:55:24 <sim590> OK. I'll try to inflate my brain so I can do what I need only using TVars. Up to now, I think I can do it.
23:55:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
23:55:41 <geekosaur> that, or you have a very wrong model of concurrent access which you will need to figure out before this will work with either

All times are in UTC on 2025-02-01.