why simple haskell add function doesn't behave as intended?
<p>I'm playing with the haskell repo around a little. 
why f2 behaves that way ? (I was expecting f2 takes only 1 argument), also what does <code>t</code> mean in the type?</p>

<p>BTW, why I have to prefix repo with <strong>let</strong> in order to define function?</p>

<pre><code>λ&gt; :t add  -- f1
add :: Num a =&gt; a -&gt; a
λ&gt; let add n = (+) 1  -- f2 what does this mean?
λ&gt; add 1 1
2
λ&gt; :t add
add :: Num a =&gt; t -&gt; a -&gt; a
λ&gt; add 1 3
4
</code></pre>