{- Determines which error is most recently occuring in a file -}
newestError :: Error -> Error -> Error
newestError a@(Error _ (Known al)) b@(Error _ (Known bl))
  | al > bl   = a
  | bl > al   = b
  | otherwise = a
newestError :: Error -> Error -> Error
newestError a@(Error _ (Known al)) b@(Error _ (Known bl))
  | al > bl   = a
  | bl > al   = b
  | otherwise = a
newestError a@(Error _ (Known al)) b@(Error _ (Known bl))
  | al > bl   = a
  | bl > al   = b
  | otherwise = a