module Main where
import Control.DeepSeq
import System.IO
import System.Directory.Tree
main = do
tree <- readDirectoryWith readFile' "/var/lib/pacman/sync"
tree `deepseq` return ()
instance (NFData a) => NFData (AnchoredDirTree a) where
rnf (fp :/ dt) = rnf (fp,dt)
instance (NFData a) => NFData (DirTree a) where
rnf (Failed p1 p2) = rnf p1
rnf (Dir p1 p2) = rnf (p1,p2)
rnf (File p1 p2) = rnf (p1,p2)
readFile' fn = do
h <- openFile fn ReadMode
s <- hGetContents h
let slen = (length s)
slen `deepseq` hClose h
return slen