import Data.Tuple import System.FilePath import System.Environment import System.Process main = do vs <- lines <$> getContents [pkg, dir] <- getArgs mapM_ system $ map (\(v1, v2) -> "diff -u --color=always " ++ file pkg dir v1 ++ " " ++ file pkg dir v2 ++ "; echo; echo; echo") $ map swap $ drop 1 vs `zip` vs where file pkg dir v = dir (pkg ++ "-" ++ v) <.> "cabal"