<span style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">Hi all,</span><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">
trying to solve the problem 6  &quot;reverse a list&quot;</div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">I&#39;m getting a different behaviour from ghci / runhaskell.</div>


<div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif"><br></div><blockquote style="color:rgb(34,34,34);font-size:12.666666984558105px;margin:0px 0px 0px 40px;font-family:arial,sans-serif;padding:0px;border:none">


<div><font face="courier new, monospace" size="1">main = do</font></div><div><font face="courier new, monospace" size="1">  putStrLn $ concat (map show (myReverse [1,2,3]))</font></div><div><font face="courier new, monospace" size="1">  -- putStrLn $ concat (map show (myReverse []))</font></div>


<div><font face="courier new, monospace" size="1"><br></font></div><div><font face="courier new, monospace" size="1">myReverse :: [a] -&gt; [a]</font></div><div><font face="courier new, monospace" size="1">myReverse [] = []</font></div>


<div><font face="courier new, monospace" size="1">myReverse (x:xs) = go [] (x:xs)</font></div><div><font face="courier new, monospace" size="1">    where go :: [a] -&gt; [a] -&gt; [a]</font></div><div><font face="courier new, monospace" size="1">          go curr (x:xs) | null xs  =  [x] ++ curr</font></div>


<div><font face="courier new, monospace" size="1">          go curr (x:xs)  =  go ([x] ++ curr) xs</font></div></blockquote><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">
<br></div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">the second putStrLn (once uncommented) gives this error in the runhaskell/ghc:</div>
<div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif"><div><font size="1">         <font face="courier new, monospace">Ambiguous type variable `a0&#39; in the constraint:</font></font></div>


</div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif"><div><font face="courier new, monospace" size="1">      (Show a0) arising from a use of `show&#39;</font></div>
<div><font face="courier new, monospace" size="1">    Probable fix: add a type signature that fixes these type variable(s)</font></div><div><font face="courier new, monospace" size="1">    In the first argument of `map&#39;, namely `show&#39;</font></div>


</div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif"><br></div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">
_but_   if I load the same source into ghci I can successfully enter&amp;run the command:</div><blockquote style="color:rgb(34,34,34);font-size:12.666666984558105px;margin:0px 0px 0px 40px;font-family:arial,sans-serif;padding:0px;border:none">


<div><font size="1" face="courier new, monospace">Prelude&gt; :reload</font></div><div><font size="1" face="courier new, monospace">[1 of 1] Compiling Main             ( 05.hs, interpreted )</font></div><div><font size="1" face="courier new, monospace">Ok, modules loaded: Main.</font></div>


<div><font size="1" face="courier new, monospace">*Main&gt; putStrLn $ concat (map show (myReverse []))</font></div><div><font size="1" face="courier new, monospace"><br></font></div><div><font size="1" face="courier new, monospace">*Main&gt; </font></div>


</blockquote><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif"><br></div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">
Then if I &quot;help&quot; the type inference changing the myReverse type declaration to:</div><blockquote style="color:rgb(34,34,34);font-size:12.666666984558105px;margin:0px 0px 0px 40px;font-family:arial,sans-serif;padding:0px;border:none">


<font face="courier new, monospace" size="1">myReverse :: [Int] -&gt; [Int]</font></blockquote><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">
<br></div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">everything works well</div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">


<br></div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">So, my question is:  _where_ is the difference between ghci / runhaskell?</div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">


<br></div><div style="color:rgb(34,34,34);font-size:12.666666984558105px;font-family:arial,sans-serif">thx</div>