Hi,<br>&nbsp;&nbsp; I can understand why principle type of map is&nbsp; <br><br>map :: (a -&gt; b) -&gt; [a] -&gt; [b] ,<br>I would interpret this as &quot;map takes a function of type a-&gt;b and a list of type [a] as arguments and returns a list of type [b]&quot;
<br><br>but it is going somewhat beyond my imagination why principle type of map map is<br><br>(map map)::[a -&gt; b] -&gt; [[a] -&gt; [b]]<br><br>I am able to interpret the expressions &quot;[a -&gt; b] -&gt; [[a] -&gt; [b]]&quot;&nbsp; vaguely...
<br><br>does this mean that &#39;map map&#39; takes list of functions of type (a-&gt;b) and returns list of functions of type ([a]-&gt;[b])<br>if yes ..how do I derive it from basic type declaration of map?<br><br>Thanks in advance
<br>Vikrant<br>