2024/04/28

Newest at the top

2024-04-28 23:39:10 +0200 <EvanR> doors
2024-04-28 23:39:06 +0200 <EvanR> gifts, riddles,
2024-04-28 23:38:43 +0200 <EvanR> all the best things come in threes
2024-04-28 23:36:10 +0200 <monochrom> haha
2024-04-28 23:35:53 +0200 <mauke> I wish my handlers were models
2024-04-28 23:35:21 +0200 <dolio> Handlers are models, if I recall correctly.
2024-04-28 23:35:19 +0200 <ncf> (that's why monads are spelt T everywhere)
2024-04-28 23:34:45 +0200 <mauke> baby-step semantics
2024-04-28 23:34:44 +0200 <geekosaur> don't amke me haul out Mac Lane
2024-04-28 23:34:38 +0200 <monochrom> The "handler" part does not require a monad though; in fact it is not even required to be "algebraic". More concretely, for example Maybe: Just and Nothing are the algebraic part and where you require a monad, but the handler `maybe` is where you can map Maybe X to whatever Y you like; it is also not "algebraic".
2024-04-28 23:34:29 +0200 <ncf> monads used to be called triples
2024-04-28 23:34:26 +0200 <tomsmeding> more things in math are a triple than not
2024-04-28 23:34:06 +0200 <ncf> triple
2024-04-28 23:33:54 +0200 <tomsmeding> "why 'T'" "well, it's a theory" "it's a monad" "ok" "call it \mathcal M" "ok"
2024-04-28 23:33:39 +0200michalz(~michalz@185.246.207.217) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-28 23:33:33 +0200 <tomsmeding> I was writing a paper with my PhD advisor and he wrote a part of the thing that talked about a monad; he wrote it \mathcal T
2024-04-28 23:32:34 +0200 <tomsmeding> ah yes, I now remember mathematicians using those words
2024-04-28 23:32:07 +0200 <dolio> IO is the signature or theory. The 'effects' are related to the generators, which would be like `getChar` for IO. At least in the literature.
2024-04-28 23:31:35 +0200Square(~Square@user/square) (Ping timeout: 245 seconds)
2024-04-28 23:30:04 +0200 <ncf> that's what playgrounds are for
2024-04-28 23:29:35 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-04-28 23:29:19 +0200 <tomsmeding> baby steps
2024-04-28 23:28:52 +0200 <tomsmeding> Rembane: yay!
2024-04-28 23:28:43 +0200 <tomsmeding> I see
2024-04-28 23:28:23 +0200 <monochrom> Right, Koka doesn't expose any monad. But you start postulating monads for semantics.
2024-04-28 23:28:16 +0200 <Rembane> tomsmeding: I just saw your new version of the Haskell playground and I like it!
2024-04-28 23:27:09 +0200 <tomsmeding> (I should read something about this topic before I go sprouting nonsense though)
2024-04-28 23:26:34 +0200Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 255 seconds)
2024-04-28 23:25:59 +0200cashew(~cashewsta@65.17.175.150) (Ping timeout: 252 seconds)
2024-04-28 23:25:47 +0200madeleine-sydney(~madeleine@c-76-155-235-153.hsd1.co.comcast.net)
2024-04-28 23:25:36 +0200 <tomsmeding> can't you define a system of effects-and-handlers, like some languages have (Koka? Never used it though), from first principles without involving a monad?
2024-04-28 23:24:28 +0200 <probie> Can you have a useful implementation for algebraic effects which isn't a monad? I guess if you disallow effects (definition 2) from depending on each other, you can have something weaker that's still of use
2024-04-28 23:24:09 +0200mreh(~matthew@host86-160-168-68.range86-160.btcentralplus.com) (Ping timeout: 256 seconds)
2024-04-28 23:20:57 +0200tomsmedingdoesn't actually know how the mathematical theory for this goes
2024-04-28 23:20:50 +0200cashew(~cashewsta@65.17.175.150)
2024-04-28 23:20:27 +0200 <monochrom> I think all papers I read (OK, only two) presume monads for algebraic effects. I don't mean to say a programming language has to expose the monads. Just that they have monads behind.
2024-04-28 23:19:19 +0200 <tomsmeding> "affect your effects using monad transformers"
2024-04-28 23:17:34 +0200 <tomsmeding> s/are,/are/
2024-04-28 23:17:31 +0200 <int-e> using monads to great effect
2024-04-28 23:17:03 +0200 <tomsmeding> but algebraic effect systems also do, and those are not necessarily monads (though they invariably are, in haskell)
2024-04-28 23:14:57 +0200 <tomsmeding> monads allow you to perform effects (both definitions)
2024-04-28 23:14:38 +0200 <tomsmeding> reading input is an effect (definition 1), and `getChar` is also an effect (definition 2)
2024-04-28 23:14:16 +0200 <tomsmeding> I would personally never call "IO" an effect, though
2024-04-28 23:13:06 +0200 <tomsmeding> I think so?
2024-04-28 23:12:48 +0200 <monochrom> maybe they just say monad...
2024-04-28 23:12:11 +0200 <monochrom> OK, maybe Maybe then.
2024-04-28 23:11:39 +0200 <tomsmeding> I have never seen a mathematician talk about reading input :)
2024-04-28 23:11:37 +0200gorignak(~gorignak@user/gorignak)
2024-04-28 23:11:21 +0200 <monochrom> Ah, then what do mathematicians call the former?
2024-04-28 23:11:05 +0200 <tomsmeding> the former if you're talking to a functional programmer