I have the function f which reads lines form the stdin and looks like this:
f :: [IO String]
f = getLine : f
What I don't like is the fact that the line processing I'm doing will have to be in the IO Monad
I would like to make this function to have the signature
f : IO [String]
...such that I can get rid of the IO monad and pass the pure string list to the processing function.