Haskell, multiple type classes for one argument
<p>This is an example in Learn You A Haskell, chapter on higher order functions:</p>

<pre><code>compareWithHundred :: (Num a, Ord a) =&gt; a -&gt; Ordering  
compareWithHundred x = compare 100 x  
</code></pre>

<p>While the idea of the function is clear for me, I'm not sure why type signature is (Num a, Ord a). We only pass integer that is to be compared to the function, of type Int. What <code>Ord</code> stands for here, and why is implicitly passed argument in type signature?</p>