2025/02/04

Newest at the top

2025-02-04 21:00:44 +0100caconym(~caconym@user/caconym) caconym
2025-02-04 21:00:02 +0100caconym(~caconym@user/caconym) (Quit: bye)
2025-02-04 20:58:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-02-04 20:56:58 +0100_ht(~huub@62.250.52.179) _ht
2025-02-04 20:56:25 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-02-04 20:54:44 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-04 20:51:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-02-04 20:51:30 +0100supercode(~supercode@user/supercode) supercode
2025-02-04 20:50:31 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-04 20:46:51 +0100ljdarj1(~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
2025-02-04 20:45:44 +0100acidjnk_new3(~acidjnk@p200300d6e7283f07d9acb33bf68493bd.dip0.t-ipconnect.de) acidjnk
2025-02-04 20:45:09 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-02-04 20:44:40 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-02-04 20:41:57 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-02-04 20:40:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-02-04 20:36:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-02-04 20:33:50 +0100Googulator(~Googulato@2a01-036d-0106-418c-6daf-e703-6cee-d20f.pool6.digikabel.hu)
2025-02-04 20:33:34 +0100Googulator(~Googulato@2a01-036d-0106-418c-6daf-e703-6cee-d20f.pool6.digikabel.hu) (Quit: Client closed)
2025-02-04 20:32:29 +0100 <monochrom> Ah OK right, (s,) is Writer if we just need the functor part. OK I'm happy now, sorry for all the disagreements!
2025-02-04 20:27:01 +0100 <ncf> (and let's not forget the comonad that comes from the (r →) ⊣ (r, ) adjunction, the store comonad)
2025-02-04 20:26:26 +0100 <ncf> ...on reader or writer. in a sense you could say that state is more fundamental than the reader/writer monads/comonads
2025-02-04 20:25:30 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-02-04 20:25:22 +0100 <ncf> yes the adjunction comes before any monad or comonad structure
2025-02-04 20:25:00 +0100 <monochrom> But I guess Moggi said "I told you so".
2025-02-04 20:24:46 +0100 <monochrom> But yikes, 2-categories haha (dies inside).
2025-02-04 20:24:06 +0100 <monochrom> IIRC the correct pair of adjunction is Reader s and (s,), treating (s,) as just the obvious functor but it doesn't need to be a monad so we don't need s to be a monoid.
2025-02-04 20:21:55 +0100 <ncf> (the subtlety is that left adjoint monads are not dual to right adjoint monads in the 1-categorical sense; you have to dualise at the 2-categorical level for this to work out, but it's really the same idea)
2025-02-04 20:21:13 +0100acidjnk_new3(~acidjnk@p200300d6e7283f074c76d1a444d11045.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2025-02-04 20:21:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-02-04 20:21:01 +0100 <ncf> ok now i'm sure
2025-02-04 20:19:47 +0100 <ncf> but i'm not 100% sure this is true
2025-02-04 20:19:41 +0100 <ncf> now i want to claim that this is a left adjoint comonad and thus the right adjoint Reader r has a monad structure, which would be the usual Reader monad
2025-02-04 20:18:13 +0100 <ncf> and every object in Hask has a unique trivial comonoid structure for the cartesian monoidal structure, so you get Comonad ((,) r) for any r (this instance https://hackage.haskell.org/package/comonad-5.0.9/docs/src/Control.Comonad.html#line-156)
2025-02-04 20:17:29 +0100 <ncf> namely, any *co*monoid object R in a monoidal category has an action *comonad* R ⊗ —
2025-02-04 20:17:00 +0100 <ncf> but Reader r is also a monad without assuming that r is a monoid, and this can be explained dually
2025-02-04 20:16:25 +0100 <ncf> (this one https://hackage.haskell.org/package/comonad-5.0.9/docs/src/Control.Comonad.html#line-156)
2025-02-04 20:15:50 +0100 <ncf> now since Writer m has a right adjoint (Reader m), this is even an *adjoint monad* https://ncatlab.org/nlab/show/adjoint+monad, which automatically makes Reader m a comonad
2025-02-04 20:15:09 +0100 <ncf> so Writer m is the action monad of m for the cartesian monoidal structure on Hask
2025-02-04 20:14:44 +0100 <ncf> a categorical way to see Writer is the following: given any monoidal category (C, ⊗) and monoid object M in C, there's an action monad M ⊗ — whose multiplication is given by the multiplication of M (and similarly for the unit)
2025-02-04 20:12:22 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-02-04 20:11:42 +0100sabathan(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-02-04 20:10:58 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-02-04 20:10:07 +0100jespada(~jespada@2800:a4:2267:4f00:6988:7c40:be6b:df82) jespada
2025-02-04 20:08:30 +0100sabathan(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
2025-02-04 20:06:20 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-04 20:05:46 +0100 <ncf> Writer does not come from an adjunction on Hask (at least not obviously)
2025-02-04 20:05:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-02-04 20:02:14 +0100jespada(~jespada@2800:a4:2267:4f00:6988:7c40:be6b:df82) (Quit: My Mac has gone to sleep. ZZZzzz…)
2025-02-04 20:02:07 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-04 20:00:49 +0100 <monochrom> Writer presumes that s is a monoid but State doesn't. How does that adjunction work?