2024/12/22

Newest at the top

2024-12-22 17:38:36 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 264 seconds)
2024-12-22 17:38:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-22 17:37:34 +0100 <ski> necessarily, `A' still holds, so `B' is also still holds), and then we can derive `[] A |- [] B' (when `A' holds even necessarily, `B' will then also hold necessarily). first step is comonadic unit (`extract'). second step is comonadic "preservation" (`(<<=)', `(=>>)')
2024-12-22 17:37:28 +0100 <ski> thirdofmay18081814goya : if `[]' represents "necessity" of some kind (alethic ("necessary"), temporal ("always","henceforth/hereafter","hitherto/heretofore"), epistemic ("is known by me"), doxastic ("is believed by me", deontic ("obligatory"), provability ("is provable in the formal system"), ..), then if we assume `A |- B' holds, then we can derive `[] A |- B' (under the stronger condition of `A' holding
2024-12-22 17:33:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-22 17:32:15 +0100 <ski> (`return'). second step is monadic extension (`(=<<)', `(>>=)'/"bind")
2024-12-22 17:31:23 +0100 <ski> we can derive `A |- <> B' (under the condition of `A', `B' holds, so `B' is possible), and then we can derive `<> A |- <> B' (should `A' hold only possibly, `B' will then still hold possibly). first step is monadic unit
2024-12-22 17:31:17 +0100 <ski> thirdofmay18081814goya : if `<>' represents "possibility" of some kind (alethic ("possible"), temporal ("sometimes","eventually/later","earlier/before"), epistemic ("is consistent with my knowledge / might hold for all i know"), doxastic ("is consistent with my belief", deontic ("permissible"), provability ("is consistent with derivability in the formal system"), ..), then if we assume `A |- B' holds, then
2024-12-22 17:25:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-22 17:25:07 +0100alecs(~alecs@61.pool85-58-154.dynamic.orange.es) (Ping timeout: 252 seconds)
2024-12-22 17:22:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-22 17:20:50 +0100alecs(~alecs@61.pool85-58-154.dynamic.orange.es) alecs
2024-12-22 17:19:24 +0100roosterphant(~roosterph@185.21.217.76)
2024-12-22 17:19:12 +0100swistak(~swistak@185.21.216.141)
2024-12-22 17:19:01 +0100roosterphant_(~roosterph@185.21.217.76) (Remote host closed the connection)
2024-12-22 17:18:55 +0100swistak(~swistak@185.21.216.141) (Quit: bye bye)
2024-12-22 17:18:35 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-22 17:07:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-22 17:07:11 +0100 <haskellbridge> <thirdofmay18081814goya> ski: I see! ty
2024-12-22 17:04:26 +0100 <albet70> what that is called?
2024-12-22 17:03:23 +0100 <albet70> like it capture k1 inside f, then call g with k1, then capture g's rest as k2, it jumps to k1 with k2
2024-12-22 17:03:14 +0100 <int-e> . o O ( deadlocks are bad, let's starve instead )
2024-12-22 17:03:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-22 17:02:54 +0100 <geekosaur> otherwise you risk deadlocks
2024-12-22 17:02:25 +0100 <geekosaur> anyway, AIUI one shared var in entire program is atomicModifyIORef, one shared between two given threads is MVar, anything more requires something more complex and STM is preferred these days
2024-12-22 17:02:09 +0100 <albet70> I learned scheme a few years ago, I saw a article about call/cc to do coroutine, it can jump between two functions with variable, but I can't find that article now
2024-12-22 17:01:21 +0100 <ski> thirdofmay18081814goya : "possible"-type modalities would be the ones which could be monadic, while "neccesary"-type ones could be comonadic
2024-12-22 17:01:15 +0100 <int-e> MutVar# != MVar# (MutVar# is STRef/IORef)
2024-12-22 17:00:26 +0100 <geekosaur> but it's a very low level thing
2024-12-22 17:00:08 +0100 <geekosaur> well, not primitive, MutVar# is the primitive
2024-12-22 16:59:54 +0100 <geekosaur> it's a primitive synchronization variable
2024-12-22 16:59:03 +0100 <albet70> what mvar is based on?
2024-12-22 16:53:03 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-22 16:52:13 +0100 <probie> If it's just a single variable, `MVar`s might be sufficient
2024-12-22 16:51:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-22 16:51:32 +0100lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds)
2024-12-22 16:47:25 +0100Digit(~user@user/digit) Digit
2024-12-22 16:47:13 +0100 <geekosaur> STM is the usual method
2024-12-22 16:45:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-22 16:40:29 +0100 <albet70> how to share or passing one variable between two async function? like there are async function f and g, jump between f and g with one variable so that f and g can both modify
2024-12-22 16:39:21 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-12-22 16:38:00 +0100 <albet70> hello everyone
2024-12-22 16:36:08 +0100 <haskellbridge> <thirdofmay18081814goya> well this could be a way to make that precise: a monad-encoding of a modal type is inhabited iff it's corresponding modal type is inhabited
2024-12-22 16:35:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-12-22 16:34:57 +0100 <ncf> do you mean anything precise by that
2024-12-22 16:33:26 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-12-22 16:32:17 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2024-12-22 16:31:49 +0100 <haskellbridge> <thirdofmay18081814goya> can Haskell monads simulate modal types?
2024-12-22 16:31:38 +0100 <haskellbridge> <thirdofmay18081814goya> I recall reading somewhere that modal types are given by monads
2024-12-22 16:30:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn