<div dir="ltr">I created my own version of getLine like this:<div><div><br></div><div>getLine' :: IO String</div><div>getLine'        = do x <- getChar</div><div>                     if x == '\n' then</div>
<div>                       return []</div><div>                     else</div><div>                       do </div><div>                         xs <- getLine'</div><div>                         return (x:xs)</div>
</div><div><br></div><div><br></div><div>Basically I created a new file called test.hs and copied above code into it.  I opened WinGHCi afresh and :load test.hs</div><div><br></div><div>I can run getLine' in WinGHCi with no problem.  But how does WinGHCi know about getChar and IO?</div>
<div><br></div><div>I assumed I would have to import like this:</div><div><br></div><div>import System.IO</div><div><br></div><div>Is it because WinGHCi does this import for me?</div><div><br></div><div>If I write this program and invoke using runghci:</div>
<div><br></div><div><div>getLine' :: IO String</div><div>getLine'        = do x <- getChar</div><div>                     if x == '\n' then</div><div>                       return []</div><div>                     else</div>
<div>                       do </div><div>                         xs <- getLine'</div><div>                         return (x:xs)</div><div><br></div><div><br></div><div>main = do</div><div>       getLine'</div>
<div><br></div></div><div><br></div><div>It also works without complaining. </div><div><br></div><div>Is there a list of built-in libraries?  Is that platform dependent?</div><div><br></div><div><br></div><div><br></div></div>