2026/05/17

Newest at the top

2026-05-17 20:11:15 +0000tri(~tri@ool-4a5ac1f4.dyn.optonline.net)
2026-05-17 20:09:43 +0000Inline(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) (Quit: KVIrc 5.2.8 Quasar http://www.kvirc.net/)
2026-05-17 20:08:22 +0000tjbc(~tjbc@user/fliife) fliife
2026-05-17 20:02:57 +0000 <monochrom> :)
2026-05-17 20:02:46 +0000 <Rembane> And it seems to be way older than both Haskell and the paper that introduced Monads to the language. Which makes it all even better.
2026-05-17 20:02:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-05-17 20:01:49 +0000 <Rembane> That's excellent!
2026-05-17 20:01:07 +0000Eoco(~ian@128.101.131.218) (Ping timeout: 272 seconds)
2026-05-17 20:00:26 +0000 <monochrom> Yes.
2026-05-17 20:00:21 +0000 <Rembane> Is that Categories for the Working Mathematician?
2026-05-17 19:57:40 +0000petrichor(~jez@user/petrichor) (Ping timeout: 256 seconds)
2026-05-17 19:57:34 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-17 19:56:49 +0000 <monochrom> I didn't know either. Just a few days ago a friend showed me it in Mac Lane's textbook.
2026-05-17 19:56:14 +0000 <monochrom> BTW even Emily Riehl doesn't seem to know that "monad is just monoid in category of endofunctors" really first came from Mac Lane's textbook, not Wadler or even Iry.
2026-05-17 19:55:22 +0000Eoco(~ian@128.101.131.218) Eoco
2026-05-17 19:51:23 +0000petrichor(~jez@user/petrichor) petrichor
2026-05-17 19:51:00 +0000target_i(~target_i@user/target-i/x-6023099) target_i
2026-05-17 19:50:34 +0000 <monochrom> It was not just SPJ. And the monad solution was well-researched. But it's funny to pin it on someone famous and also depict it as cheating. :)
2026-05-17 19:49:32 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: sjnvks)
2026-05-17 19:49:18 +0000 <tomsmeding> lame
2026-05-17 19:49:06 +0000 <monochrom> Oh it's just the usual "I/O is in conflict with purity".
2026-05-17 19:47:34 +0000 <tomsmeding> I don't have the historical context to appreciate the title though
2026-05-17 19:47:15 +0000 <tomsmeding> lol
2026-05-17 19:46:25 +0000 <monochrom> tomsmeding: Consider https://this-plt-life.tumblr.com/post/44462204757/simon-peyton-jones-adding-the-io-monad-to-haskell >:)
2026-05-17 19:45:11 +0000 <monochrom> Yeah that.
2026-05-17 19:44:44 +0000 <geekosaur> -no-ghci-sandbox iirc
2026-05-17 19:44:38 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-17 19:44:27 +0000 <geekosaur> it is sometimes used idiomatically for that
2026-05-17 19:44:11 +0000 <monochrom> Hey that one I know! Starting with some GHC version (therefore people were surprised during the transition), ghci is built with -threaded, plus every expression you enter at the REPL enjoys its own forkIO. That broke some people entering GUI expressions at the REPL. So later ghci added a "don't forkIO" option.
2026-05-17 19:43:59 +0000petrichor(~jez@user/petrichor) (Ping timeout: 268 seconds)
2026-05-17 19:43:37 +0000 <tomsmeding> I didn't get further than "whittle" which is not great
2026-05-17 19:43:27 +0000 <tomsmeding> oh pruning is better yes
2026-05-17 19:43:19 +0000 <geekosaur> but that would be pruning
2026-05-17 19:43:14 +0000tri(~tri@ool-4a5ac1f4.dyn.optonline.net) (Ping timeout: 248 seconds)
2026-05-17 19:43:13 +0000 <tomsmeding> (playground)
2026-05-17 19:43:08 +0000 <tomsmeding> or more concretely, selectively removing packages from a list until they configure & build together
2026-05-17 19:43:06 +0000 <geekosaur> "shaving" is what I'd usually say
2026-05-17 19:42:44 +0000 <tomsmeding> what is a good verb for removing bits from an object to make it fit a hole
2026-05-17 19:40:54 +0000Eoco(~ian@128.101.131.218) (Ping timeout: 268 seconds)
2026-05-17 19:40:33 +0000Square(~Square@user/square) Square
2026-05-17 19:39:47 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-17 19:39:36 +0000 <geekosaur> *tomsmeding (I kan type)
2026-05-17 19:38:41 +0000 <geekosaur> they even added an option to ghci to allow working with such toolkits, since it's threaded by default
2026-05-17 19:38:30 +0000 <tomsmeding> (through thread-local state)
2026-05-17 19:38:05 +0000 <geekosaur> but (and this is one of the things tomsneding is talking about) some opengl toolkits blow up kind of spectacularly with -threaded
2026-05-17 19:37:25 +0000 <geekosaur> FFI is less tolerant of things inappropriately marked "unsafe" without -threaded, iirc
2026-05-17 19:36:26 +0000Eoco(~ian@128.101.131.218) Eoco
2026-05-17 19:36:24 +0000 <geekosaur> the toolkit folks have been dealing with this for decades, they know what performs best
2026-05-17 19:36:17 +0000spew(~spew@user/spew) (Quit: nyaa~)
2026-05-17 19:36:04 +0000 <geekosaur> it's possible, but it's still far more performant to designate a UI thread and forward all UI queries/updates to it