<div dir="auto"><div>I'm guessing in the .hs file, you have this in a do block? Something like:<div dir="auto"><br></div><div dir="auto">foo = do</div><div dir="auto">    contents <- readFile</div><div dir="auto">    words contents</div><div dir="auto"><br></div><div dir="auto">If so, the problem is the return type of `words`. Each line of the do block has to have an IO value, and words is a pure function. To lift its result into the monad, use the aptly-named `pure` function:</div><div dir="auto"><br></div><div dir="auto" style="font-family:sans-serif">foo = do</div><div dir="auto" style="font-family:sans-serif">    contents <- readFile</div><div dir="auto" style="font-family:sans-serif">    pure $ words contents</div><div dir="auto" style="font-family:sans-serif"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 26, 2019, 8:35 PM Yugesh Kothari <<a href="mailto:kothariyugesh@gmail.com">kothariyugesh@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Hi, <div dir="auto"><br></div><div dir="auto">I am trying to read data from a file.</div><div dir="auto">When I do-</div><div dir="auto">ghci> contents <- readFile "file.txt"</div><div dir="auto">ghci> words contents</div><div dir="auto"><br></div><div dir="auto">Then everything works.</div><div dir="auto"><br></div><div dir="auto">The same thing when done in a .hs file gives an IO String vs [String] error.</div><div dir="auto"><br></div><div dir="auto">Why is that so?</div></div>
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank" rel="noreferrer">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>
</blockquote></div></div></div>