<div class="gmail_quote">On Fri, Mar 5, 2010 at 8:07 AM, Johan Tibell <span dir="ltr">&lt;<a href="mailto:johan.tibell@gmail.com">johan.tibell@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="gmail_quote"><div class="im">On Fri, Mar 5, 2010 at 4:48 AM, iquiw <span dir="ltr">&lt;<a href="mailto:iku.iwasa@gmail.com" target="_blank">iku.iwasa@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I think I would use the module system for namespacing rather than using function prefixes. Like so:</blockquote></div><div><br></div><div>import Text.Html as E</div><div>import qualified Text.Html.Attribute as A</div>
<div><br></div><div>E.html ! [A.class_ &quot;my-class&quot;] (... more combinators ...)</div><div> </div><div>(Assuming that &quot;!&quot; is used to introduce attributes.)</div><div><br></div><div>This allows you to use the element names and/or the attribute names unclassified if you so desire.</div>

</div></blockquote><div><br></div><div>This should of course have been &quot;unqualified&quot;!</div><div> </div></div>