2026/04/06

Newest at the top

2026-04-06 19:23:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-06 19:23:34 +0000AlexNoo__(~AlexNoo@85.174.183.185)
2026-04-06 19:23:16 +0000preflex(~preflex@user/mauke/bot/preflex) preflex
2026-04-06 19:23:12 +0000 <monochrom> :(
2026-04-06 19:22:53 +0000 <int-e> (please nobody bring up the Therac-25... oops)
2026-04-06 19:22:50 +0000AlexNoo_(~AlexNoo@85.174.183.185)
2026-04-06 19:22:39 +0000preflex(~preflex@user/mauke/bot/preflex) (Remote host closed the connection)
2026-04-06 19:22:38 +0000 <monochrom> (I might say that, then, from CPS to monad is a fairly natural next step.)
2026-04-06 19:22:26 +0000AlexNoo__(~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:22:00 +0000 <monochrom> (The CPS wrapper is then less error-prone in that regard.)
2026-04-06 19:21:54 +0000AlexNoo_(~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:21:46 +0000 <int-e> (quite the opposite)
2026-04-06 19:21:41 +0000 <int-e> eh a little nontermination never killed anybody
2026-04-06 19:21:13 +0000AlexNoo(~AlexNoo@85.174.183.185)
2026-04-06 19:21:00 +0000 <monochrom> Strictly (pun! you'll see) speaking, [Reply] -> [Request] plus a very strong laziness assumption because clearly you should not force a reply before you emit a request...
2026-04-06 19:20:18 +0000AlexNoo(~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:19:29 +0000 <monochrom> Yeah very old Haskell did [Reply] -> [Request]. And provided a CPS wrapper.
2026-04-06 19:18:14 +0000AlexNoo__(~AlexNoo@85.174.183.185)
2026-04-06 19:17:42 +0000 <monochrom> Generally, people want comfort-zone models, not models that actually works. (Just look at most analogies for Monad way back then.)
2026-04-06 19:17:30 +0000AlexNoo_(~AlexNoo@85.174.183.185)
2026-04-06 19:17:18 +0000m_a_r_k(~m_a_r_k@archlinux/support/mark) m_a_r_k
2026-04-06 19:17:06 +0000AlexNoo__(~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:17:05 +0000puke(~puke@user/puke) (Quit: puke)
2026-04-06 19:16:34 +0000AlexNoo_(~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:16:10 +0000 <int-e> (it predates my exposure to Haskell)
2026-04-06 19:15:56 +0000 <mauke> that sounds like Haskell 1.3 or something
2026-04-06 19:15:53 +0000AlexNoo(~AlexNoo@85.174.183.185)
2026-04-06 19:15:46 +0000 <c_wraith> yes, that predates Monad being part of the standard library
2026-04-06 19:15:31 +0000 <int-e> Wasn't there a [Reply] -> [Request] model at some point
2026-04-06 19:15:30 +0000 <monochrom> Right, good for about 0th approximation only.
2026-04-06 19:15:15 +0000 <mauke> why did 10 lines of activity just pop up at once? how laggy is this connection? :-)
2026-04-06 19:14:58 +0000AlexNoo(~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:14:54 +0000 <monochrom> ISTR Hugs old versions did it the free-monad way! But I can't find it now.
2026-04-06 19:14:39 +0000 <c_wraith> the model doesn't work for concurrent code, though. So... uh...
2026-04-06 19:14:36 +0000 <int-e> And monochrom is cruel anough to tell them that RealWorld is entirely imaginary.
2026-04-06 19:14:03 +0000 <monochrom> "RealWorld -> (a, RealWorld)" is a very comfortable model, so comfortable that people try everything to rationalize that it really happens in the real world. (Pun intended!)
2026-04-06 19:14:00 +0000 <mauke> it's like someone asking how I/O works in C and the first thing people point to is the struct layout of FILE in the glibc implementation of <stdio.h>
2026-04-06 19:13:35 +0000 <c_wraith> (though they can be part of an unboxed tuple of return values)
2026-04-06 19:13:34 +0000 <mauke> RealWorld is an irrelevant implementation detail of one particular Haskell implementation
2026-04-06 19:13:21 +0000 <int-e> Now, here's the real question: Did Rust steal zero-sized types from Haskell ;-)
2026-04-06 19:13:18 +0000 <c_wraith> they have some obvious restrictions as the result of this - they can't be the sole return value of a function, for instance.
2026-04-06 19:13:05 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-04-06 19:12:54 +0000AlexNoo__(~AlexNoo@85.174.183.185)
2026-04-06 19:12:20 +0000 <c_wraith> GHC supports values that exist in code, but not at run time.
2026-04-06 19:12:10 +0000AlexNoo_(~AlexNoo@85.174.183.185)
2026-04-06 19:12:09 +0000 <int-e> "exist" in the sense that they're stored in memory or a register
2026-04-06 19:12:01 +0000 <c_wraith> making GHC allow users to create zero-size values is actually a relatively new thing.
2026-04-06 19:12:00 +0000 <monochrom> Yes. But I am addressing what people choose to believe, and how to change their minds; not what is already true.
2026-04-06 19:12:00 +0000 <tomsmeding> (not to be confused with types that can have no values in the first place, i.e. types with kind different from Type)
2026-04-06 19:11:46 +0000AlexNoo__(~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)