"Paul Keir" <[EMAIL PROTECTED]> writes: > module Main where > > import System.Directory (getDirectoryContents) > > main = do dc <- getDirectoryContents "./foo/" > mapM_ putStrLn dc
> mapM_ putStrLn (getDirectoryContents "./foo/") > Couldn't match expected type `[String]' "mapM_ putStrLn" needs a "[String]" as an argument, > against inferred type `IO [FilePath]' but you try to give it an "IO [FilePath]" (i.e. IO [String]). As you probably know, do-notation is syntactic sugar for the monad operators, and you can rewrite your function thusly: main = do dc <- getDirectoryContents "./foo/" mapM_ putStrLn dc => main = getDirectoryContents "./foo" >>= \dc -> mapM_ putStrLn dc => main = getDirectoryContents "./foo" >>= mapM_ putStrLn -k -- If I haven't seen further, it is by standing in the footprints of giants _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe