color :: Int -> String -> String color n = ("\^[["++) . shows n . ('m':) . (++ "\^[[m") colorDiffLine :: String -> String colorDiffLine xs@('+':_) = color 36 xs colorDiffLine xs@('-':_) = color 35 xs colorDiffLine xs = xs main :: IO () main = interact (unlines . map colorDiffLine . lines)