Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,789,380 events total
2026-04-06 19:11:32 <tomsmeding> sure, but there's not even a _vlaue_ of type RealWorld
2026-04-06 19:11:35 <int-e> this particular one doesn't
2026-04-06 19:11:46 × AlexNoo__ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:12:00 <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:12:00 <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:01 <c_wraith> making GHC allow users to create zero-size values is actually a relatively new thing.
2026-04-06 19:12:09 <int-e> "exist" in the sense that they're stored in memory or a register
2026-04-06 19:12:10 AlexNoo_ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:12:20 <c_wraith> GHC supports values that exist in code, but not at run time.
2026-04-06 19:12:54 AlexNoo__ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:13:05 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-04-06 19:13:18 <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:21 <int-e> Now, here's the real question: Did Rust steal zero-sized types from Haskell ;-)
2026-04-06 19:13:34 <mauke> RealWorld is an irrelevant implementation detail of one particular Haskell implementation
2026-04-06 19:13:35 <c_wraith> (though they can be part of an unboxed tuple of return values)
2026-04-06 19:14:00 <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:14:03 <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:36 <int-e> And monochrom is cruel anough to tell them that RealWorld is entirely imaginary.
2026-04-06 19:14:39 <c_wraith> the model doesn't work for concurrent code, though. So... uh...
2026-04-06 19:14:54 <monochrom> ISTR Hugs old versions did it the free-monad way! But I can't find it now.
2026-04-06 19:14:58 × AlexNoo quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:15:15 <mauke> why did 10 lines of activity just pop up at once? how laggy is this connection? :-)
2026-04-06 19:15:30 <monochrom> Right, good for about 0th approximation only.
2026-04-06 19:15:31 <int-e> Wasn't there a [Reply] -> [Request] model at some point
2026-04-06 19:15:46 <c_wraith> yes, that predates Monad being part of the standard library
2026-04-06 19:15:53 AlexNoo joins (~AlexNoo@85.174.183.185)
2026-04-06 19:15:56 <mauke> that sounds like Haskell 1.3 or something
2026-04-06 19:16:10 <int-e> (it predates my exposure to Haskell)
2026-04-06 19:16:34 × AlexNoo_ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:17:05 × puke quits (~puke@user/puke) (Quit: puke)
2026-04-06 19:17:06 × AlexNoo__ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:17:18 m_a_r_k joins (~m_a_r_k@archlinux/support/mark)
2026-04-06 19:17:30 AlexNoo_ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:17:42 <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:18:14 AlexNoo__ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:19:29 <monochrom> Yeah very old Haskell did [Reply] -> [Request]. And provided a CPS wrapper.
2026-04-06 19:20:18 × AlexNoo quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:21:00 <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:21:13 AlexNoo joins (~AlexNoo@85.174.183.185)
2026-04-06 19:21:41 <int-e> eh a little nontermination never killed anybody
2026-04-06 19:21:46 <int-e> (quite the opposite)
2026-04-06 19:21:54 × AlexNoo_ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:22:00 <monochrom> (The CPS wrapper is then less error-prone in that regard.)
2026-04-06 19:22:26 × AlexNoo__ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:22:38 <monochrom> (I might say that, then, from CPS to monad is a fairly natural next step.)
2026-04-06 19:22:39 × preflex quits (~preflex@user/mauke/bot/preflex) (Remote host closed the connection)
2026-04-06 19:22:50 AlexNoo_ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:22:53 <int-e> (please nobody bring up the Therac-25... oops)
2026-04-06 19:23:12 <monochrom> :(
2026-04-06 19:23:16 preflex joins (~preflex@user/mauke/bot/preflex)
2026-04-06 19:23:34 AlexNoo__ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:23:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-04-06 19:25:38 × AlexNoo quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:26:33 AlexNoo joins (~AlexNoo@85.174.183.185)
2026-04-06 19:27:14 × AlexNoo_ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:27:46 × AlexNoo__ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:27:51 <monochrom> https://www.haskell.org/definition/from12to13.html So probably 1.2 was [Reply] -> [Request], 1.3 began the IO Monad.
2026-04-06 19:28:10 AlexNoo_ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:28:50 jmcantrell_ joins (~weechat@user/jmcantrell)
2026-04-06 19:28:58 AlexNoo__ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:29:06 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-04-06 19:30:58 × AlexNoo quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:31:53 AlexNoo joins (~AlexNoo@85.174.183.185)
2026-04-06 19:32:34 × AlexNoo_ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:33:30 AlexNoo_ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:33:38 × AlexNoo__ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:33:45 <monochrom> Wait, 1.4 had "List comprehensions have been generalized to arbitrary monads"? And 98 took it away?!
2026-04-06 19:33:54 <monochrom> :'(
2026-04-06 19:33:58 <geekosaur> yep
2026-04-06 19:34:14 AlexNoo__ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:34:17 <geekosaur> and then ghc gave it back as an extension
2026-04-06 19:34:28 monochrom proposes MonadComprehension for GHC2037
2026-04-06 19:36:18 × AlexNoo quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:37:13 AlexNoo joins (~AlexNoo@85.174.183.185)
2026-04-06 19:37:54 × AlexNoo_ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:38:06 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 255 seconds)
2026-04-06 19:38:26 × AlexNoo__ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:38:50 AlexNoo_ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:39:34 AlexNoo__ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:40:00 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-04-06 19:40:28 target_i joins (~target_i@user/target-i/x-6023099)
2026-04-06 19:41:09 jmcantrell_ joins (~weechat@user/jmcantrell)
2026-04-06 19:41:38 × AlexNoo quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:42:33 AlexNoo joins (~AlexNoo@85.174.183.185)
2026-04-06 19:43:14 × AlexNoo_ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:43:46 × AlexNoo__ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:44:10 AlexNoo_ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:44:58 AlexNoo__ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:45:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-04-06 19:46:58 × AlexNoo quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:47:53 AlexNoo joins (~AlexNoo@85.174.183.185)
2026-04-06 19:48:34 × AlexNoo_ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:48:46 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 276 seconds)
2026-04-06 19:48:57 AlexNoo_ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:49:38 × AlexNoo__ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:50:34 AlexNoo__ joins (~AlexNoo@85.174.183.185)
2026-04-06 19:52:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-04-06 19:52:18 × AlexNoo quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)
2026-04-06 19:53:13 AlexNoo joins (~AlexNoo@85.174.183.185)
2026-04-06 19:53:22 × AlexNoo_ quits (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds)

All times are in UTC.