yes I agree. It seems to be mentioned here too <a href="http://www.haskell.org/haskellwiki/Parameter_order">http://www.haskell.org/haskellwiki/Parameter_order</a><div><br><br><div class="gmail_quote">On Wed, Apr 8, 2009 at 12:38 AM, Henning Thielemann <span dir="ltr">&lt;<a href="mailto:lemming@henning-thielemann.de">lemming@henning-thielemann.de</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="im"><br>
On Wed, 8 Apr 2009, Peter Verswyvelen wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
These functions have their arguments reversed when compare to e.g. Map<br>
For example<br>
<br>
Data.HashTable.lookup :: HashTable key val -&gt; key -&gt; IO (Maybe val)<br>
<br>
Data.Map.lookup :: Ord key =&gt; key -&gt; Map key val -&gt; Maybe val<br>
</blockquote>
<br></div>
For my taste, Data.Map.lookup has the wrong parameter order, since I often need the same Map with different keys and not vice versa. The HashTable.lookup parameter order can also be read as mapping a Map to the function it represents. I mean (HashTable key val) and (Map key val) represent functions of type (key -&gt; val) and you can write:<br>

  Data.HashTable.lookup :: HashTable key val -&gt; (key -&gt; IO (Maybe val))<br>
<br>
<a href="http://www.haskell.org/haskellwiki/Parameter_order" target="_blank">http://www.haskell.org/haskellwiki/Parameter_order</a></blockquote></div><br></div>