import Test.DocTest import Control.Monad import System.Directory import System.FilePath main :: IO () main = do fs <- listFilesRecur "src" doctest $ "-isrc" : fs listFilesRecur :: FilePath -> IO [FilePath] listFilesRecur dir = do entries <- fmap (map (dir ) . filter (\f -> f /= "." && f /= ".." && takeExtension f /= ".swp")) $ getDirectoryContents dir dirs <- filterM doesDirectoryExist entries files <- filterM doesFileExist entries rests <- mapM listFilesRecur dirs return $ concat $ files : rests