On Tue, May 3, 2011 at 3:14 PM, Yitzchak Gale <g...@sefer.org> wrote: > I wrote: >>>> Could you please add a Semigroup instance for Text? > > Edward Kmett wrote: >> Unfortunately, I don't think I can really bring myself to do either. >> I was deliberately trying to keep the number of dependencies for the >> semigroups as low as possible... > > You are quite right. These should really be defined in their > respective packages. I don't think it's too onerous for them > to add a dependency on semigroups, even before you > reverse the few lightweight dependencies that semigroups has. > > Bryan O'Sullivan wrote: >>> I'd strongly recommend writing an instance for the text >>> package's Builder type instead. Vastly more efficient >>> for non-trivial jobs. > > Well, in my case, I'm iterating over many small Texts, slicing > and dicing small groups of them in various ways to look for > overlaps, and splicing the pieces back together in different > combinations. It's quite fast as it is; what I'm looking for is to > make the formulas look simpler and more understandable. > I doubt that builders will be any help for that. Whereas using > <> from semigroups instead of `T.append` or `mappend` > is a huge help.
Can you locally define an operator (<>) for monoids? > > Apart from my own use case, semigroups are a simple > and fundamental idiom that I think will become much > more widely used as people become more aware of them. > Just like every Monad should have a Functor instance, > every Monoid should have a Semigroup instance. > > Thanks, > Yitz > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe