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.
Note: a type synonym,
> type Endo = GEndo (->)
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't and I'm not sure how folks would feel about that.
-Edward Kmett
On Wed, 8 Jul 2009, Edward Kmett wrote:I was looking for this in your lib, but I didn't find it.
+1 in favor of generalizing Endo in Data.Monoid.
In my monoids library I have a Data.Monoid.Categorical that includes a 'GEndo' generalized endomorphism
over an arbitrary category and I would love to be able to remove it.
-Edward Kmett
Anyhow, I'm also in favour of generalizing Endo. I was being conservitive with my initial proposal.
Would we still have to pick a new name and then
type Endo a = NewEndoName (->) a
?
In Data.Monoid there is
newtype Endo a = Endo { appEndo :: a -> a }
instance Monoid (Endo a) where
mempty = Endo id
Endo f `mappend` Endo g = Endo (f . g)
and (->) is an instance of Category, so perhaps we should generalize Endo.
The name EndoCategory seems wrong, as this won't be an instance of Category.
Endomorphism?
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries
--
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.''
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries