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