And then to<br><br>&nbsp;&nbsp;&nbsp; down = mconcat [downPar, downNew, downTrans]<br><br>Which is pretty cute considering that the original formulation is equivalent to and a tiny tweak away from<br><br>&nbsp;&nbsp;&nbsp; down p = mconcat [downPar p, downNew p, downTrans p]<br>
<br>Hooray for Monoid!<br><br>&nbsp; - Conal<br><br><div class="gmail_quote">On Mon, Feb 9, 2009 at 6:31 AM, Wouter Swierstra <span dir="ltr">&lt;<a href="mailto:wss@cs.nott.ac.uk">wss@cs.nott.ac.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt; snip<br>
<br>
How about using Data.Monoid:<br>
<br>
down = downPar `mappend` downNew `mappend` downTrans<br><font color="#888888">
<br>
 &nbsp;Wouter</font><div><div></div><div class="Wj3C7c"><br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>