tag:blogger.com,1999:blog-11295132.post29861029775144620..comments2019-09-09T05:26:56.880-07:00Comments on A Neighborhood of Infinity: Lawvere theories made a bit easiersigfpehttp://www.blogger.com/profile/08096190433222340957noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-11295132.post-64143923667311076712013-05-27T10:29:36.279-07:002013-05-27T10:29:36.279-07:00I haven't seen a type class for Lawvere theori...I haven't seen a type class for Lawvere theories anywhere. What would that look like?<br /><br />About combining effects in Haskell, there is the paper "Combining Effects using Coproducts." It's a really simple idea: it's like a free monad, but each layer can have two constructors: Inl and Inr. To run one, you unwrap all the layers with your runXXX functions. They say that successive layers, of for instance State, can't use the same state thread, but they do provide a way of mapping the two monads onto a common monad, which provides that functionality.James Candynoreply@blogger.comtag:blogger.com,1999:blog-11295132.post-29133321707023935502012-07-29T01:13:55.298-07:002012-07-29T01:13:55.298-07:00The object M_1 in T is weird. It's a lot like ...<i>The object M_1 in T is weird. It's a lot like the universal monoid sharing all of the properties you expect to hold simultaneously in all monoids. Except for one important one: it's not a monoid itself.</i><br /><br />Actually it <i>is</i> a monoid object in the category T!Tomhttp://web.jaguarpaw.co.uk/~tom/contact/noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-74357750983769234822012-02-07T14:05:28.756-08:002012-02-07T14:05:28.756-08:00@Tom,
The constructions for maximally non-commuti...@Tom,<br /><br />The constructions for maximally non-commuting and maximally commuting effects are pretty similar. But it's easier to write down concrete types for the commuting case. And there are some interesting surprises to be had with commuting effects, as I'll mention.sigfpehttps://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-32774973772811839402012-02-07T13:02:31.388-08:002012-02-07T13:02:31.388-08:00I fear the most interesting types of mixed effects...I fear the most interesting types of mixed effects will not be ones that commute with one another, but looking forward to the sequel nonetheless!Tomhttp://web.jaguarpaw.co.uk/~tom/contact/noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-20827442726424053052012-02-06T02:33:15.679-08:002012-02-06T02:33:15.679-08:00This comment has been removed by the author.migmithttps://www.blogger.com/profile/06981055611018991476noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-21886867642654408312012-02-06T01:44:42.846-08:002012-02-06T01:44:42.846-08:00And just when it started to get intriguing!
About...And just when it started to get intriguing!<br /><br />About your "I don't think anyone has found a satisfactory way to combine effects in Haskell" - you might want to check out a mix-arrows package from hackage. I've just released the 1.2 version, which is supposed to be better than older ones, but documentation could be not generated yet. Anyway, it's a neat way to mix two arrows into one, getting the effects of both.migmithttps://www.blogger.com/profile/06981055611018991476noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-37911970105577988122012-02-05T09:39:03.595-08:002012-02-05T09:39:03.595-08:00@pumpkin You spotted that fast. I don't think ...@pumpkin You spotted that fast. I don't think the pixels were even dry yet. Thanks though!sigfpehttps://www.blogger.com/profile/08096190433222340957noreply@blogger.comtag:blogger.com,1999:blog-11295132.post-49745418693040307172012-02-05T09:30:54.890-08:002012-02-05T09:30:54.890-08:00Very nice! I think you meant forall a. Monoid a =&...Very nice! I think you meant forall a. Monoid a => a^m -> a^n instead of forall a. Monoid m => a^m -> a^n, though.pumpkinhttps://www.blogger.com/profile/16447814932833892301noreply@blogger.com