As the devil's advocate I'd like to point out that we could just leave Endo alone, and define its generalized counterpart separately. No worries about TypeSynonymInstances and no hassle.
 
-Edward Kmett
 
On Thu, Jul 9, 2009 at 9:13 AM, <roconnor@theorem.ca> wrote:
On Thu, 9 Jul 2009, Ross Paterson wrote:

On Wed, Jul 08, 2009 at 10:05:31PM -0400, roconnor@theorem.ca wrote:
The only packages on hackage containing instances for Endo are:

 base
 HStringTemplate
 monoids
 special-functors
 TypeCompose

Is this few enough that we can make our change?

The following additional packages use the current structure of Endo,
which would change:

...

Would they really need to change if we did

newtype Endomorph a x = Endo { getEndo :: a x x }

type Endo = Endomorph (->)

I guess it would be kinda confusing if we did that. ... but only a little. :)


--
Russell O'Connor                                      <http://r6.ca/>
``All talk about `theft,''' the general counsel of the American Graphophone
Company wrote, ``is the merest claptrap, for there exists no property in
ideas musical, literary or artistic, except as defined by statute.''
_______________________________________________