<div dir="ltr">Hi,<br><br>The attached program does not typecheck if I don&#39;t include a type signature for &#39;bar&#39; (the line C). I can&#39;t figure out if this is a limitation in the type system or a bug in GHC. One thing that confuses me is that replacing the line (B) with (A) makes the program typecheck.<br>
<br>Could anyone help me figuring out what is going on?<br><br>I&#39;m using GHC 7.6.2. The error was:<br><br> % ghc forall.hs<br>[1 of 1] Compiling Foo              ( forall.hs, forall.o )<br><br>forall.hs:18:11:<br>    Could not deduce (Fractional a) arising from the literal `0.1&#39;<br>
    from the context (Num (Scalar t), Scalar t ~ a)<br>      bound by a type expected by the context:<br>                 (Num (Scalar t), Scalar t ~ a) =&gt; AD t<br>      at forall.hs:18:7-13<br>    Possible fix:<br>      add (Fractional a) to the context of<br>
        a type expected by the context:<br>          (Num (Scalar t), Scalar t ~ a) =&gt; AD t<br>        or the inferred type of bar :: a<br>    In the first argument of `foo&#39;, namely `0.1&#39;<br>    In the expression: foo 0.1<br>
    In an equation for `bar&#39;: bar = foo 0.1<br><br>Regards,<br>Takano Akio<br></div>