module Error where import Data.List (sort) import Text.Parsec (SourcePos) data Error = Error String SourcePos deriving (Eq) instance Show Error where show (Error message pos) = "error: " ++ show pos ++ ":\n" ++ message instance Ord Error where compare (Error _ pos1) (Error _ pos2) = compare pos1 pos2 showErrorList :: [Error] -> String showErrorList errs = unlines $ map show (sort errs)