<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
<font style="" face="Courier New"><br></font><font style="" face="Courier New">Given the following (usual) definition of "map":</font><font style="" face="Courier New"><br></font><font style="" face="Courier New"><br></font><font style="" face="Courier New">map&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :: (a -&gt; b) -&gt; [a] -&gt; [b]</font><font style="" face="Courier New"><br></font><font style="" face="Courier New">map f []&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; []</font><font style="" face="Courier New"><br></font><font style="" face="Courier New">map f (x : xs)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; f x : map f xs</font><font style="" face="Courier New"><br></font><font style="" face="Courier New"><br></font><font style="" face="Courier New">What's the type of "map map"?<br><br>GHCi's :t command reveals:<br><br>*Main&gt; :t map map<br>map map :: [a -&gt; b] -&gt; [[a] -&gt; [b]]<br><br>I'd be grateful if anyone could provide a systematic type calculation so that I can reason through more complicated examples myself.<br><br>Thanks.<br></font><br /><hr />Windows Live™: Keep your life in sync.  <a href='http://windowslive.com/explore?ocid=TXT_TAGLM_WL_allup_1b_explore_032009' target='_new'>Check it out.</a></body>
</html>