2026/02/09

Newest at the top

2026-02-09 02:24:05 +0100omidmash6(~omidmash@user/omidmash) omidmash
2026-02-09 02:14:03 +0100 <jreicher> String is almost not a type at all.
2026-02-09 02:03:59 +0100tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2026-02-09 02:01:17 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-09 01:54:35 +0100 <lambdabot> AlanPerlis says: The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information.
2026-02-09 01:54:35 +0100 <ski> @quote stark
2026-02-09 01:54:19 +0100 <ski> (cf. using a `String' as an error message, vs. a data type. with the latter, you can e.g. localize it to different languages, portray it differently for different UIs, &c.)
2026-02-09 01:53:40 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-02-09 01:53:12 +0100 <ski> EvanR : with the former, you can do alternative analyses/semantics (perhaps sending the command to a different process, or pretty-printing it, or analyzing commands for potential trouble interaction, &c.)
2026-02-09 01:50:13 +0100xff0x(~xff0x@2405:6580:b080:900:94ad:d9ab:f90:90c7) (Ping timeout: 244 seconds)
2026-02-09 01:49:01 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-09 01:38:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-02-09 01:35:05 +0100Tuplanolla(~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) (Ping timeout: 250 seconds)
2026-02-09 01:33:02 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-09 01:28:16 +0100emmanuelux(~em@user/emmanuelux) emmanuelux
2026-02-09 01:24:57 +0100emmanuelux(~em@user/emmanuelux) (Read error: Connection reset by peer)
2026-02-09 01:21:58 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-02-09 01:20:07 +0100humasect_(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-02-09 01:18:55 +0100trickard_(~trickard@cpe-61-98-47-163.wireline.com.au)
2026-02-09 01:18:41 +0100trickard(~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-02-09 01:17:11 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-09 01:09:11 +0100forell(~forell@user/forell) forell
2026-02-09 01:06:18 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-02-09 01:04:14 +0100_JusSx_(~username@37.163.117.200) (Ping timeout: 244 seconds)
2026-02-09 01:01:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-09 00:53:18 +0100oskarw(~user@user/oskarw) (Ping timeout: 256 seconds)
2026-02-09 00:50:11 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-02-09 00:47:20 +0100rainbyte(~rainbyte@186.22.19.214) rainbyte
2026-02-09 00:45:38 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-09 00:34:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-02-09 00:33:34 +0100 <dolio> If you're going to write multiple interpreters for one, then it might be worth it. But you want IO to be as low overhead as possible, bascially.
2026-02-09 00:32:11 +0100 <geekosaur> tbh I've always considered that approach to be more useful conceptually than implementationally
2026-02-09 00:30:49 +0100 <dolio> IO specifically, that is.
2026-02-09 00:29:56 +0100 <dolio> Most likely the opposite.
2026-02-09 00:29:33 +0100 <dolio> I'm sure there are ways to do it, but the question is why you would, when being a free monad is likely not valuable at all.
2026-02-09 00:27:44 +0100 <geekosaur> although I can think of ways to make it work, especially given that FFI already doesn't really handle varargs
2026-02-09 00:27:37 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-09 00:27:18 +0100 <geekosaur> that too, yes
2026-02-09 00:26:55 +0100 <dolio> There's multiple problems with it. What about FFI?
2026-02-09 00:24:24 +0100 <geekosaur> also I think it doesn't extend nicely to threads?
2026-02-09 00:16:31 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-02-09 00:15:52 +0100twb(~twb@user/twb) twb
2026-02-09 00:13:00 +0100xff0x(~xff0x@2405:6580:b080:900:94ad:d9ab:f90:90c7)
2026-02-09 00:11:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-02-09 00:11:27 +0100 <EvanR> the IO system predates free monads being popularized by the blogosphere
2026-02-09 00:10:47 +0100 <ncf> oh you mean from a design perspective
2026-02-09 00:10:16 +0100 <chromoblob> ncf: case putStr "123" of PutStr "123" -> ...
2026-02-09 00:10:14 +0100 <mauke> is this that "final tagless" thing
2026-02-09 00:08:13 +0100xff0x(~xff0x@2405:6580:b080:900:cadf:d9b9:dcb4:a899) (Quit: xff0x)
2026-02-09 00:07:36 +0100 <EvanR> performance, and or "we didn't think of it"