
I am (+1) on adding Semigroup as superclass of Monoid, being mappend/(<>)
included in Semigroup. More than once I felt encouraged to include a
neutral element in a type where I would have gladly go without having it.
Importing semigroups from Hackage would mean to have two identical
operators, idea I do not find attractive.
About the path to choose for adoption, any of the ways described by Edward
Kmett seems good to me (I can quickly update any of my packages to the
change), but I'd rather avoid the longest one.
Daniel Díaz
On Mar 30, 2015 9:09 PM, "Edward Kmett"
That definitely pushes me towards one of the "long" adoption paths.
Here adding a Semigroup instance for Matrix actually works to get the same symbol, but it has a different fixity (infixr 8). Same with (<>) in the pretty printing libraries (infixl 6).
In Data.Monoid and Data.Semigroup we have infixr 6 <>
-Edward
On Mon, Mar 30, 2015 at 2:51 PM, Henning Thielemann < lemming@henning-thielemann.de> wrote:
On Mon, 30 Mar 2015, Edward Kmett wrote:
Collapse the first two steps into one step, but this means that nobody
gets any warning of new names coming into the Prelude. On the other hand this would get us all the way to done by 7.14. On one hand, the first order consequence the amount of breakage caused by adding Semigroup to Prelude and taking (<>) is almost entirely confined to a handful of pretty printing libraries -- and we already broke those same libraries by taking (<$>).
Btw. hmatrix is another prominent package defining (<>) for matrix and related multiplications.
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries