module Main where import Test.DocTest import System.Directory import System.FilePath import Data.List import Control.Monad import Control.Applicative main :: IO () main = do sources <- findSources doctest sources findSources :: IO [FilePath] findSources = filter (isSuffixOf ".hs") <$> go "src" where go dir = do (dirs, files) <- listFiles dir (files ++) . concat <$> mapM go dirs listFiles dir = do entries <- map (dir ) . filter (`notElem` [".", ".."]) <$> getDirectoryContents dir (,) <$> filterM doesDirectoryExist entries <*> filterM doesFileExist entries