The following compiles and runs perfectly:
main = do
(inputFile:_) <- getArgs
input <- readFile inputFile
let pairs = pairFilesToContents $ readSmsnLines input
mapM_ f pairs where
f :: (FilePath, String) -> IO ()
f (name, content) = writeFile name content
But the following triggers the error "Not in scope: ‘root’".
main' = do
(root : inputFile :_) <- getArgs
input <- readFile inputFile
let pairs = pairFilesToContents $ readSmsnLines input
mapM_ f pairs where
f :: (FilePath, String) -> IO ()
f (name, content) = writeFile (root+name) content
--
Jeff Brown | Jeffrey Benjamin Brown