module ClassInstType where class Dir d where localDir :: d -> IO FilePath instance Dir Directory where localDir (Local f) = return f localDir (Darcs{url = url, darcsVersion = Patch patch, subDirectory = subDir}) = do tmp <- createTempDir 0 "haskelld" darcsOut <- runDarcsCommand tmp "get" ["--lazy", "--to-match", "hash " ++ patch, url, "fs"] print darcsOut let (ExitSuccess, "", out) = darcsOut print out return $ tmp "fs" subDir type URL = String