<div>Hi,</div>
<div>&nbsp;</div>
<div>I&#39;m making my way through Haskell which seems to me one of the languages with steepest learning curve around.</div>
<div>&nbsp;</div>
<div>Now, please consider this snippet:</div>
<div><span class="ppt" id="_user_haskell-cafe@haskell.org"></span>&nbsp;</div>
<div><span class="ppt">{-# OPTIONS_GHC -fglasgow-exts #-}<br>module Main where</span></div>
<div>
<p>class FooOp a b where<br>&nbsp; foo :: a -&gt; b -&gt; IO ()</p>
<p>instance FooOp Int Double where<br>&nbsp; foo x y = putStrLn $ (show x) ++ &quot; Double &quot; ++ (show y)</p>
<p>partialFoo = foo (10::Int)</p>
<p>bar = partialFoo (5.0::Double)</p>
<p>I hope the indentation looks ok in your email client. I&#39;m experimenting with currying and typeclasses at the moment.</p>
<p>&nbsp;If I try to import this in ghci, it works flawlessy. Now, if I remove the type signature from 10 and 5.0, ghci complaints saying:</p>
<p>example.hs:12:6:<br>&nbsp;&nbsp;&nbsp; Ambiguous type variable `t&#39; in the constraint:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `Num t&#39; arising from use of `partialFoo&#39; at example.hs:12:6-19<br>&nbsp;&nbsp;&nbsp; Probable fix: add a type signature that fixes these type variable(s)
</p>
<p>example.hs:12:6:<br>&nbsp;&nbsp;&nbsp; Ambiguous type variables `t&#39;, `t1&#39; in the constraint:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `FooOp t t1&#39; arising from use of `partialFoo&#39; at example.hs:12:6-19<br>&nbsp;&nbsp;&nbsp; Probable fix: add a type signature that fixes these type variable(s)
</p>
<p>example.hs:12:17:<br>&nbsp;&nbsp;&nbsp; Ambiguous type variable `t1&#39; in the constraint:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `Fractional t1&#39;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arising from the literal `5.0&#39; at example.hs:12:17-19<br>&nbsp;&nbsp;&nbsp; Probable fix: add a type signature that fixes these type variable(s)
</p>
<p>I switched off the monomorphism restriction (btw, is this bad? No flame war please :D)&nbsp;otherwise it&#39;d have&nbsp;complained louder.</p>
<p>Can you explain how to fix the code&nbsp;(if possible) and give some explanation?</p>
<p>Thanks,</p>
<p>Cristiano</p></div>