2025/02/21

Newest at the top

2025-02-21 11:21:29 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) gabriel_sevecek
2025-02-21 11:21:00 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 276 seconds)
2025-02-21 11:19:19 +0100misterfish(~misterfis@h239071.upc-h.chello.nl) (Ping timeout: 260 seconds)
2025-02-21 11:14:51 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-02-21 11:13:30 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 272 seconds)
2025-02-21 11:08:57 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-21 11:08:51 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-02-21 11:06:10 +0100Googulator85(~Googulato@81.183.235.203) (Ping timeout: 240 seconds)
2025-02-21 10:56:52 +0100Googulator85(~Googulato@81.183.235.203)
2025-02-21 10:56:51 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-02-21 10:56:31 +0100Googulator85(~Googulato@81.183.235.203) (Quit: Client closed)
2025-02-21 10:53:55 +0100comerijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Read error: Connection reset by peer)
2025-02-21 10:53:44 +0100merijn(~merijn@77.242.116.146) merijn
2025-02-21 10:51:38 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
2025-02-21 10:39:52 +0100hattckory(~hattckory@149.102.242.103)
2025-02-21 10:39:40 +0100hattckory(~hattckory@149.102.242.103) (Remote host closed the connection)
2025-02-21 10:35:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-02-21 10:34:32 +0100Googulator85(~Googulato@81.183.235.203)
2025-02-21 10:33:14 +0100acidjnk(~acidjnk@p200300d6e7283f0719c6a4240347dc57.dip0.t-ipconnect.de) acidjnk
2025-02-21 10:32:26 +0100comerijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-02-21 10:27:54 +0100random-jellyfish(~developer@user/random-jellyfish) random-jellyfish
2025-02-21 10:27:00 +0100 <ski> (in Concurrent ML (library model for concurrency, available for some ML systems), you can construct "events", which will trigger upon certain conditions. you can syncrhonize/await on such an event. given an event, you can attach a post-processing step to it, to be applied to the generated value, when the event triggers. this basically forms a monad (so covariant functor), iirc)
2025-02-21 10:24:53 +0100eL_Bart0(eL_Bart0@dietunichtguten.org)
2025-02-21 10:24:18 +0100 <ski> thirdofmay18081814goya : read-only view of a mutable cell can be made covariant, write-only view can be made contravariant -- if we allow attaching a post- / pre- processing step to them, respectively. ditto for read-end and write-end of a concurrent channel
2025-02-21 10:23:54 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 260 seconds)
2025-02-21 10:21:53 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) atwm
2025-02-21 10:21:35 +0100 <haskellbridge> <magic_rb> Anyone seen the person behind https://github.com/l-Shane-l/tiny-wlhs around? I seem to recall seeing them either here or in the matrix room. Im thinking about just hard switching to it, to force myself to fix any bugs i run into :)
2025-02-21 10:19:28 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-21 10:18:04 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 260 seconds)
2025-02-21 10:17:25 +0100Guest5922vpan
2025-02-21 10:17:06 +0100sprotte24(~sprotte24@p200300d16f15cb0045bb3ddcfddbb48e.dip0.t-ipconnect.de)
2025-02-21 10:16:59 +0100vpanGuest5922
2025-02-21 10:16:35 +0100vpan(~vpan@212.117.1.172)
2025-02-21 10:13:34 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) atwm
2025-02-21 10:07:59 +0100vpan(~vpan@212.117.1.172) (Ping timeout: 260 seconds)
2025-02-21 10:04:52 +0100 <dminuoso> I'm not sure.
2025-02-21 10:04:45 +0100 <dminuoso> And Star generalizes to arbitrary Functor?
2025-02-21 10:04:38 +0100 <dminuoso> My feeling is that Kleisli uses `liftM` in a bunch of places, perhaps because there may be edge cases where it may be faster than a generalized `fmap`?
2025-02-21 10:03:40 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 252 seconds)
2025-02-21 10:02:50 +0100 <dminuoso> Im not entirely sure why both `Star` and `Kleisli` exist.
2025-02-21 10:02:47 +0100vpan(~vpan@212.117.1.172)
2025-02-21 10:01:51 +0100 <dminuoso> Ah let me make one correction, of course for Kleisli technically we only need `Functor`.
2025-02-21 09:57:11 +0100 <haskellbridge> <thirdofmay18081814goya> this point of view was extremely helpful, ty! the definition makes perfect sense now
2025-02-21 09:56:00 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
2025-02-21 09:55:45 +0100 <dminuoso> Just like you can map over inputs (contravariantly) and outputs (covariantly) in `a -> b`
2025-02-21 09:55:28 +0100 <dminuoso> Because at the end, even in `a -> IO b` you can map over the input, and the eventual output of the IO action.
2025-02-21 09:54:54 +0100 <dminuoso> So this starts to generalize even more.
2025-02-21 09:54:36 +0100 <dminuoso> But it's really just about `a -> IO b`. And it so happens that for every Monad m, `Kleisli m` is such a profunctor.
2025-02-21 09:53:56 +0100 <dminuoso> Except because of how our typesystem works we have to make it a `newtype Kleisli m a b = Kleisli { runKleisli a -> m b }` and call `Kleisli IO` a profunctor.
2025-02-21 09:53:21 +0100 <dminuoso> Say `a -> IO b` is something that you too can see as an (effectul) transformation