Yeah, it would probably have to have a new name because it does have a
different kind than the existing Endo. GEndo was the best I could come
up with that didn't sound verbose (GeneralizedEndo, CategoricalEndo) or
like it was naming the wrong thing (EndoCategory). I'm not wedded to
the name by any means.<br>
<br>
Note: a type synonym,<br>
<br>
&gt; type Endo = GEndo (-&gt;)<br>
<br>
like you mentioned would work, but has the downside that it may require clients that
provided instances for Endo to add TypeSynonymInstances where they
previously hadn&#39;t and I&#39;m not sure how folks would feel about that.<br>
<br>-Edward Kmett<br><br><div class="gmail_quote">On Wed, Jul 8, 2009 at 2:05 PM,  <span dir="ltr">&lt;<a href="mailto:roconnor@theorem.ca">roconnor@theorem.ca</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Wed, 8 Jul 2009, Edward Kmett wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
+1 in favor of generalizing Endo in Data.Monoid.<br>
<br>
In my monoids library I have a Data.Monoid.Categorical that includes a &#39;GEndo&#39; generalized endomorphism<br>
over an arbitrary category and I would love to be able to remove it.<br>
<br>
-Edward Kmett<br>
</blockquote>
<br></div>
I was looking for this in your lib, but I didn&#39;t find it.<br>
<br>
Anyhow, I&#39;m also in favour of generalizing Endo.  I was being conservitive with my initial proposal.<br>
<br>
Would we still have to pick a new name and then<br>
<br>
type Endo a = NewEndoName (-&gt;) a<div class="im"><br>
<br>
?<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
In Data.Monoid there is<br>
<br>
 newtype Endo a = Endo { appEndo :: a -&gt; a }<br>
<br>
 instance Monoid (Endo a) where<br>
       mempty = Endo id<br>
       Endo f `mappend` Endo g = Endo (f . g)<br>
<br>
and (-&gt;) is an instance of Category, so perhaps we should generalize Endo.<br>
<br>
The name EndoCategory seems wrong, as this won&#39;t be an instance of Category.<br>
Endomorphism?<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
<br>
<br>
<br>
<br>
</blockquote>
<br></div><div><div></div><div class="h5">
-- <br>
Russell O&#39;Connor                                      &lt;<a href="http://r6.ca/" target="_blank">http://r6.ca/</a>&gt;<br>
``All talk about `theft,&#39;&#39;&#39; the general counsel of the American Graphophone<br>
Company wrote, ``is the merest claptrap, for there exists no property in<br>
ideas musical, literary or artistic, except as defined by statute.&#39;&#39;</div></div><br>_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br>