| 2026-04-03 00:00:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 00:05:59 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-04-03 00:06:13 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-03 00:07:46 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-03 00:12:09 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) (Ping timeout: 255 seconds) |
| 2026-04-03 00:18:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 00:23:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-03 00:33:18 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 255 seconds) |
| 2026-04-03 00:33:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 00:38:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-03 00:49:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 00:52:59 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 265 seconds) |
| 2026-04-03 00:52:59 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:fc97:d0a4:cdd9:afc1) (Read error: Connection reset by peer) |
| 2026-04-03 00:53:42 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e5001e1160b7d23e5dd6.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 2026-04-03 00:54:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-04-03 00:54:15 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:fc97:d0a4:cdd9:afc1) synchromesh |
| 2026-04-03 00:57:22 +0000 | xff0x | (~xff0x@2405:6580:b080:900:1644:ff9e:fe83:e2e) (Ping timeout: 248 seconds) |
| 2026-04-03 01:04:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 01:09:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-04-03 01:13:57 +0000 | <mesaoptimizer> | "Under the hood, Haskell is not a magical machine that performs side effects despite being pure. Behind every "pure" function in bytestring, text, and vector lies a cheerful little hellscape of mutable allocation, buffer writes, unsafe coercions, and other behavior that would alarm you if you discovered it in a junior engineer's side project. Behind the ST monad lies in-place mutation and side |
| 2026-04-03 01:13:59 +0000 | <mesaoptimizer> | effects, observable within the computation. What makes it acceptable is that the side effects are encapsulated such that the boundary cannot be violated. The rank-2 type (that is, the type s is scoped within the parenthesis and can't escape) of runST ensures that the mutable references created inside the computation cannot escape due to being tagged with the type s. Internally, all sorts of |
| 2026-04-03 01:14:01 +0000 | <mesaoptimizer> | imperative nonsense may occur. Externally, the function is pure. The world outside the boundary gets none of the mutation, only the result." https://blog.haskell.org/a-couple-million-lines-of-haskell/ this is an incorrect inference, right? if you use unsafe IO or unsafe side effects, the type system cannot and will not be able to guarantee the purity |
| 2026-04-03 01:15:16 +0000 | <c_wraith> | It's nearly accurate for ST |
| 2026-04-03 01:15:29 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-04-03 01:15:30 +0000 | <c_wraith> | which the reference to runST implies is what it's intended to be talking about. |
| 2026-04-03 01:15:48 +0000 | <c_wraith> | (It's true for ST as long as you don't use any of the unsafe* functions) |
| 2026-04-03 01:16:12 +0000 | <glguy> | The point isn't that all uses of unsafePerformIO are protected by the type system, it's that unsafePerformIO can be carefully used in ways that benefit from type system protection |
| 2026-04-03 01:19:57 +0000 | comonad | (~comonad@p200300d02717df00adc247ef70bd7367.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 2026-04-03 01:20:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 01:21:05 +0000 | comonad | (~comonad@p200300d02717df00adc247ef70bd7367.dip0.t-ipconnect.de) |
| 2026-04-03 01:24:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-03 01:35:29 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-04-03 01:36:34 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-03 01:41:59 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 245 seconds) |
| 2026-04-03 01:46:01 +0000 | foul_owl | (~kerry@94.156.149.94) (Read error: Connection reset by peer) |
| 2026-04-03 01:51:21 +0000 | <EvanR> | even without unsafe perform IO, the primitives GHC has get implemented somehow |
| 2026-04-03 01:51:42 +0000 | <EvanR> | there are a lot of them |
| 2026-04-03 01:52:06 +0000 | <EvanR> | if you use GMP based Integer there's also that |
| 2026-04-03 01:53:27 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 01:56:14 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-04-03 01:57:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-03 02:07:24 +0000 | <monochrom> | I will start with a conversation I overheard. Two 1st-year students were at a cafe discussing logic homework. The homework question was "what is the negation of: everyone wears glasses?". The students first said "is it: no one wears glasses?" But within 10 seconds, "no, that's not right". |
| 2026-04-03 02:08:43 +0000 | zzz | (~zero@user/zero) (Ping timeout: 264 seconds) |
| 2026-04-03 02:08:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 02:08:54 +0000 | <monochrom> | So even sophomores can understand that the negation of "all usages of unsafePerformIO are safe" is not "all usages of unsafePerformIO are unsafe". |
| 2026-04-03 02:10:53 +0000 | <EvanR> | maybe mesaoptimizer wants to see also SafeHaskell |
| 2026-04-03 02:13:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-04-03 02:17:54 +0000 | zzz | (~zero@user/zero) zero |
| 2026-04-03 02:22:12 +0000 | squid64 | (~user@fsf/member/squid64) (Ping timeout: 255 seconds) |
| 2026-04-03 02:24:17 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-04-03 02:24:59 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-04-03 02:28:32 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-04-03 02:33:31 +0000 | <mesaoptimizer> | c_wraith: it seems like it is accurate for runST, if the type system itself guarantees semantic safety, yes. I do think that the claim is almost deliberately confusing when applied to any expression that contains an `unsafe*` expression though. |
| 2026-04-03 02:34:50 +0000 | abbies | (~abbies@tilde.guru) |
| 2026-04-03 02:35:01 +0000 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca) (Remote host closed the connection) |
| 2026-04-03 02:35:03 +0000 | <geekosaur> | given what you quoted, I think it's just making the point that, if you know what you're doing, you can hide known-safe uses of unsafe operations inside pure functions |
| 2026-04-03 02:35:05 +0000 | <mesaoptimizer> | If you say something is pure, I expect that the language *guarantees* the semantics of it being pure, with the exception of the expression using, say, `unsafePerformIO`. Ergo, you cannot call those functions as those where 'the boundary cannot be violated' -- you already broke the semantic safety guarantees! |
| 2026-04-03 02:35:44 +0000 | <mesaoptimizer> | geekosaur: yeah that is now my current interpretation of it. it does seem quite confusing though |
| 2026-04-03 02:36:39 +0000 | abbies | (~abbies@tilde.guru) (Client Quit) |
| 2026-04-03 02:37:00 +0000 | <mesaoptimizer> | reminds me of LLM-generated text, which has triggered similar confusion and dicussion between I and a few of my acquaintances in the past, related to type theory and semantics. I guess its best I abandon reading this essay. |
| 2026-04-03 02:37:48 +0000 | <geekosaur> | this is no different from https://doc.rust-lang.org/book/ch20-01-unsafe-rust.html |
| 2026-04-03 02:38:40 +0000 | <mesaoptimizer> | no I get that |
| 2026-04-03 02:38:46 +0000 | <geekosaur> | since neither compiler can give you static guarantees, it's on you as programmer using unsafe features to prove that you are actually using them safely |
| 2026-04-03 02:39:18 +0000 | <davean> | geekosaur: About unsafe stuff |
| 2026-04-03 02:39:19 +0000 | <mesaoptimizer> | I accept the existence of parts of a language that are delineated such that they do not have semantic safety in terms of abstractions that protect you from the underlying computational substrate |
| 2026-04-03 02:39:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 02:39:47 +0000 | <EvanR> | that article isn't LLM style at all |
| 2026-04-03 02:39:57 +0000 | <EvanR> | it's classic "dev speak" |
| 2026-04-03 02:40:00 +0000 | <mesaoptimizer> | my conclusion is that the essay above is generated using a SOTA LLM, and therefore is adverserially generated to seem insightful, but actually be dangerously wasteful of human time |
| 2026-04-03 02:40:19 +0000 | <EvanR> | we've seen reports like this for years |
| 2026-04-03 02:40:25 +0000 | <EvanR> | tales from tech |
| 2026-04-03 02:40:38 +0000 | <EvanR> | none it seems especially controversial either |
| 2026-04-03 02:40:40 +0000 | <Leary> | mesaoptimizer: You expect wrong; people use 'pure' just to mean 'pure'; there's no implicit /by construction/. |
| 2026-04-03 02:41:16 +0000 | <mesaoptimizer> | EvanR: not fully, of course. I imagine maybe the author wrote a bunch of bullet points up and then used an LLM to expand upon it. But all right, I'll give the essay another shot and continue reading it |
| 2026-04-03 02:42:19 +0000 | <EvanR> | as you wish |
| 2026-04-03 02:42:30 +0000 | <mesaoptimizer> | Leary: perhaps I misused the word, but my point was about semantic safety, in the sense of Benjamin Pierce's definition in TAPL |
| 2026-04-03 02:42:56 +0000 | <mesaoptimizer> | so it still stands. It is not specific to Haskell. |
| 2026-04-03 02:42:58 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
| 2026-04-03 02:43:17 +0000 | <EvanR> | ok if you're going to analyze the article then yeah maybe read it |
| 2026-04-03 02:43:23 +0000 | <EvanR> | otherwise don't bother |
| 2026-04-03 02:43:57 +0000 | <EvanR> | (there's a lot in there that is haskell specific, but as far as groundbreaking insights maybe not many) |
| 2026-04-03 02:44:02 +0000 | <davean> | Yah the obligation is on you to actually think clearly about it. |
| 2026-04-03 02:44:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-03 02:44:47 +0000 | <mesaoptimizer> | EvanR: I disagree about that claim when in a cognitively adverserial environment |
| 2026-04-03 02:44:56 +0000 | <mesaoptimizer> | ... sorry, that was for davean |
| 2026-04-03 02:45:00 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:cd4b:38a2:fba4:622b) |
| 2026-04-03 02:45:00 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:cd4b:38a2:fba4:622b) (Changing host) |
| 2026-04-03 02:45:00 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-03 02:45:39 +0000 | <mesaoptimizer> | EvanR: it started off quite interesting, yes, which is why I even put in the effort to ask about the thing that confused me, so yes, I am reading onwards. |
| 2026-04-03 02:54:22 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-04-03 02:54:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 02:55:45 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-04-03 02:56:13 +0000 | <mesaoptimizer> | sidenote: "Your database layer uses connection pooling, retry logic, and mutable state internally. Your cache uses concurrent mutable maps. Your HTTP client probably has circuit breakers, pooled connections, and a small municipal government's worth of bookkeeping." this is a clear indicator that an LLM was used to write this essay |
| 2026-04-03 02:57:22 +0000 | <mesaoptimizer> | it is quite common for an LLM to add a concrete, supposedly humorous exageration as part of its triadic description for something, and you can see it with "a small municipal government's worth of bookkeeping". |
| 2026-04-03 02:57:31 +0000 | <EvanR> | we need a new latin fallacy like ad hominem but for attacking the LLM |
| 2026-04-03 02:58:39 +0000 | <monochrom> | ad machina >:) |
| 2026-04-03 02:58:44 +0000 | <mesaoptimizer> | erm, I have been paid to do research engineer work on neural networks, and have worked with researchers now at DM and Anthropic |
| 2026-04-03 02:58:54 +0000 | <EvanR> | that article isn't about LLMs or AI at all so |
| 2026-04-03 02:58:57 +0000 | <monochrom> | or perhaps ad machinem? |
| 2026-04-03 02:59:37 +0000 | <mesaoptimizer> | okay, *at least* you aren't saying I'm wrong, I do appreciate that lol |
| 2026-04-03 02:59:37 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-04-03 02:59:42 +0000 | <monochrom> | "I do not trust it when a computer says 1+1=2 because it's a stupid computer!" |
| 2026-04-03 03:00:17 +0000 | <EvanR> | butlerian jihad! |
| 2026-04-03 03:00:20 +0000 | <Leary> | mesaoptimizer: LLMs do that because they ate a huge amount of text written by humans who did that. |
| 2026-04-03 03:00:44 +0000 | <geekosaur> | ^ |
| 2026-04-03 03:01:19 +0000 | <monochrom> | Haven't you heard? Those LLMs that have learned from history are doomed to repeat it! |
| 2026-04-03 03:01:27 +0000 | <mesaoptimizer> | I think the thing you wish to encourage is "read the docs" |
| 2026-04-03 03:01:45 +0000 | <mesaoptimizer> | or a sort of "hey, look you have to put in the work if you want to master this" |
| 2026-04-03 03:02:14 +0000 | <EvanR> | what's this in relation to |
| 2026-04-03 03:02:22 +0000 | <EvanR> | just in general? |
| 2026-04-03 03:02:34 +0000 | <EvanR> | sure |
| 2026-04-03 03:02:44 +0000 | <mesaoptimizer> | yeah, I'm confused by the reaction of you guys just now |
| 2026-04-03 03:03:02 +0000 | <mesaoptimizer> | and yeah I agree, and have found some Haskell papers even more lucid than any introductory textbook, especially the 1997 Wadler / Blott one for typeclasses |
| 2026-04-03 03:04:44 +0000 | <mesaoptimizer> | this is probably an offtopic thing, but in short, I really really do not think it is a good idea to extend this intuition to text generated by LLMs outright or even partially. |
| 2026-04-03 03:05:27 +0000 | <mesaoptimizer> | anyway, let's move on |
| 2026-04-03 03:05:28 +0000 | <geekosaur> | I for one am kinda confused by how you jumped straight to "must be an LLM". there _are_ some clear indications thereof, but your complaints seem more in the "I don't like its style" category |
| 2026-04-03 03:05:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 03:06:07 +0000 | <EvanR> | your point started out as the article is a dangerous waste of time but we're still talking about it |
| 2026-04-03 03:06:17 +0000 | <geekosaur> | LLMs only use the LLM part to interpret prompts and reformat results; the actual work, as best I can determine having read lots of them, is actually generated via Markov chains |
| 2026-04-03 03:06:46 +0000 | <geekosaur> | the kinds of messes they produce fit that model very well |
| 2026-04-03 03:07:15 +0000 | <mesaoptimizer> | will reply in #haskell-offtopic. |
| 2026-04-03 03:10:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-03 03:21:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 03:27:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-04-03 03:38:46 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 265 seconds) |
| 2026-04-03 03:39:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 03:44:06 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-03 03:54:26 +0000 | machinedgod | (~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 248 seconds) |
| 2026-04-03 03:55:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 03:59:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-04-03 04:03:35 +0000 | sp1ff | (~user@2601:1c2:4080:14c0::ace8) sp1ff |
| 2026-04-03 04:09:22 +0000 | monochrom | (trebla@216.138.220.146) (Ping timeout: 244 seconds) |
| 2026-04-03 04:09:29 +0000 | comonad | (~comonad@p200300d02717df00adc247ef70bd7367.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-04-03 04:10:24 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 244 seconds) |
| 2026-04-03 04:10:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 04:10:40 +0000 | comonad | (~comonad@p200300d02717df00adc247ef70bd7367.dip0.t-ipconnect.de) |
| 2026-04-03 04:12:26 +0000 | monochrom | (~trebla@216.138.220.146) monochrom |
| 2026-04-03 04:14:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-04-03 04:15:44 +0000 | comonad | (~comonad@p200300d02717df00adc247ef70bd7367.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-04-03 04:16:50 +0000 | comonad | (~comonad@p200300d02717df00adc247ef70bd7367.dip0.t-ipconnect.de) |
| 2026-04-03 04:22:53 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-03 04:26:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 04:30:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-03 04:32:06 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 2026-04-03 04:34:54 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 246 seconds) |
| 2026-04-03 04:40:42 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-04-03 04:41:27 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 04:45:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-03 04:46:40 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-04-03 04:49:29 +0000 | monochrom | (~trebla@216.138.220.146) (Ping timeout: 245 seconds) |
| 2026-04-03 04:50:40 +0000 | monochrom | (trebla@216.138.220.146) monochrom |
| 2026-04-03 04:54:10 +0000 | Nosrep | (~jimothy@user/nosrep) (Ping timeout: 248 seconds) |
| 2026-04-03 04:56:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 04:59:26 +0000 | somemathguy | (~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1) |
| 2026-04-03 05:03:53 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-04-03 05:03:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-04-03 05:06:21 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:cd4b:38a2:fba4:622b) |
| 2026-04-03 05:06:21 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:cd4b:38a2:fba4:622b) (Changing host) |
| 2026-04-03 05:06:21 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-03 05:06:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 05:11:22 +0000 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 268 seconds) |
| 2026-04-03 05:11:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-04-03 05:13:32 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 2026-04-03 05:22:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-03 05:25:50 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-04-03 05:26:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-03 05:32:18 +0000 | somemathguy | (~somemathg@user/somemathguy) somemathguy |
| 2026-04-03 05:37:46 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |