import System.Plugins import System.Directory a = "Foo.hs" -- user code b = "Bar.hs" -- more user code z = "Stub.hs" -- and a stub main = do status <- makeWith a z [] s <- case status of MakeFailure e -> mapM_ putStrLn e >> error "failed" MakeSuccess n s -> print n >> return s status <- makeWith b z [] s' <- case status of MakeFailure e -> mapM_ putStrLn e >> error "failed" MakeSuccess n s -> print n >> return s -- shouldn't need to remerge (a,z) status <- makeWith a z [] t <- case status of MakeFailure e -> mapM_ putStrLn e >> error "failed" MakeSuccess n s -> print n >> return s -- shouldn't need to remerge (b,z) status <- makeWith b z [] t' <- case status of MakeFailure e -> mapM_ putStrLn e >> error "failed" MakeSuccess n s -> print n >> return s print $ s /= s' -- test we got unique modules print $ t /= t' -- test we got unique modules mapM_ makeCleaner [s,s']