Newest at the top
| 2026-04-06 19:18:14 +0000 | AlexNoo__ | (~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 +0000 | AlexNoo_ | (~AlexNoo@85.174.183.185) |
| 2026-04-06 19:17:18 +0000 | m_a_r_k | (~m_a_r_k@archlinux/support/mark) m_a_r_k |
| 2026-04-06 19:17:06 +0000 | AlexNoo__ | (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds) |
| 2026-04-06 19:17:05 +0000 | puke | (~puke@user/puke) (Quit: puke) |
| 2026-04-06 19:16:34 +0000 | AlexNoo_ | (~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 +0000 | AlexNoo | (~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 +0000 | AlexNoo | (~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 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-04-06 19:12:54 +0000 | AlexNoo__ | (~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 +0000 | AlexNoo_ | (~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 +0000 | AlexNoo__ | (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds) |
| 2026-04-06 19:11:35 +0000 | <int-e> | this particular one doesn't |
| 2026-04-06 19:11:32 +0000 | <tomsmeding> | sure, but there's not even a _vlaue_ of type RealWorld |
| 2026-04-06 19:11:31 +0000 | <int-e> | most of them |
| 2026-04-06 19:11:28 +0000 | <int-e> | raincomplex: but values exist |
| 2026-04-06 19:11:15 +0000 | <raincomplex> | isn't it true that most of the type system doesn't exist in the final code? |
| 2026-04-06 19:11:14 +0000 | AlexNoo_ | (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds) |
| 2026-04-06 19:10:54 +0000 | <tomsmeding> | I guess |
| 2026-04-06 19:10:48 +0000 | <int-e> | because in a way it does exist, it just has no material manifestation whatsoever |
| 2026-04-06 19:10:43 +0000 | <tomsmeding> | OK I can get behind that |
| 2026-04-06 19:10:33 +0000 | AlexNoo | (~AlexNoo@85.174.183.185) |
| 2026-04-06 19:10:28 +0000 | <monochrom> | Right, I am saying that looking at the assembly code is the beginning of realizing that something special, not shown in source code, is going on. |
| 2026-04-06 19:10:18 +0000 | <int-e> | " |
| 2026-04-06 19:10:17 +0000 | <int-e> | tomsmeding: well. I guess I shouldn't say "no |
| 2026-04-06 19:10:10 +0000 | AlexNoo | (~AlexNoo@85.174.183.185) (Ping timeout: 248 seconds) |
| 2026-04-06 19:09:02 +0000 | <tomsmeding> | sure |
| 2026-04-06 19:08:56 +0000 | <int-e> | tomsmeding: no, but the function is different from its result value |
| 2026-04-06 19:08:50 +0000 | <c_wraith> | int-e: yes. What's going on is that at level procedures exist. :) |