Ticket: <a href="http://hackage.haskell.org/trac/ghc/ticket/3339">http://hackage.haskell.org/trac/ghc/ticket/3339</a><br><br>From the ticket: <br><p>
This proposal was, I think, originally suggested by Jules Bean. The idea is to add two functions to the <tt>Data.Monoid</tt> module, <tt>(+&gt;)</tt> and <tt>(&lt;+)</tt>, corresponding to different uses of <tt>mappend</tt>. These should not be methods of the <tt>Monoid</tt> typeclass, but top-level functions.
</p>
<p>
I hope (but slightly doubt) that the visual nature of the two operators
might help to counter the thought that monoids are just for gluing
things together.
</p>
<pre class="wiki">(+&gt;) :: (Monoid a) =&gt; a -&gt; a -&gt; a<br>a +&gt; b = a `mappend` b<br><br>(&lt;+) :: (Monoid a) =&gt; a -&gt; a -&gt; a<br>a &lt;+ b = b `mappend` a<br><br>infixl 4 +&gt;<br>infixl 4 &lt;+<br></pre>
<p>
Proposed deadline: two weeks.
</p>
<p>
If this looks reasonable, I&#39;ll attach darcs patches.
</p>