tag:blogger.com,1999:blog-11295132.post1982948805908213964..comments2016-02-10T07:27:46.623-08:00Comments on A Neighborhood of Infinity: From Monoids to MonadsDan Piponihttps://plus.google.com/107913314994758123748noreply@blogger.comBlogger17125tag:blogger.com,1999:blog-11295132.post-5519090955182281682015-07-21T17:28:32.251-07:002015-07-21T17:28:32.251-07:00The most general type signature for (<*>) (w...The most general type signature for (<*>) (which works for me) would be<br /><br />(<*>) :: (f b -> c) -> (a -> b) -> f a -> cBooktopushttp://www.blogger.com/profile/14897348231901964649noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-76037335113436258662010-10-05T16:24:40.046-07:002010-10-05T16:24:40.046-07:00I think "m (m a b) c == m a (m b c)" sho...I think "m (m a b) c == m a (m b c)" should be "mult (mult a b) c == mult a (mult b c)" and "law1_left == law1_middle" should be "law1_left x == law1_middle x".xohttp://www.blogger.com/profile/17783105866399018368noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-17561531851306654182010-09-05T08:08:32.188-07:002010-09-05T08:08:32.188-07:00Re: "A monad is just a monoid in the category...Re: "A monad is just a monoid in the category of endofunctors, what's the problem?" (seems to be attributed to Wadler)<br /><br />Aw crap, now this isn't just a joke to me, it's a meaningful question.Andrewnoreply@blogger.comtag:blogger.com,1999:blog-11295132.post-5320154960950822982010-07-26T16:13:20.159-07:002010-07-26T16:13:20.159-07:00With kind polymorphism (supported by UHC), monads ...With kind polymorphism (supported by UHC), monads and monoids can be written as a single type class.<br /><br />http://hpaste.org/fastcgi/hpaste.fcgi/view?id=28248ghttp://www.blogger.com/profile/04686862403622560424noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-38187360133395060922009-01-27T21:10:00.000-08:002009-01-27T21:10:00.000-08:00Apparently the term monad for the categorical thin...Apparently the term monad for the categorical thing is due to Jean BĂ©nabou. If he's still around someone could ask him.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-11295132.post-57352848339236778302008-12-11T07:09:00.000-08:002008-12-11T07:09:00.000-08:00When you writem (m a b) c == m a (m b c)I think yo...When you write<BR/><BR/>m (m a b) c == m a (m b c)<BR/><BR/>I think you mean mult, not m.Seth Tisuehttp://www.blogger.com/profile/18193878850743685199noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-10968556987537312422008-11-13T09:42:00.000-08:002008-11-13T09:42:00.000-08:00gie,> Is it possible to define extend this futh...gie,<BR/><BR/>> Is it possible to define extend this futher?<BR/><BR/>Depends what you mean by 'this'. For example, <A HREF="http://sigfpe.blogspot.com/2008/08/hopf-algebra-group-monad.html" REL="nofollow">this</A> already shows how to do what you want for algebras. But that example is more successful than this. In that post, I really did unify different algebraic structures as a single Haskell object. In this post I just have definitions that are textually similar but represent quite different things in the Haskell universe. I 'm not sure I could construct a single Haskell object that unified all the senses of monoid you describe. I think this should be seen as a pointer to what we might want from future programming languages. OTOH I wouldn't rule it out Haskell completely...sigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-38521516792878877912008-11-13T06:54:00.000-08:002008-11-13T06:54:00.000-08:00Kea,The mathematical folklore is that this sense o...Kea,<BR/><BR/>The mathematical folklore is that this sense of monad is derived from 'monoid' and 'triad' and is independent of older uses.sigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-31322885065570269462008-11-12T22:16:00.000-08:002008-11-12T22:16:00.000-08:00Actually, monad is a very old word, most notably u...Actually, monad is a very old word, most notably used by Leibniz.Keahttp://www.blogger.com/profile/05652514294703722285noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-7914728107019492012008-11-09T09:59:00.000-08:002008-11-09T09:59:00.000-08:00A Haskell newbie question: Is it possible to defin...A Haskell newbie question: Is it possible to define extend this futher? I mean, define an algebra over R as a monoid in (R-Vect, tensor, R), a category as a monoid in category of O-graphs, a strict monoidal category as a monoid in Cat and so on?gienoreply@blogger.comtag:blogger.com,1999:blog-11295132.post-61775821285768874422008-11-09T07:43:00.000-08:002008-11-09T07:43:00.000-08:00Jeremy,Yes!Jeremy,<BR/><BR/>Yes!sigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-48789817002164887752008-11-09T01:56:00.000-08:002008-11-09T01:56:00.000-08:00Saizan: if I try that I get errors in the definiti...Saizan: if I try that I get errors in the definitions of law2_left' and law2_right'Sjoerd Visscherhttp://www.blogger.com/profile/10698430967044536619noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-68685010707120840512008-11-08T19:54:00.000-08:002008-11-08T19:54:00.000-08:00this works here:(<*>) :: Functor a => (fo...this works here:<BR/>(<*>) :: Functor a => (forall x.a x -> c x) -> (forall x.b x -> d x) -> (forall x.a (b x) -> c (d x))<BR/>f <*> g = f . fmap gSaizanhttp://www.blogger.com/profile/07314943153376710289noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-37562831046086546442008-11-08T19:16:00.000-08:002008-11-08T19:16:00.000-08:00Actually, the connection is immediate. A lax func...Actually, the connection is immediate. A lax functor from the terminal category into another category is just a monoid object so (of course, this is necessary) this is just a different perspective on the same construction.Derek Elkinsnoreply@blogger.comtag:blogger.com,1999:blog-11295132.post-12728044433751725962008-11-08T19:03:00.000-08:002008-11-08T19:03:00.000-08:00In the forth paragraph you wrote:mult id x == x di...In the forth paragraph you wrote:<BR/><BR/>mult id x == x <BR/><BR/>did you mean?<BR/><BR/>mult one x == xJeremy Shawhttp://www.blogger.com/profile/18373967098081701148noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-10096498174830172652008-11-08T17:50:00.000-08:002008-11-08T17:50:00.000-08:00Monads and monoids are related in many ways. This...Monads and monoids are related in many ways. This is one of them, namely that a monad is a monoid object in Cat. Another simple one is that the structure of monoids can be given with a monad (just as with any algebraic structure.) Another is that we can generalize monads from Cat to arbitrary bicategories. Then monoids are special cases of monads, though this isn't terribly interesting.<BR/><BR/>I came across another way of characterizing monads several months ago that is interesting. A lax functor from a category into Cat (or presumably any bicategory), is like a normal functor except instead of id = F id and Ff . Fg = F(g . f) we have natural tranformations id -> F id and Ff . Fg -> F(g . f) that satisfy the "obvious" coherence conditions. A monad is then simply a lax functor 1 -> Cat.<BR/><BR/>(See <A HREF="http://www.numdam.org/numdam-bin/fitem?id=CTGDC_1972__13_3_217_0" REL="nofollow">Two constructions on lax functors</A>)Derek Elkinsnoreply@blogger.comtag:blogger.com,1999:blog-11295132.post-10707971582193520702008-11-08T17:46:00.000-08:002008-11-08T17:46:00.000-08:00This works, but it's rather boring:(<*>)...This works, but it's rather boring:<BR/><BR/>(<*>) :: (Functor a, Functor b, Functor c, Functor d) => (a (d x) -> c (d y)) -> (b z -> d x) -> a (b z) -> c (d y)Sjoerd Visscherhttp://www.blogger.com/profile/10698430967044536619noreply@blogger.com