2025/04/09

2025-04-09 00:00:04 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2025-04-09 00:00:13 +0200Googulator(~Googulato@2a01-036d-0106-211a-f46d-c0c9-579b-1a24.pool6.digikabel.hu)
2025-04-09 00:00:42 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-04-09 00:00:42 +0200ljdarj1ljdarj
2025-04-09 00:00:46 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-04-09 00:02:02 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-04-09 00:02:45 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-04-09 00:03:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 00:06:00 +0200thuna`(~thuna`@user/thuna/x-1480069) thuna`
2025-04-09 00:06:06 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2025-04-09 00:08:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-09 00:12:32 +0200emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-04-09 00:15:27 +0200c_wraith(~c_wraith@adjoint.us) (Ping timeout: 252 seconds)
2025-04-09 00:17:06 +0200Hecate(~mariposa@user/hecate) (Ping timeout: 272 seconds)
2025-04-09 00:17:38 +0200Hecate(~mariposa@user/hecate) Hecate
2025-04-09 00:18:59 +0200tabaqui(~tabaqui@167.71.80.236) (Ping timeout: 260 seconds)
2025-04-09 00:19:43 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 00:20:14 +0200c_wraith(~c_wraith@adjoint.us) c_wraith
2025-04-09 00:22:23 +0200tromp(~textual@2001:1c00:3487:1b00:e513:bc03:349e:ac26) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-04-09 00:27:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-09 00:31:02 +0200califax(~califax@user/califx) (Remote host closed the connection)
2025-04-09 00:31:21 +0200califax(~califax@user/califx) califx
2025-04-09 00:37:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 00:42:14 +0200Feuermagier(~Feuermagi@user/feuermagier) Feuermagier
2025-04-09 00:42:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 00:42:29 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2025-04-09 00:43:07 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2025-04-09 00:46:42 +0200 <EvanR> monochrom, if this were a free monad, then uh for all other monads there would be a unique monad morphism something or other from Check to it?
2025-04-09 00:46:53 +0200 <EvanR> such that
2025-04-09 00:46:59 +0200 <EvanR> some diagram xD
2025-04-09 00:49:34 +0200thuna`(~thuna`@user/thuna/x-1480069) (Ping timeout: 252 seconds)
2025-04-09 00:51:27 +0200sprout(~sprout@84-80-106-227.fixed.kpn.net) (Ping timeout: 265 seconds)
2025-04-09 00:53:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 00:53:33 +0200 <EvanR> I lied, every other monad for this functor, which would be like ...
2025-04-09 00:54:03 +0200sprotte24(~sprotte24@p200300d16f06b600a14bd9dc58a29dc6.dip0.t-ipconnect.de) (Quit: Leaving)
2025-04-09 00:58:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-09 01:00:17 +0200 <EvanR> I lied that was the beginning of a universal property not a free thing
2025-04-09 01:02:21 +0200 <monochrom> Your monad is Free C, where C is defined by "data C r = G (Int -> r) | F String".
2025-04-09 01:03:03 +0200prolic_(~sasa@181.122.135.9) (Ping timeout: 246 seconds)
2025-04-09 01:04:28 +0200 <monochrom> There is a definition of free monad in terms of "left adjoint of the forgetful functor for monads" but I haven't really studied that.
2025-04-09 01:04:46 +0200weary-traveler(~user@user/user363627) user363627
2025-04-09 01:05:24 +0200 <monochrom> More precisely, Check is Free C. This is ignoring the special thing done by runCheck.
2025-04-09 01:05:42 +0200 <monochrom> (to the Int part)
2025-04-09 01:07:29 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 01:07:34 +0200 <EvanR> turns out there is a connection between the free forgetful adjoint functors on one hand and initial algebras, which satisfy a universal property I think. If you just throw adjoint and universal at the wall you get a categorical theorem right
2025-04-09 01:07:53 +0200 <monochrom> But here is the universal property you're looking for. Suppose a certain monad M supports two additional operations: gennum :: M Int, fail :: String -> M a. Then there is a unique monad morphism from Check to M.
2025-04-09 01:08:08 +0200 <EvanR> such that
2025-04-09 01:08:14 +0200 <EvanR> something factors through
2025-04-09 01:09:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 01:11:41 +0200 <monochrom> Yeah it's an initial object in the category of monads like M.
2025-04-09 01:12:26 +0200 <monochrom> I think you can go further for initial algebra if you're also into algebraic effects.
2025-04-09 01:13:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 01:16:33 +0200 <EvanR> ok but, the runCheck function which interprets the Check program in a certain way
2025-04-09 01:17:50 +0200 <EvanR> is that specializing anything or orthogonal to the narrative
2025-04-09 01:18:07 +0200 <monochrom> It is specializing.
2025-04-09 01:18:15 +0200 <EvanR> would you not need it if you define the monad instance some other way
2025-04-09 01:18:48 +0200 <monochrom> You are factoring a supply monad into a free monad plus an interpreter that kills the freeness.
2025-04-09 01:19:55 +0200 <monochrom> Most useful monads are not free, but it is also useful to factor them into free monads and interpreters.
2025-04-09 01:20:03 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-09 01:20:14 +0200_xor(~xor@ip-66-42-132-175.dynamic.fuse.net) (Read error: Connection reset by peer)
2025-04-09 01:20:33 +0200 <EvanR> trying to see how you would unfree it just by changing the monad instance
2025-04-09 01:21:34 +0200 <haskellbridge> <Bowuigi> EvanR the factoring thing is "such that this unique morphism respects the Monad + M laws" IIRC
2025-04-09 01:21:50 +0200 <monochrom> Or equivalently, in algebraic effects, factor into a free algebra and a handler.
2025-04-09 01:22:49 +0200_xor(~xor@ip-66-42-132-175.dynamic.fuse.net) _xor
2025-04-09 01:22:58 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-04-09 01:24:15 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 01:25:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 01:25:17 +0200 <EvanR> a monad morphism automatically respects monad laws... but...
2025-04-09 01:25:39 +0200 <haskellbridge> <Bowuigi> A nice corollary is that you can integrate any monad into an effect system that uses free monads and interpreters (which are a lot)
2025-04-09 01:25:41 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 268 seconds)
2025-04-09 01:25:41 +0200ljdarj1ljdarj
2025-04-09 01:26:10 +0200 <monochrom> You can change to the Int->Either String (a,Int) monad and don't give users direct access, give them only "genNum = \s -> Right (s, s+1)" and "fail msg = \s -> Left msg".
2025-04-09 01:27:17 +0200 <monochrom> That would be very unfree, and even more specialized than Int->Either String (a,Int).
2025-04-09 01:27:28 +0200 <haskellbridge> <Bowuigi> EvanR yeah that's why I said morphism instead of monad morphism, to emphasize that it respects both the monad laws AND the M/Check/whatever laws
2025-04-09 01:29:55 +0200 <emojelly> I wonder if I can (and should) rewrite my Coroutine-using framework with Pipes.
2025-04-09 01:30:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-09 01:31:07 +0200tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2025-04-09 01:31:15 +0200 <emojelly> The pattern I have (and I wonder whether there's a name for it): I have a monad which both yields and awaits a value (types between input and output can differ), which feed into and feed back from another component, in my specific case a circuit.
2025-04-09 01:32:42 +0200 <haskellbridge> <Bowuigi> You are describing Arrow and ArrowLoop, see if those abstractions make your program clearer first
2025-04-09 01:32:55 +0200 <emojelly> So each monadic action gives (yields) input to the circuit, and returns (awaits) the output of the circuit.
2025-04-09 01:33:18 +0200 <emojelly> I've used Arrows before, for CPU emulation, but that was an entirely different use case... wonder if Arrows can help here.
2025-04-09 01:33:39 +0200 <emojelly> Monads seem to work fine?
2025-04-09 01:33:53 +0200 <haskellbridge> <Bowuigi> If it is a monad it likely also supports ArrowApply too
2025-04-09 01:34:19 +0200 <emojelly> My use case for CPU emulation was that I could do different things for "running" emulated instructions vs. "analyzing" them.
2025-04-09 01:34:36 +0200 <haskellbridge> <Bowuigi> Why do you want to rewrite it if it works fine? Learning? Speed? Clarity?
2025-04-09 01:34:42 +0200 <emojelly> It would be speed
2025-04-09 01:35:18 +0200 <emojelly> I don't know if you followed the drama (technical drama, not human drama) yesterday, but my Coroutine-implementation is insanely slow for some reason, and profiling is not helping at all unfortunately.
2025-04-09 01:35:59 +0200 <emojelly> It's pathologically slow. It looks like some accidental O(n^2) thing maybe, or something else... but I wasn't able to suss out what's taking so long in *any* way
2025-04-09 01:36:54 +0200 <emojelly> only that for some reason a simple test is churning through 70GB/s of allocations for a relatively simple test, but it's not leaking it, so heap profiling didn't help either.
2025-04-09 01:37:18 +0200 <haskellbridge> <Bowuigi> According to their own benchmarks, streamly is way faster than pipes, maybe try that?
2025-04-09 01:37:34 +0200 <emojelly> I really like the Coroutines approach, but if pipes or something else helps...
2025-04-09 01:37:45 +0200 <emojelly> I've looked at streamly, but I'm not sure it's better suited than pipes?
2025-04-09 01:40:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 01:41:14 +0200 <emojelly> Pipes seems centered around yield/await that I need here, while streamly, ironically, looks more like unix pipes
2025-04-09 01:41:22 +0200 <emojelly> but that's only after a very, very cursory look, so I might be wrong
2025-04-09 01:42:35 +0200 <haskellbridge> <Bowuigi> I see
2025-04-09 01:43:03 +0200 <haskellbridge> <Bowuigi> Do you have a repo link?
2025-04-09 01:43:09 +0200 <emojelly> Not yet, no
2025-04-09 01:43:17 +0200 <emojelly> I will!
2025-04-09 01:43:52 +0200jespada(~jespada@r167-61-127-49.dialup.adsl.anteldata.net.uy) (Ping timeout: 272 seconds)
2025-04-09 01:45:13 +0200 <haskellbridge> <Bowuigi> Just to make sure, did you check for space leaks and other laziness pitfalls? You probably did but just to make sure
2025-04-09 01:45:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 01:45:42 +0200 <haskellbridge> <Bowuigi> For concurrency you have that actions may not run on the thread you wanted
2025-04-09 01:46:21 +0200 <emojelly> I did. The heap is growing to an "okay" 40MB before gc brings it back down. Meanwhile, the *total* allocations are upwards of 70GB, with the program churning through 5-8GB/s for... nothing. But apparently those allocations are very short lived, because they don't really show up in the heap profile other than in those total statistics.
2025-04-09 01:46:23 +0200jespada(~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) jespada
2025-04-09 01:46:31 +0200 <emojelly> There is no concurrency!
2025-04-09 01:47:24 +0200 <geekosaur> most allocations are in the nursery (very fast) and most of those will disappear when it's GCd (anything still referenced moves to gen1, then the pointer is reset to the base of the nursery)
2025-04-09 01:48:37 +0200 <emojelly> and the time profiling is (as far as I can tell myself) completely useless. The majority of the time is spent "in" this function, that's the full thing: "combineTestSignals = combineTestSignals (,)". Not in any of its children, this is not "inherited" time. No, profiling tells me *this* is where all CPU time goes.
2025-04-09 01:48:56 +0200 <emojelly> sorry, it's "combineTestSignals = combineTestSignals' ()", missed the ' there
2025-04-09 01:49:00 +0200 <emojelly> sigh
2025-04-09 01:49:08 +0200 <emojelly> combineTestSignals = combineTestSignals' (,)
2025-04-09 01:49:10 +0200 <emojelly> now it's right
2025-04-09 01:49:34 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2025-04-09 01:49:46 +0200 <emojelly> geekosaur: I wish there was a way to tell me what allocations were in the nursery, i.e. what type, who produced them... maybe that would give me one hint of what's wrong...
2025-04-09 01:50:49 +0200 <geekosaur> I think there's a heap visualizer somewhere, but I'm not sure if it also handles the nursery or if it's only gen1+
2025-04-09 01:51:12 +0200 <emojelly> Do you mean the heap visualizer that is processing the event log through HTML? That's what I used, yeah
2025-04-09 01:51:16 +0200 <geekosaur> https://hackage.haskell.org/package/ghc-heap-view
2025-04-09 01:51:19 +0200 <emojelly> ah
2025-04-09 01:51:32 +0200 <emojelly> this seems different
2025-04-09 01:52:32 +0200 <emojelly> But it might still not help. If I stop the program at any point, there's probably not a lot of allocations live. It seems the program does not *retain* an extreme amount of allocations for long, it just *churns* through them
2025-04-09 01:52:44 +0200 <geekosaur> weirdly, it claims to only support ghc 8.8, but it was last updated at the beginning of this year
2025-04-09 01:52:59 +0200 <emojelly> This results in total statistics of "74GB total allocations" while the heap profile looks fine, otherwise.
2025-04-09 01:53:37 +0200potatoespotatoes(~quassel@user/potatoespotatoes) ()
2025-04-09 01:54:34 +0200 <emojelly> All in all, I don't think I have a space leak (or maybe just a "very local one"), it's just that the allocations *might* help me understand why "combineTestSignals = combineTestSignals' (,)" takes an extreme amount of time entirely *by itself*. I.e. all its children in the profiling tree spend much less, it doesn't sum up.
2025-04-09 01:54:49 +0200potatoespotatoes(~quassel@130.44.147.204)
2025-04-09 01:54:49 +0200potatoespotatoes(~quassel@130.44.147.204) (Changing host)
2025-04-09 01:54:49 +0200potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-09 01:55:06 +0200 <emojelly> one thing I've done is actually using the OS to sample the process
2025-04-09 01:55:19 +0200 <emojelly> which gave me weird symbols, which I can look up in the GHC Core file that is generated
2025-04-09 01:55:56 +0200 <emojelly> so far however I find the Core code very hard to understand, and knowing which executable symbol the system spends most time in did not really help me much in knowing why.
2025-04-09 01:56:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 01:56:44 +0200 <emojelly> But in theory, it's better than "all the time in nonsensically spent in this function which literally just applies another function, and nothing else"
2025-04-09 01:57:22 +0200 <emojelly> by the way, if I remove that function and directly type "combineTestSignals' (,) ..." in the caller, the "lost" time predictably just wanders to the caller.
2025-04-09 01:57:46 +0200 <emojelly> I thought I understood laziness and thunks, but this expression does nothing. It does not force any evaluation or anything.
2025-04-09 01:58:14 +0200 <geekosaur> that really sounds to me like something is getting forced in `combineTestSignals` or whatever else consumes the result of `combineTestSignals'`
2025-04-09 01:58:25 +0200 <geekosaur> but yeh, I don't see why
2025-04-09 01:58:43 +0200 <emojelly> Yeah. And, sure, something will eventually force it. But the point of profiling is to tell me where the actual work is happening, no?
2025-04-09 01:59:13 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-04-09 01:59:22 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 01:59:54 +0200acidjnk_new3(~acidjnk@p200300d6e71c4f631cbaa9c9535aaf6d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2025-04-09 02:00:25 +0200 <emojelly> Like if I write a fib function... then it will return a thunk (for discussion's sake). Now that thunk might get evaluated somewhere else entirely, but usually at least time profiling will still tell me that fib is the function to which the work is attributed, no?
2025-04-09 02:00:47 +0200 <emojelly> At least that's how I understood it to work. The documentation literally says it's saving away the *call* stack, not the evaluation stack (if that's the right word).
2025-04-09 02:02:23 +0200 <geekosaur> right, which means it ought to attribute things to where they're generated, not where they're forced
2025-04-09 02:02:36 +0200 <emojelly> And the kicker is that the entire combineTestSignals' only merges two Coroutines together, which means replacing the continuation with a new continuation that calls the continuations of both coroutines and pastes them together.
2025-04-09 02:02:42 +0200 <emojelly> Apart from that it's a whole lot of wrapping and unwrapping.
2025-04-09 02:03:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 02:03:33 +0200jespada(~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) (Ping timeout: 252 seconds)
2025-04-09 02:03:41 +0200 <emojelly> geekosaur: exactly, which makes this case so weird, because: a) nothing gets forced in "combineTestSignals' (,)" itself, I think, but b) even if it would it certainly didn't come from that expression
2025-04-09 02:08:01 +0200sprout(~sprout@2a02-a448-3a80-0-c61c-b515-5509-58e7.fixed6.kpn.net)
2025-04-09 02:09:00 +0200 <haskellbridge> <Bowuigi> emojelly did you disable optimization for the profiling build? That shouldn't allocate too much
2025-04-09 02:09:14 +0200 <haskellbridge> <Bowuigi> Either that or it's weird CAF shenanigans
2025-04-09 02:09:31 +0200hgolden_(~hgolden@syn-172-251-233-141.res.spectrum.com) hgolden
2025-04-09 02:09:58 +0200potatoespotatoes(~quassel@user/potatoespotatoes) ()
2025-04-09 02:10:07 +0200hgolden_(~hgolden@syn-172-251-233-141.res.spectrum.com) (Remote host closed the connection)
2025-04-09 02:11:37 +0200 <haskellbridge> <Bowuigi> If you don't want to disable optimization, make sure that GHC doesn't inline combineTestSignals'
2025-04-09 02:11:38 +0200 <geekosaur> with prof-late optimization shouldn't matter
2025-04-09 02:12:00 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:d5a9:8f67:3cb9:6399) (Ping timeout: 246 seconds)
2025-04-09 02:12:20 +0200 <statusbot> Maintenance update: hackage is going down for migration. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/67f5bb13d9e59f092626b642
2025-04-09 02:12:52 +0200potatoespotatoes(~quassel@130.44.147.204)
2025-04-09 02:12:52 +0200potatoespotatoes(~quassel@130.44.147.204) (Changing host)
2025-04-09 02:12:52 +0200potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-09 02:12:59 +0200potatoespotatoes(~quassel@user/potatoespotatoes) (Client Quit)
2025-04-09 02:13:24 +0200potatoespotatoes(~quassel@130.44.147.204)
2025-04-09 02:13:24 +0200potatoespotatoes(~quassel@130.44.147.204) (Changing host)
2025-04-09 02:13:24 +0200potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-09 02:13:31 +0200potatoespotatoes(~quassel@user/potatoespotatoes) (Client Quit)
2025-04-09 02:13:56 +0200potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-09 02:14:43 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 02:16:11 +0200 <emojelly> haskellbridge: I tried everything. Disabling optimization, enabling optimization, various profiling settings, switching between GHC 9.8 and 9.10...
2025-04-09 02:16:47 +0200 <emojelly> it is entirely possible that the problem is maybe in Clash, which I have practically no insight into, but if, profiling is just not telling me anything.
2025-04-09 02:17:02 +0200ystael(~ystael@user/ystael) (Ping timeout: 244 seconds)
2025-04-09 02:17:20 +0200 <emojelly> (system process sampling and looking up the funky generated symbol name in the Core code seems to rather suggest it's in my code at first glance, though.)
2025-04-09 02:18:00 +0200 <emojelly> have to run.
2025-04-09 02:19:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-09 02:19:58 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2025-04-09 02:20:53 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-09 02:22:17 +0200Inst(~Inst@user/Inst) Inst
2025-04-09 02:26:44 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2025-04-09 02:27:11 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-04-09 02:30:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 02:32:43 +0200califax(~califax@user/califx) (Remote host closed the connection)
2025-04-09 02:34:25 +0200califax(~califax@user/califx) califx
2025-04-09 02:34:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 02:37:13 +0200gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 268 seconds)
2025-04-09 02:39:09 +0200gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) gabriel_sevecek
2025-04-09 02:40:11 +0200inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-09 02:43:09 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 246 seconds)
2025-04-09 02:45:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 02:50:18 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-04-09 02:51:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 02:54:34 +0200 <EvanR> dude why are you talking to a bridge
2025-04-09 02:55:43 +0200 <geekosaur> because many IRC clients autocomplete to the last speaker on a bare tab, which will get the bridge
2025-04-09 02:55:45 +0200xff0x(~xff0x@2405:6580:b080:900:c071:5032:6468:f840) (Ping timeout: 248 seconds)
2025-04-09 02:57:26 +0200 <emojelly> Ah, no. Because my irc client front end has a bug right now that swallows stuff in angle brackets, brackets included. I didn’t realize there was a name there…
2025-04-09 02:57:54 +0200 <EvanR> oof
2025-04-09 02:57:55 +0200 <emojelly> I *did* wonder, but I figured maybe this bridge is only used by a single user. :’)
2025-04-09 02:58:52 +0200 <haskellbridge> <Liamzee> geekosaur maintains a bridge between some haskell rooms and matrix
2025-04-09 02:58:57 +0200 <geekosaur> I want to move the bridge to something that does puppeting, but I need to get it off my personal box and that's waiting on the HF
2025-04-09 02:59:22 +0200otto_s(~user@p5b044d5e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-04-09 02:59:44 +0200 <geekosaur> (it works best with IPv6 but my provider's in the 20th century still)
2025-04-09 03:01:19 +0200otto_s(~user@p4ff27c58.dip0.t-ipconnect.de)
2025-04-09 03:01:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 03:03:02 +0200cptaffe(~cptaffe@user/cptaffe) cptaffe
2025-04-09 03:06:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 03:06:47 +0200 <EvanR> I dunno, this IPv6 stuff is probably just a fad
2025-04-09 03:06:52 +0200 <EvanR> like unicode
2025-04-09 03:07:13 +0200 <jackdk> emojelly: some kind of HTML sanitising?
2025-04-09 03:07:38 +0200 <EvanR> third rate back alley HTML sanitizing
2025-04-09 03:07:58 +0200 <haskellbridge> <Bowuigi> That shouldn't remove tags, just replace them with their &-codes
2025-04-09 03:09:15 +0200 <geekosaur> that's certainly how I've always done it
2025-04-09 03:11:49 +0200 <mauke> Bowuigi: that would be HTML escaping, not sanitizing
2025-04-09 03:12:49 +0200 <geekosaur> .oO{ so you're saying sanitizing isn't sane? )
2025-04-09 03:13:47 +0200 <mauke> exactly
2025-04-09 03:14:17 +0200 <haskellbridge> <Bowuigi> It should just remove stuff on a blocklist and escape the unknowns
2025-04-09 03:14:22 +0200 <mauke> "sanitizing" = mangling your inputs to remove all the "harmful" parts
2025-04-09 03:14:49 +0200 <haskellbridge> <Bowuigi> That's the sanest option, given it removes possibly harmful stuff and keeps the rest
2025-04-09 03:15:37 +0200 <haskellbridge> <Bowuigi> Unless my alias is potentially harmful, which it might be for my career but not for anyone else
2025-04-09 03:17:27 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 03:19:37 +0200 <EvanR> sanitize :: String -> String
2025-04-09 03:19:41 +0200 <EvanR> sanitize _ = ""
2025-04-09 03:20:42 +0200weary-traveler(~user@user/user363627) user363627
2025-04-09 03:21:57 +0200 <jackdk> No output, no vulnerability
2025-04-09 03:22:09 +0200 <jackdk> And with lazy evaluation it doesn't even consider the input!
2025-04-09 03:22:28 +0200XZDX(~xzdx@2601:404:ce00:4e51:214:51ff:fe2b:e82e) (Remote host closed the connection)
2025-04-09 03:22:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 03:28:54 +0200 <haskellbridge> <Liamzee> the empty string is technically output
2025-04-09 03:29:49 +0200 <haskellbridge> <Liamzee> i wonder what the safety of outputting bottom would be, though
2025-04-09 03:33:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 03:33:31 +0200prolic_(~sasa@181.122.135.9) prolic_
2025-04-09 03:36:02 +0200 <EvanR> perfectly safe. Just ignore the existence of bottom
2025-04-09 03:37:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-09 03:44:32 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-04-09 03:49:03 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 03:52:51 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 03:53:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-04-09 03:59:12 +0200 <statusbot> Maintenance update: hackage server is operational again! -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/67f5bb13d9e59f092626b642
2025-04-09 03:59:18 +0200 <haskellbridge> <Liamzee> yay
2025-04-09 03:59:27 +0200 <haskellbridge> <Liamzee> thanks @sclv etc
2025-04-09 03:59:38 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e)
2025-04-09 03:59:46 +0200notdabs(~Owner@2600:1700:69cf:9000:1d8b:380b:ab0b:1fbd) (Read error: Connection reset by peer)
2025-04-09 04:02:57 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 246 seconds)
2025-04-09 04:03:37 +0200qyrhx(~qyrhx@user/qyrhx) qyrhx
2025-04-09 04:04:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 04:05:04 +0200jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.6.0)
2025-04-09 04:05:05 +0200jmcantrell_jmcantrell
2025-04-09 04:08:06 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-09 04:08:47 +0200__jmcantrell__(~weechat@user/jmcantrell) jmcantrell
2025-04-09 04:08:49 +0200qyrhx(~qyrhx@user/qyrhx) (Quit: WeeChat 4.6.0)
2025-04-09 04:09:36 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-04-09 04:10:28 +0200jmcantrell(644f1bed9a@user/jmcantrell) (Killed (tungsten.libera.chat (Nickname regained by services)))
2025-04-09 04:10:28 +0200__jmcantrell__jmcantrell
2025-04-09 04:10:37 +0200jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2025-04-09 04:15:40 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer)
2025-04-09 04:16:13 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-09 04:17:26 +0200ezzieygu1wuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-09 04:17:58 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer)
2025-04-09 04:20:38 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 04:23:41 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-09 04:24:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 04:26:59 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2025-04-09 04:27:22 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 04:28:34 +0200euphores(~SASL_euph@user/euphores) (Ping timeout: 244 seconds)
2025-04-09 04:33:36 +0200bramh(~bramh@user/bramh) (Quit: Ping timeout (120 seconds))
2025-04-09 04:33:50 +0200bramh(~bramh@user/bramh) bramh
2025-04-09 04:36:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 04:36:26 +0200euphores(~SASL_euph@user/euphores) euphores
2025-04-09 04:36:37 +0200Inst(~Inst@user/Inst) (Ping timeout: 248 seconds)
2025-04-09 04:36:49 +0200 <emojelly> jackdk: I think it’s HTML sanitizing gone wrong, because I didn’t have this problem with an earlier version of the front end.
2025-04-09 04:37:59 +0200 <monochrom> Moar general: sanitize :: a -> [b]; sanitize _ = []
2025-04-09 04:38:52 +0200 <monochrom> Or maybe you prefer this other generalization direction? sanitize :: Istring b => a -> b; sanitize _ = ""
2025-04-09 04:40:27 +0200prolic_(~sasa@181.122.135.9) (Ping timeout: 244 seconds)
2025-04-09 04:40:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-09 04:40:56 +0200 <EvanR> give me the most general generalization
2025-04-09 04:42:10 +0200 <geekosaur> const []
2025-04-09 04:42:18 +0200 <monochrom> sanitize :: forall a b c. IsString c => a -> ([b], c); sanitize _ = ([], "")
2025-04-09 04:46:41 +0200 <haskellbridge> <Bowuigi> sanitize _ = mempty
2025-04-09 04:47:19 +0200 <haskellbridge> <Bowuigi> Pointed sets would be more general, but it has to have this meaning of "nothing but something"
2025-04-09 04:49:02 +0200 <monochrom> Like this? sanitize :: a -> Maybe b; sanitize _ = Nothing
2025-04-09 04:51:10 +0200 <monochrom> OK mempty is nicer.
2025-04-09 04:51:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 04:52:16 +0200EvanR(~EvanR@user/evanr) (Ping timeout: 268 seconds)
2025-04-09 04:55:42 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-04-09 04:56:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-09 04:57:20 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Max SendQ exceeded)
2025-04-09 04:57:43 +0200 <mauke> sanitize :: a -> ()
2025-04-09 04:58:02 +0200 <monochrom> :)
2025-04-09 04:58:54 +0200 <monochrom> That's brilliant. The terminal object ought to be the most general. :)
2025-04-09 05:00:07 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-04-09 05:01:19 +0200EvanR(~EvanR@user/evanr) EvanR
2025-04-09 05:04:44 +0200 <jackdk> What they don't tell you is that `sanitise` uses `acme-smuggler` under the hood
2025-04-09 05:07:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 05:09:17 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 05:10:04 +0200 <haskellbridge> <Liamzee> is everything okay with your issue, emojelly? I probably can't be of help, but just hoping you fixed your problem
2025-04-09 05:10:50 +0200 <haskellbridge> <Liamzee> and sorry for the jokes (but you might actually want to shift the sanitize function to () and see how the profiler goes)
2025-04-09 05:13:15 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-09 05:21:18 +0200Square2(~Square@user/square) Square
2025-04-09 05:23:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 05:25:18 +0200Square(~Square4@user/square) (Ping timeout: 252 seconds)
2025-04-09 05:27:12 +0200spew(~spew@135.233.119.40) (Remote host closed the connection)
2025-04-09 05:27:58 +0200spew(~spew@135.233.119.40) spew
2025-04-09 05:28:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 05:28:41 +0200spew(~spew@135.233.119.40) (Remote host closed the connection)
2025-04-09 05:29:04 +0200spew(~spew@135.233.119.40) spew
2025-04-09 05:32:05 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-04-09 05:39:05 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 05:43:45 +0200michalz(~michalz@185.246.207.200)
2025-04-09 05:44:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 05:49:25 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-04-09 05:54:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 05:59:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-09 06:10:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 06:16:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-09 06:22:01 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-09 06:25:10 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 06:26:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 06:26:51 +0200tavare(~tavare@150.129.88.189)
2025-04-09 06:26:51 +0200tavare(~tavare@150.129.88.189) (Changing host)
2025-04-09 06:26:51 +0200tavare(~tavare@user/tavare) tavare
2025-04-09 06:29:28 +0200Square2(~Square@user/square) (Ping timeout: 244 seconds)
2025-04-09 06:31:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 06:41:51 +0200thuna`(~thuna`@user/thuna/x-1480069) thuna`
2025-04-09 06:42:11 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 06:42:50 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-09 06:46:00 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 06:47:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-09 06:57:56 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 06:58:03 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
2025-04-09 07:01:19 +0200JuanDaughertyColinRobinson
2025-04-09 07:02:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-09 07:05:38 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Quit: Hi, this is Paul Allen. I'm being called away to London for a few days. Meredith, I'll call you when I get back. Hasta la vista, baby.)
2025-04-09 07:06:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 07:11:33 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-04-09 07:11:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-09 07:11:59 +0200esph(~weechat@user/esph) esph
2025-04-09 07:12:26 +0200sayurc(~sayurc@169.150.203.34) sayurc
2025-04-09 07:12:48 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 265 seconds)
2025-04-09 07:19:58 +0200j1n37-(~j1n37@user/j1n37) j1n37
2025-04-09 07:20:00 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 246 seconds)
2025-04-09 07:22:27 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 07:24:33 +0200thuna`(~thuna`@user/thuna/x-1480069) (Ping timeout: 246 seconds)
2025-04-09 07:27:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 07:28:40 +0200Inst(~Inst@user/Inst) Inst
2025-04-09 07:29:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 07:34:33 +0200tavare(~tavare@user/tavare) (Remote host closed the connection)
2025-04-09 07:34:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 07:46:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 07:50:45 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 07:53:59 +0200Natch(~natch@c-92-34-7-158.bbcust.telenor.se) (Ping timeout: 260 seconds)
2025-04-09 07:54:14 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 07:55:23 +0200Natch(~natch@c-92-34-7-158.bbcust.telenor.se)
2025-04-09 08:01:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 08:06:15 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 08:06:25 +0200thuna`(~thuna`@user/thuna/x-1480069) thuna`
2025-04-09 08:06:57 +0200jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.6.0)
2025-04-09 08:06:57 +0200jmcantrell_jmcantrell
2025-04-09 08:18:06 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e) (Remote host closed the connection)
2025-04-09 08:29:19 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
2025-04-09 08:29:57 +0200ColinRobinsonJuanDaugherty
2025-04-09 08:32:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 08:38:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-09 08:40:03 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-04-09 08:42:22 +0200ft(~ft@p508db463.dip0.t-ipconnect.de) (Quit: leaving)
2025-04-09 08:48:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 08:51:56 +0200fp(~Thunderbi@2001:708:20:1406::1370) fp
2025-04-09 08:53:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-09 08:57:54 +0200fantom(~fantom@2.219.56.221) (Quit: Connection error?!)
2025-04-09 08:58:21 +0200sayurc(~sayurc@169.150.203.34) (Quit: Konversation terminated!)
2025-04-09 09:00:01 +0200caconym(~caconym@user/caconym) (Quit: bye)
2025-04-09 09:00:57 +0200caconym(~caconym@user/caconym) caconym
2025-04-09 09:01:50 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-04-09 09:03:07 +0200JuanDaughertyColinRobinson
2025-04-09 09:03:22 +0200fantom(~fantom@2.219.56.221)
2025-04-09 09:03:40 +0200polyphem(~rod@p4fc2cdf8.dip0.t-ipconnect.de) polyphem
2025-04-09 09:04:08 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 09:06:54 +0200sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-04-09 09:08:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 09:17:06 +0200jco(~jco@78-70-217-44-no600.tbcn.telia.com) jco
2025-04-09 09:18:00 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2025-04-09 09:18:12 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-04-09 09:18:45 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2025-04-09 09:18:50 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-04-09 09:25:51 +0200 <[exa]> is there any good way to build stuff with accelerate-llvm-native without stack now? I was trying to somewhat revive the docker container but it fails (llvm 15 not available etc)
2025-04-09 09:26:18 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2025-04-09 09:34:49 +0200acidjnk_new3(~acidjnk@p200300d6e71c4f99589ab59c7ee4b7ea.dip0.t-ipconnect.de) acidjnk
2025-04-09 09:37:08 +0200__monty__(~toonn@user/toonn) toonn
2025-04-09 09:37:12 +0200califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2025-04-09 09:37:27 +0200califax(~califax@user/califx) califx
2025-04-09 09:38:05 +0200a_fantom(~fantom@2.219.56.221)
2025-04-09 09:41:09 +0200fantom(~fantom@2.219.56.221) (Ping timeout: 244 seconds)
2025-04-09 09:41:37 +0200chele(~chele@user/chele) chele
2025-04-09 09:45:57 +0200merijn(~merijn@77.242.116.146) merijn
2025-04-09 09:51:40 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2025-04-09 09:55:47 +0200ColinRobinson(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-04-09 09:57:06 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-04-09 09:59:17 +0200fantom(~fantom@2.219.56.221)
2025-04-09 10:01:49 +0200a_fantom(~fantom@2.219.56.221) (Ping timeout: 244 seconds)
2025-04-09 10:05:54 +0200Inst(~Inst@user/Inst) (Remote host closed the connection)
2025-04-09 10:07:48 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-04-09 10:14:12 +0200Googulator(~Googulato@2a01-036d-0106-211a-f46d-c0c9-579b-1a24.pool6.digikabel.hu) (Quit: Client closed)
2025-04-09 10:38:51 +0200lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-04-09 10:39:27 +0200j1n37-(~j1n37@user/j1n37) (Ping timeout: 268 seconds)
2025-04-09 10:41:48 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 10:48:48 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds)
2025-04-09 10:56:33 +0200poxel(~lennart@user/poxel) (Quit: WeeChat 4.6.0)
2025-04-09 11:00:05 +0200fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 248 seconds)
2025-04-09 11:03:47 +0200fp(~Thunderbi@2001:708:150:10::1d80) fp
2025-04-09 11:13:02 +0200lortabac(~lortabac@2a0d:e487:132f:be52:3a12:65c4:6cf:efd7)
2025-04-09 11:13:50 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2025-04-09 11:14:42 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu
2025-04-09 11:16:46 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-09 11:24:55 +0200forell_(~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
2025-04-09 11:25:00 +0200forell(~forell@user/forell) (Ping timeout: 252 seconds)
2025-04-09 11:26:25 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-04-09 11:27:10 +0200vanishingideal(~vanishing@user/vanishingideal) (Remote host closed the connection)
2025-04-09 11:37:06 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-09 11:40:57 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2025-04-09 11:41:08 +0200tabaqui(~tabaqui@167.71.80.236) tabaqui
2025-04-09 11:41:14 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu
2025-04-09 11:41:42 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 11:47:56 +0200EvanR(~EvanR@user/evanr) (Read error: Connection reset by peer)
2025-04-09 11:48:03 +0200EvanR_(~EvanR@user/evanr) EvanR
2025-04-09 11:53:09 +0200lortabac(~lortabac@2a0d:e487:132f:be52:3a12:65c4:6cf:efd7) (Ping timeout: 252 seconds)
2025-04-09 11:59:12 +0200justin(~justin@136.158.10.171)
2025-04-09 11:59:12 +0200justinGuest6600
2025-04-09 12:01:05 +0200Guest6600(~justin@136.158.10.171) (Client Quit)
2025-04-09 12:03:08 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
2025-04-09 12:05:40 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-04-09 12:10:53 +0200alp(~alp@2001:861:8ca0:4940:93b8:dd2d:3845:3995)
2025-04-09 12:19:15 +0200fantom(~fantom@2.219.56.221) (Ping timeout: 244 seconds)
2025-04-09 12:24:39 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
2025-04-09 12:28:01 +0200 <haskellbridge> <Morj> Hello Joe, do you like functional programming?
2025-04-09 13:02:00 +0200jespada(~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) jespada
2025-04-09 13:02:49 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-04-09 13:05:42 +0200xff0x(~xff0x@2405:6580:b080:900:b50:e5e9:27c3:86)
2025-04-09 13:13:40 +0200 <Digit> every time i'm configuring a program in something other than haskell, i feel like i'm wasting time that could be better spent better learning haskell... how far can one go, in replacing all the things with haskell programs? ... e.g. is there a terminal emulator written in haskell? yi for text editor, what else? can "everything" be covered?
2025-04-09 13:15:37 +0200 <dmoerner> although there are exceptions (suckless, e.g.) i don't find that most programs written in language X need to be configured in language X
2025-04-09 13:16:20 +0200 <dmoerner> instead for good reason they often use a specific language for configuration, like toml
2025-04-09 13:22:24 +0200 <dutchie> there's xmonad for window management that immediately comes to mind
2025-04-09 13:22:50 +0200 <dutchie> you could always generate program X's config by writing a Haskell program
2025-04-09 13:26:10 +0200 <Leary> @hackage termonad
2025-04-09 13:26:10 +0200 <lambdabot> https://hackage.haskell.org/package/termonad
2025-04-09 13:26:14 +0200 <Leary> Digit: ^
2025-04-09 13:27:04 +0200 <int-e> . o O ( what a name, but "termonador" would be better )
2025-04-09 13:28:57 +0200 <merijn> Digit: There's also vty
2025-04-09 13:29:39 +0200 <merijn> Although, tbh I doubt using yi would be a worthwhile investment :p
2025-04-09 13:31:35 +0200euphores(~SASL_euph@user/euphores) (Ping timeout: 244 seconds)
2025-04-09 13:34:10 +0200sprotte24(~sprotte24@p200300d16f0bc1000c82a6b41033ea55.dip0.t-ipconnect.de)
2025-04-09 13:45:41 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 268 seconds)
2025-04-09 13:48:35 +0200hsw(~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) (Remote host closed the connection)
2025-04-09 13:48:54 +0200hsw(~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) hsw
2025-04-09 13:52:49 +0200jespada(~jespada@r179-25-248-190.dialup.adsl.anteldata.net.uy) (Ping timeout: 248 seconds)
2025-04-09 13:55:15 +0200TheCoffeMaker_(~TheCoffeM@186.136.173.186) (Ping timeout: 252 seconds)
2025-04-09 13:55:46 +0200jespada(~jespada@r190-133-30-51.dialup.adsl.anteldata.net.uy) jespada
2025-04-09 13:55:59 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) TheCoffeMaker
2025-04-09 13:56:23 +0200YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Ping timeout: 265 seconds)
2025-04-09 13:57:45 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-09 14:01:13 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-04-09 14:06:48 +0200notdabs(~Owner@2600:1700:69cf:9000:19b2:995a:60d5:3b93)
2025-04-09 14:07:03 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 246 seconds)
2025-04-09 14:16:31 +0200zfnmxt(~zfnmxt@user/zfnmxt) (Remote host closed the connection)
2025-04-09 14:17:32 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 272 seconds)
2025-04-09 14:17:34 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 244 seconds)
2025-04-09 14:18:00 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) TheCoffeMaker
2025-04-09 14:20:50 +0200zfnmxt(~zfnmxt@user/zfnmxt) zfnmxt
2025-04-09 14:27:49 +0200JuanDaughertyColinRobinson
2025-04-09 14:30:33 +0200as_(~as@2800:a4:298:ee00:7661:9c1d:e20c:62d8)
2025-04-09 14:30:52 +0200comerijn(~merijn@77.242.116.146) merijn
2025-04-09 14:30:54 +0200thuna`(~thuna`@user/thuna/x-1480069) (Ping timeout: 252 seconds)
2025-04-09 14:33:36 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 265 seconds)
2025-04-09 14:36:26 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-09 14:36:38 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2025-04-09 14:43:59 +0200michalz_(~michalz@185.246.207.203)
2025-04-09 14:44:33 +0200michalz(~michalz@185.246.207.200) (Ping timeout: 245 seconds)
2025-04-09 14:54:56 +0200troydm(~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2025-04-09 14:55:32 +0200troydm(~troydm@user/troydm) troydm
2025-04-09 14:59:04 +0200fp(~Thunderbi@2001:708:150:10::1d80) (Ping timeout: 268 seconds)
2025-04-09 15:26:53 +0200fp(~Thunderbi@2001:708:20:1406::1370) fp
2025-04-09 15:34:32 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Remote host closed the connection)
2025-04-09 15:34:55 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) TheCoffeMaker
2025-04-09 15:35:35 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-04-09 15:40:02 +0200tromp(~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf)
2025-04-09 15:42:22 +0200Square(~Square4@user/square) Square
2025-04-09 15:52:11 +0200ystael(~ystael@user/ystael) ystael
2025-04-09 16:12:52 +0200ColinRobinson(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-04-09 16:14:52 +0200 <[exa]> Digit: unix clearly dictates that there's no silver bullet
2025-04-09 16:14:57 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-04-09 16:15:35 +0200 <[exa]> (otoh any time spent trying to sensibly port stuff to haskell is certainly not wasted)
2025-04-09 16:16:11 +0200amadaluzia(~amadaluzi@2a00:23c7:ed8b:6701:58aa:f4c7:c90:674e)
2025-04-09 16:17:48 +0200 <[exa]> btw, is there any modern replacement for Ivory? I see the website is somehow dead today
2025-04-09 16:19:48 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds)
2025-04-09 16:20:35 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) TheCoffeMaker
2025-04-09 16:30:23 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 245 seconds)
2025-04-09 16:32:00 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 16:33:25 +0200acidjnk_new3(~acidjnk@p200300d6e71c4f99589ab59c7ee4b7ea.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2025-04-09 16:36:13 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 245 seconds)
2025-04-09 16:37:44 +0200fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 268 seconds)
2025-04-09 16:54:44 +0200Googulator(~Googulato@2a01-036d-0106-211a-98f9-54d1-cd01-d0d3.pool6.digikabel.hu)
2025-04-09 16:56:02 +0200EvanR_EvanR
2025-04-09 16:57:10 +0200__jmcantrell__(~weechat@user/jmcantrell) jmcantrell
2025-04-09 16:57:27 +0200jmcantrellGuest4549
2025-04-09 16:57:27 +0200Guest4549(644f1bed9a@user/jmcantrell) (Killed (zirconium.libera.chat (Nickname regained by services)))
2025-04-09 16:57:27 +0200__jmcantrell__jmcantrell
2025-04-09 16:57:35 +0200jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2025-04-09 17:07:16 +0200tromp(~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-04-09 17:10:25 +0200acidjnk_new3(~acidjnk@p200300d6e71c4f995d166d77a499a203.dip0.t-ipconnect.de) acidjnk
2025-04-09 17:18:50 +0200as_(~as@2800:a4:298:ee00:7661:9c1d:e20c:62d8) (Quit: as_)
2025-04-09 17:20:38 +0200rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2025-04-09 17:20:50 +0200euphores(~SASL_euph@user/euphores) euphores
2025-04-09 17:21:23 +0200as_(~as@2800:a4:298:ee00:7661:9c1d:e20c:62d8)
2025-04-09 17:22:06 +0200rembo10(~rembo10@main.remulis.com) rembo10
2025-04-09 17:25:25 +0200alp(~alp@2001:861:8ca0:4940:93b8:dd2d:3845:3995) (Ping timeout: 252 seconds)
2025-04-09 17:28:48 +0200 <hellwolf> There is no (!!) for linear arrays: you need to split it, dup it to (it', it'') then use it' and assemble the original list back with it''.
2025-04-09 17:28:53 +0200 <hellwolf> pain
2025-04-09 17:31:56 +0200tromp(~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf)
2025-04-09 17:32:02 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 248 seconds)
2025-04-09 17:33:38 +0200 <EvanR> !! is lookup
2025-04-09 17:33:43 +0200zmt00(~zmt00@user/zmt00) zmt00
2025-04-09 17:33:45 +0200 <EvanR> the operation is usually ! for arrays
2025-04-09 17:33:49 +0200 <EvanR> operator*
2025-04-09 17:34:07 +0200 <EvanR> > [1,2,3,4,5] !! 3
2025-04-09 17:34:08 +0200 <lambdabot> 4
2025-04-09 17:34:29 +0200 <int-e> I don't think it matters for the linear type trouble
2025-04-09 17:34:41 +0200 <EvanR> oh, linear
2025-04-09 17:35:26 +0200 <int-e> though you could still have a function that replaces an array element and returns the old one
2025-04-09 17:35:54 +0200 <EvanR> get :: HasCallStack => Int -> Vector a %1 -> (Ur a, Vector a)
2025-04-09 17:36:59 +0200 <int-e> EvanR: more precisely, the problem would occur if the elements have a linear type
2025-04-09 17:37:11 +0200int-eshrugs
2025-04-09 17:38:02 +0200 <EvanR> example?
2025-04-09 17:39:34 +0200 <EvanR> a vector of linear functions?
2025-04-09 17:40:13 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2025-04-09 17:42:12 +0200 <int-e> I'm trying to understand where the unrestricted a in your signature comes from. That would mean the elements of the vectors are also unrestricted when they are put in, wouldn't it?
2025-04-09 17:42:48 +0200 <EvanR> let me find the constructor
2025-04-09 17:43:18 +0200 <EvanR> fromList :: (HasCallStack, Movable b) => [a] -> (Vector a %1 -> b) %1 -> b
2025-04-09 17:43:24 +0200 <EvanR> no
2025-04-09 17:43:30 +0200 <EvanR> yes
2025-04-09 17:44:45 +0200 <EvanR> so that's what Data.Vector.Mutable.Linear does
2025-04-09 17:48:03 +0200ft(~ft@p508db463.dip0.t-ipconnect.de) ft
2025-04-09 17:49:15 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 252 seconds)
2025-04-09 17:51:44 +0200comerijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2025-04-09 17:54:26 +0200califax(~califax@user/califx) (Remote host closed the connection)
2025-04-09 17:54:26 +0200Chai-T-Rex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2025-04-09 17:54:55 +0200ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-04-09 17:54:55 +0200califax(~califax@user/califx) califx
2025-04-09 17:58:54 +0200as_(~as@2800:a4:298:ee00:7661:9c1d:e20c:62d8) (Adiós)
2025-04-09 18:06:13 +0200acidjnk_new3(~acidjnk@p200300d6e71c4f995d166d77a499a203.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2025-04-09 18:13:21 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-04-09 18:14:55 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 18:15:29 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2025-04-09 18:18:21 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 265 seconds)
2025-04-09 18:28:04 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2025-04-09 18:30:32 +0200sayurc(~sayurc@169.150.203.34) sayurc
2025-04-09 18:35:24 +0200stef204(~stef204@user/stef204) stef204
2025-04-09 18:36:43 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
2025-04-09 18:44:46 +0200alp(~alp@2001:861:8ca0:4940:408a:bf2b:1297:8090)
2025-04-09 18:46:44 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds)
2025-04-09 18:48:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 18:52:15 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 276 seconds)
2025-04-09 18:53:42 +0200wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-04-09 18:54:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-09 19:02:53 +0200 <EvanR> does the W in algorithm W stand for anything in particular
2025-04-09 19:03:57 +0200 <spew> wadler
2025-04-09 19:04:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 19:07:00 +0200 <EvanR> it's from Milner 1978, at which time wadler had just completed their bachelors in mathematics
2025-04-09 19:07:06 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2025-04-09 19:07:56 +0200 <EvanR> A Theory of Type Polymorphism in Programming
2025-04-09 19:08:11 +0200tromp(~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-04-09 19:08:48 +0200chele(~chele@user/chele) (Remote host closed the connection)
2025-04-09 19:09:34 +0200sayurc(~sayurc@169.150.203.34) (Quit: Konversation terminated!)
2025-04-09 19:12:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-09 19:13:07 +0200 <spew> they were future seers
2025-04-09 19:15:31 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2025-04-09 19:16:06 +0200euphores(~SASL_euph@user/euphores) euphores
2025-04-09 19:16:25 +0200sayurc(~sayurc@169.150.203.34) sayurc
2025-04-09 19:17:04 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2025-04-09 19:18:04 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-09 19:20:06 +0200 <haskellbridge> <Bowuigi> Milner was just using gen Z language because the algorithm was ahead of its time
2025-04-09 19:20:12 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 252 seconds)
2025-04-09 19:20:59 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-09 19:22:34 +0200tromp(~textual@2001:1c00:3487:1b00:2db1:da99:c28d:36bf)
2025-04-09 19:22:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 19:23:14 +0200 <Leary> EvanR: Probably 'well-typing'.
2025-04-09 19:24:35 +0200amadaluzia(~amadaluzi@2a00:23c7:ed8b:6701:58aa:f4c7:c90:674e) (Changing host)
2025-04-09 19:24:35 +0200amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-04-09 19:27:16 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-04-09 19:27:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 19:32:56 +0200alp(~alp@2001:861:8ca0:4940:408a:bf2b:1297:8090) (Ping timeout: 272 seconds)
2025-04-09 19:34:48 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
2025-04-09 19:35:00 +0200acidjnk_new3(~acidjnk@p200300d6e71c4f997cc0cb9b6e0fa5d7.dip0.t-ipconnect.de)
2025-04-09 19:36:24 +0200 <EvanR> wikipedia states: Formally, in HM, a type σ' is more general than σ, formally σ' ⊑ σ, if ...
2025-04-09 19:36:34 +0200 <EvanR> struggling to justify that choice of operator for that xD
2025-04-09 19:36:47 +0200 <EvanR> since it looks like subset of
2025-04-09 19:37:14 +0200 <EvanR> or less than
2025-04-09 19:37:17 +0200 <EvanR> not more than
2025-04-09 19:38:04 +0200 <int-e> well a more general type has fewer inhabitants; consider the extreme case forall a. a
2025-04-09 19:38:26 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 19:39:56 +0200 <EvanR> in general that's not necessarily true
2025-04-09 19:40:46 +0200 <int-e> are you sure about that
2025-04-09 19:40:54 +0200 <EvanR> give or take I still don't know how to count such inhabitants
2025-04-09 19:41:25 +0200 <int-e> any inhabitant of sigma' can be used at type sigma
2025-04-09 19:42:17 +0200 <EvanR> more information about the types may let you do other things, but not less things
2025-04-09 19:42:24 +0200 <EvanR> ok
2025-04-09 19:43:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-09 19:47:56 +0200atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) atwm
2025-04-09 19:48:07 +0200sayurc(~sayurc@169.150.203.34) (Quit: Konversation terminated!)
2025-04-09 19:48:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 19:52:39 +0200atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Client Quit)
2025-04-09 19:52:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-09 19:54:59 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2025-04-09 20:03:56 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 20:03:59 +0200 <monochrom> So "more general" means "less information".
2025-04-09 20:05:34 +0200 <monochrom> To be sure, that sounds wrong until I show the intermediate steps: more general = more abstract = less detail = less information
2025-04-09 20:07:24 +0200 <monochrom> You can remember this example: \x -> x could be Int->Int or it could also be forall a. a->a. Int->Int is a larger space, forall a. a->a is a smaller space.
2025-04-09 20:08:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-09 20:10:12 +0200 <int-e> monochrom: so by making things more general you strive to convey as little information as possible
2025-04-09 20:10:14 +0200 <[exa]> EvanR: I'm usually reading that operator as "less specialized" but the choice still sucks
2025-04-09 20:10:20 +0200sayurc(~sayurc@169.150.203.34) sayurc
2025-04-09 20:10:29 +0200 <EvanR> "less specialized" didn't help xD
2025-04-09 20:10:47 +0200 <EvanR> since I guess I just flipped the confusion around mentally to still be there
2025-04-09 20:10:52 +0200 <[exa]> at least it sounds properly like the "less than" for me
2025-04-09 20:11:06 +0200 <[exa]> yeah
2025-04-09 20:11:15 +0200 <int-e> in the end the choice of direction is completely arbitrary
2025-04-09 20:11:27 +0200 <EvanR> sure
2025-04-09 20:11:29 +0200 <[exa]> maybe we could just go and edit the wiki? where did they get the boxy lessthan anyway?
2025-04-09 20:11:42 +0200[exa]wants to see some radical model theory
2025-04-09 20:11:44 +0200 <int-e> from unicode?
2025-04-09 20:11:52 +0200int-eruns
2025-04-09 20:11:58 +0200[exa]throws a stone
2025-04-09 20:12:08 +0200 <monochrom> Yeah my favourite tease is saying that half of the fundamental theorem of Galois theory is just lattice theory, to show how little information it has/needs. >:)
2025-04-09 20:12:40 +0200 <monochrom> (Also, that half is just 5-10 lines of proof.)
2025-04-09 20:12:41 +0200 <int-e> I suspect that this direction is standard in the relevant fragment of the literature and you'd confuse people if you flipped the direction
2025-04-09 20:13:26 +0200 <EvanR> you can say "σ' is more general than σ, formally σ ⊒ σ'"
2025-04-09 20:13:31 +0200 <EvanR> totally arbitrary xD
2025-04-09 20:13:49 +0200 <int-e> ⊑ is a standard symbol for partial orders that aren't comparisons or subsets
2025-04-09 20:14:00 +0200 <int-e> EvanR: I see what you did there and I don't disapprove.
2025-04-09 20:14:14 +0200 <EvanR> yeah I think of it as "less than"
2025-04-09 20:14:24 +0200 <EvanR> and forall a . a is at the bottom
2025-04-09 20:15:21 +0200 <EvanR> "lines of proof" (LOP)
2025-04-09 20:17:24 +0200 <monochrom> Speaking of which, you do have an inverse relationship between number of statements satisfied vs number of elements.
2025-04-09 20:18:20 +0200 <[exa]> kinda wondering, doesn't the declarative rule system they have there actually give a slightly different typesystem than what they show with algorithm W later?
2025-04-09 20:19:03 +0200 <EvanR> they describe 4 different rule systems
2025-04-09 20:19:12 +0200 <EvanR> for reasons, I presume
2025-04-09 20:19:14 +0200ft(~ft@p508db463.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-04-09 20:19:25 +0200 <[exa]> as in, the Inst rule with ⊒ allows partial instantiation as opposed to the explicit instantiate() later below
2025-04-09 20:19:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 20:19:45 +0200 <EvanR> if you get to they very end of that story, they kind of leave you on a cliffhanger
2025-04-09 20:20:00 +0200 <EvanR> (proof obligations)
2025-04-09 20:20:27 +0200 <int-e> (execises to the reader)
2025-04-09 20:20:30 +0200 <int-e> +r
2025-04-09 20:21:12 +0200ft(~ft@p508db594.dip0.t-ipconnect.de) ft
2025-04-09 20:21:47 +0200[exa]imagines an episode of Dallas ending with JR saying to unseen person "I know who put ⊒ there!"
2025-04-09 20:22:27 +0200 <haskellbridge> <Bowuigi> I just use bidirectional/contextual typing and call it a day. Still waiting for the polymorphism inference paper for contextual typing tho
2025-04-09 20:23:25 +0200 <EvanR> do you have a paper for that
2025-04-09 20:23:50 +0200 <haskellbridge> <Bowuigi> For the first two things yes, the last one does not exist yet
2025-04-09 20:24:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-09 20:25:55 +0200 <haskellbridge> <Bowuigi> https://dl.acm.org/doi/10.1145/3450952 bidirectional typing https://dl.acm.org/doi/10.1145/3674655 contextual typing
2025-04-09 20:26:33 +0200 <haskellbridge> <Bowuigi> The respective talks on both explain the concepts better
2025-04-09 20:27:28 +0200 <haskellbridge> <Bowuigi> Polymorphism inference with bidirectional typing is reasonably well studied. Kovacs' algorithm is pretty fast and good enough for a lot of use cases
2025-04-09 20:28:01 +0200 <haskellbridge> <Bowuigi> Polymorphism inference with contextual typing is likely going to be faster and more powerful, but it has to exist first
2025-04-09 20:29:33 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-04-09 20:30:43 +0200target_i(~target_i@user/target-i/x-6023099) target_i
2025-04-09 20:30:52 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-04-09 20:30:56 +0200 <EvanR> if it exists, then it is fast
2025-04-09 20:31:11 +0200 <EvanR> like tachyons
2025-04-09 20:33:32 +0200 <haskellbridge> <Bowuigi> Yes, except that tachyons have to be discovered rather than thought about and problem solve'd into existence
2025-04-09 20:34:23 +0200 <int-e> EvanR: I always admire people who have the energy to make a full trip around the Sun every single year.
2025-04-09 20:35:31 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 20:36:05 +0200__monty__(~toonn@user/toonn) (Ping timeout: 248 seconds)
2025-04-09 20:40:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-09 20:41:21 +0200 <EvanR> :thonk:
2025-04-09 20:42:00 +0200__monty__(~toonn@user/toonn) toonn
2025-04-09 20:42:03 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2025-04-09 20:42:44 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-04-09 20:47:01 +0200jco(~jco@78-70-217-44-no600.tbcn.telia.com) (Quit: leaving)
2025-04-09 20:49:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 20:52:58 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2025-04-09 20:54:17 +0200img(~img@user/img) img
2025-04-09 20:55:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-09 20:59:18 +0200Guest51(~Guest17@2001:1c00:a01:bc00:d043:d46d:298e:ed82)
2025-04-09 21:00:05 +0200caconym(~caconym@user/caconym) (Quit: bye)
2025-04-09 21:00:11 +0200Guest51(~Guest17@2001:1c00:a01:bc00:d043:d46d:298e:ed82) (Client Quit)
2025-04-09 21:00:48 +0200caconym(~caconym@user/caconym) caconym
2025-04-09 21:03:06 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-04-09 21:05:23 +0200tabaqui(~tabaqui@167.71.80.236) (Ping timeout: 245 seconds)
2025-04-09 21:06:18 +0200 <haskellbridge> <sm> most of us hitch a ride :)
2025-04-09 21:06:46 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-04-09 21:07:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 21:08:04 +0200fp(~Thunderbi@hof1.kyla.fi) fp
2025-04-09 21:08:11 +0200Googulator(~Googulato@2a01-036d-0106-211a-98f9-54d1-cd01-d0d3.pool6.digikabel.hu) (Quit: Client closed)
2025-04-09 21:08:28 +0200Googulator(~Googulato@2a01-036d-0106-211a-98f9-54d1-cd01-d0d3.pool6.digikabel.hu)
2025-04-09 21:08:46 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-04-09 21:12:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-09 21:14:54 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-04-09 21:15:08 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Client Quit)
2025-04-09 21:23:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 21:23:20 +0200 <monochrom> hee hee
2025-04-09 21:26:51 +0200forell_(~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Ping timeout: 265 seconds)
2025-04-09 21:27:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-04-09 21:36:39 +0200forell(~forell@user/forell) forell
2025-04-09 21:38:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 21:40:00 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-09 21:41:05 +0200 <EvanR> the unit type (()) (oof) is called the "unit type". Do we have a proper name for the one inhabitant of the unit type, other than, annoyingly "unit"
2025-04-09 21:41:56 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-04-09 21:43:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-09 21:44:36 +0200 <monochrom> It is usually the other way round, the type is named after the values. E.g., why do we say "integer" for values of the Integer type?
2025-04-09 21:44:39 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2025-04-09 21:44:39 +0200ljdarj1ljdarj
2025-04-09 21:45:55 +0200wroathe_(~wroathe@static-68-235-46-107.cust.tzulo.com)
2025-04-09 21:47:09 +0200 <EvanR> well types have come after values in history
2025-04-09 21:47:21 +0200rvalue-(~rvalue@user/rvalue) rvalue
2025-04-09 21:47:55 +0200 <ski> "empty tuple"
2025-04-09 21:48:14 +0200 <EvanR> ok then the value is more properly named ()
2025-04-09 21:48:31 +0200 <ski> of course
2025-04-09 21:48:45 +0200rvalue(~rvalue@user/rvalue) (Ping timeout: 260 seconds)
2025-04-09 21:48:48 +0200 <EvanR> like (a,b) and the types A x B and ...
2025-04-09 21:49:00 +0200 <EvanR> Unit
2025-04-09 21:49:11 +0200 <ski> "product type","sum type","exponential type" -- not being named after values
2025-04-09 21:49:40 +0200skidoesn't really like the term "unit", in any case
2025-04-09 21:50:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 21:50:54 +0200skiwas pondering, the other day, whether it would be nicer to say "type product"
2025-04-09 21:52:17 +0200rvalue-rvalue
2025-04-09 21:52:24 +0200wroathe_(~wroathe@static-68-235-46-107.cust.tzulo.com) ()
2025-04-09 21:55:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-09 21:59:41 +0200fp(~Thunderbi@hof1.kyla.fi) (Ping timeout: 244 seconds)
2025-04-09 22:02:37 +0200 <monochrom> type product type >:)
2025-04-09 22:05:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 22:09:04 +0200AlexNoo_(~AlexNoo@178.34.160.239)
2025-04-09 22:09:31 +0200michalz_(~michalz@185.246.207.203) (Remote host closed the connection)
2025-04-09 22:10:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-09 22:11:52 +0200AlexZenon(~alzenon@178.34.162.245) (Ping timeout: 244 seconds)
2025-04-09 22:12:46 +0200AlexNoo(~AlexNoo@178.34.162.245) (Ping timeout: 265 seconds)
2025-04-09 22:12:53 +0200ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-04-09 22:13:22 +0200AlexNoo_AlexNoo
2025-04-09 22:21:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-09 22:25:03 +0200AlexZenon(~alzenon@178.34.160.239)
2025-04-09 22:26:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)