<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><span style="font-family: courier,monaco,monospace,sans-serif;">I don't understand this error message. Haskell appears not to understand that 1 is a Num.<br><br>Prelude&gt; :t 1<br>1 :: (Num t) =&gt; t<br>Prelude&gt; :t [1,2,3,4,5]<br>[1,2,3,4,5] :: (Num t) =&gt; [t]<br>Prelude&gt; <br><br>Michael<br><br>===================<br><br>f :: [Int] -&gt; IO [Int]</span><br style="font-family: courier,monaco,monospace,sans-serif;"><span style="font-family: courier,monaco,monospace,sans-serif;">f lst = do return lst</span><br style="font-family: courier,monaco,monospace,sans-serif;"><br style="font-family: courier,monaco,monospace,sans-serif;"><span style="font-family: courier,monaco,monospace,sans-serif;">main = do let lst = f [1,2,3,4,5]</span><br style="font-family: courier,monaco,monospace,sans-serif;"><span style="font-family:
 courier,monaco,monospace,sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fmap (+1) lst</span><br style="font-family: courier,monaco,monospace,sans-serif;"><br>===============================<br><br>Prelude&gt; :l test<br>[1 of 1] Compiling Main&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( test.hs, interpreted )<br><br>test.hs:5:17:<br>&nbsp;&nbsp;&nbsp; No instance for (Num [Int])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arising from the literal `1' at test.hs:5:17<br>&nbsp;&nbsp;&nbsp; Possible fix: add an instance declaration for (Num [Int])<br>&nbsp;&nbsp;&nbsp; In the second argument of `(+)', namely `1'<br>&nbsp;&nbsp;&nbsp; In the first argument of `fmap', namely `(+ 1)'<br>&nbsp;&nbsp;&nbsp; In the expression: fmap (+ 1) lst<br>Failed, modules loaded: none.<br>Prelude&gt; <br></td></tr></table><br>