Alexander Solla wrote: > Yup, that's a type error. I mean to fold the View (in this case a > ConcatView) into a monoid. I think I meant > > foldMap renderXHtml (ConcatViews l r)
Hm, that would require a type renderXHtml :: Monoid t => View t -> Html >> Your intention reminds me of the use of type variables to get >> functor-like behavior for free, like in >> >> data RGB' a = RGB a a a -- auxiliary type constructor >> type RGB = RGB' Int -- what we're interested in >> >> but I don't quite see what you're doing with the free monad here, >> Alexander? > > As you noticed, I am seeking that functorial behavior in order to gain > some genericity. bind and return do encode some logic about the nature > of monadic adjunction, which I am relying on theoretically. I could > have used a Functor instance just as easily, but I would have lost my > "intention" of defining co-equalizers implicitly. > (http://en.wikipedia.org/wiki/Beck%27s_monadicity_theorem) I don't know, the new ReturnView constructor which gives rise to the monad does allow us to represent "views with variables". But to me, this doesn't seem to add much genericity. Regards, Heinrich Apfelmus -- http://apfelmus.nfshost.com _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe