
Hello Mike, below code find all files recursively from a starting point. It works. You'd need to tweak it to find folders instead. import System.Directory import Data.List findAllFiles::FilePath -> IO [FilePath] findAllFiles base0 = gd1 base0 >>= \list1 -> concatMap' recurse3 list1 where gd1 d1 = filter f2 <$> (getDirectoryContents d1) f2 "." = False f2 ".." = False f2 _ = True recurse3 md3 = doesDirectoryExist md3full >>= \isDir3 -> if isDir3 then findAllFiles md3full else pure [md3full] where md3full = base0 ++ "/" ++ md3 concatMap':: (a -> IO [b]) -> [a] -> IO [b] concatMap' m0 list0 = sequence (m0 <$> list0) >>= \list2 -> pure $ concat list2