Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,799,201 events total
2026-02-08 22:56:04 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-08 22:58:01 × Square2 quits (~Square@user/square) (Remote host closed the connection)
2026-02-08 22:59:20 Square2 joins (~Square@user/square)
2026-02-08 23:01:10 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-02-08 23:01:36 <EvanR> returning an IO action is basically free monad if you think IO is like a huge free monad
2026-02-08 23:02:19 <EvanR> if the semantic value is a command to be executed... then the command data type or the command action itself could both be considered that
2026-02-08 23:02:48 krei-se joins (~krei-se@p200300f1cfff3e880001000000000001.dip0.t-ipconnect.de)
2026-02-08 23:03:06 × tromp quits (~textual@2001:1c00:3487:1b00:199:803c:4cc4:404b) (Quit: My iMac has gone to sleep. ZZZzzz…)
2026-02-08 23:03:49 <EvanR> parse don't validate violation seems to be a different situation, where you validate something and then later run another parser on it
2026-02-08 23:04:03 <EvanR> the original data
2026-02-08 23:07:02 <chromoblob> why isn't IO a free monad actually?
2026-02-08 23:07:31 <ncf> can't pattern match on it
2026-02-08 23:07:36 <EvanR> performance, and or "we didn't think of it"
2026-02-08 23:08:13 × xff0x quits (~xff0x@2405:6580:b080:900:cadf:d9b9:dcb4:a899) (Quit: xff0x)
2026-02-08 23:10:14 <mauke> is this that "final tagless" thing
2026-02-08 23:10:16 <chromoblob> ncf: case putStr "123" of PutStr "123" -> ...
2026-02-08 23:10:47 <ncf> oh you mean from a design perspective
2026-02-08 23:11:27 <EvanR> the IO system predates free monads being popularized by the blogosphere
2026-02-08 23:11:49 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-08 23:13:00 xff0x joins (~xff0x@2405:6580:b080:900:94ad:d9ab:f90:90c7)
2026-02-08 23:15:52 twb joins (~twb@user/twb)
2026-02-08 23:16:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-02-08 23:24:24 <geekosaur> also I think it doesn't extend nicely to threads?
2026-02-08 23:26:55 <dolio> There's multiple problems with it. What about FFI?
2026-02-08 23:27:18 <geekosaur> that too, yes
2026-02-08 23:27:37 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-08 23:27:44 <geekosaur> although I can think of ways to make it work, especially given that FFI already doesn't really handle varargs
2026-02-08 23:29:33 <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-08 23:29:56 <dolio> Most likely the opposite.
2026-02-08 23:30:49 <dolio> IO specifically, that is.
2026-02-08 23:32:11 <geekosaur> tbh I've always considered that approach to be more useful conceptually than implementationally
2026-02-08 23:33:34 <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-08 23:34:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-02-08 23:45:38 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-08 23:47:20 rainbyte joins (~rainbyte@186.22.19.214)
2026-02-08 23:50:11 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-02-08 23:53:18 × oskarw quits (~user@user/oskarw) (Ping timeout: 256 seconds)
2026-02-09 00:01:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-09 00:04:14 × _JusSx_ quits (~username@37.163.117.200) (Ping timeout: 244 seconds)
2026-02-09 00:06:18 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-02-09 00:09:11 forell joins (~forell@user/forell)
2026-02-09 00:17:11 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-09 00:18:41 × trickard quits (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-02-09 00:18:55 trickard_ joins (~trickard@cpe-61-98-47-163.wireline.com.au)
2026-02-09 00:20:07 humasect_ joins (~humasect@dyn-192-249-132-90.nexicom.net)
2026-02-09 00:21:58 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-02-09 00:24:57 × emmanuelux quits (~em@user/emmanuelux) (Read error: Connection reset by peer)
2026-02-09 00:28:16 emmanuelux joins (~em@user/emmanuelux)
2026-02-09 00:33:02 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-09 00:35:05 × Tuplanolla quits (~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) (Ping timeout: 250 seconds)
2026-02-09 00:38:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-02-09 00:49:01 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-09 00:50:13 × xff0x quits (~xff0x@2405:6580:b080:900:94ad:d9ab:f90:90c7) (Ping timeout: 244 seconds)
2026-02-09 00:53:12 <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 00:53:40 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-02-09 00:54:19 <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 00:54:35 <ski> @quote stark
2026-02-09 00:54:35 <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:01:17 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-09 01:03:59 × tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in)
2026-02-09 01:14:03 <jreicher> String is almost not a type at all.
2026-02-09 01:24:05 omidmash6 joins (~omidmash@user/omidmash)
2026-02-09 01:26:36 × omidmash quits (~omidmash@user/omidmash) (Ping timeout: 265 seconds)
2026-02-09 01:26:36 omidmash6 is now known as omidmash
2026-02-09 01:26:43 × trickard_ quits (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-02-09 01:26:56 trickard_ joins (~trickard@cpe-61-98-47-163.wireline.com.au)
2026-02-09 01:28:09 × Square2 quits (~Square@user/square) (Ping timeout: 260 seconds)
2026-02-09 01:35:35 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-02-09 01:42:00 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-02-09 01:42:30 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Client Quit)
2026-02-09 01:44:20 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
2026-02-09 01:45:01 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-02-09 01:47:02 × emmanuelux quits (~em@user/emmanuelux) (Read error: Connection reset by peer)
2026-02-09 01:47:24 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-09 01:49:42 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
2026-02-09 01:50:19 emmanuelux joins (~em@user/emmanuelux)
2026-02-09 01:52:32 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-02-09 01:53:42 emmanuelux_ joins (~em@2a01cb011051ddce36cff6fffefa7e31.ipv6.abo.wanadoo.fr)
2026-02-09 01:53:43 × emmanuelux quits (~em@user/emmanuelux) (Read error: Connection reset by peer)
2026-02-09 01:59:27 × twb quits (~twb@user/twb) (Read error: Connection reset by peer)
2026-02-09 01:59:49 twb joins (~twb@user/twb)
2026-02-09 02:00:55 × otto_s quits (~user@p5de2f96c.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2026-02-09 02:01:45 weary-traveler joins (~user@user/user363627)
2026-02-09 02:02:23 otto_s joins (~user@p5b044c1a.dip0.t-ipconnect.de)
2026-02-09 02:02:45 × ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj)
2026-02-09 02:02:50 user363627 joins (~user@user/user363627)
2026-02-09 02:03:30 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-09 02:03:35 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Quit: xff0x)
2026-02-09 02:03:48 emmanuelux joins (~em@user/emmanuelux)
2026-02-09 02:04:06 × emmanuelux_ quits (~em@2a01cb011051ddce36cff6fffefa7e31.ipv6.abo.wanadoo.fr) (Ping timeout: 244 seconds)
2026-02-09 02:06:02 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-02-09 02:07:06 × weary-traveler quits (~user@user/user363627) (Ping timeout: 244 seconds)
2026-02-09 02:08:08 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-02-09 02:10:26 × emmanuelux quits (~em@user/emmanuelux) (Read error: Connection reset by peer)
2026-02-09 02:13:48 emmanuelux joins (~em@user/emmanuelux)
2026-02-09 02:17:49 <ncf> huh?
2026-02-09 02:18:53 twb parts (~twb@user/twb) (rcirc on GNU Emacs 30.1)
2026-02-09 02:19:17 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
2026-02-09 02:26:47 <jreicher> I just mean it's often a bucket for unstructured data. Some uses I've seen feel more like the developer not bothering to figure out the type rather than really determining it's a String.
2026-02-09 02:26:56 × kimiamania4 quits (~b4b260c9@user/kimiamania) (Quit: Ping timeout (120 seconds))

All times are in UTC.