<div dir="ltr">I'm looking at this<div><br></div><div><font face="monospace">ghci> :type map<br>map :: (a -> b) -> [a] -> [b]</font><br></div><div><br></div><div>and wondering what the <font face="monospace">(a -> b)</font> part is about. map takes a function and applies it to an incoming list. Good. Understood. I'm guessing that the whole Haskell type declaration idea is based on currying, and I do understand how the <font face="monospace">(a -> b) </font>part "takes" an incoming list, <font face="monospace">[a]</font> and produces the<font face="monospace"> [b] </font>output. Also, I don't understand a and b very well either. Typically, <font face="monospace">a</font> is just a generic variable, then <font face="monospace">b</font> is another generic variable not necessarily the same as <font face="monospace">a</font>. But how are they being used in this type declaration?</div><div><br></div><div>LB</div></div>