import System.IO main :: IO() main = do fromH <- readOpenFile "Copy from: " ReadMode toH <- readOpenFile "Copy to: " WriteMode contents <- hGetContents fromH hPutStr toH contents hClose fromH hClose toH readOpenFile :: String -> IOMode -> IO Handle readOpenFile prompt mode = do putStrLn prompt name <- getLine handle <- openFile name mode return handle