@@ -42,9 +42,9 @@ import qualified Data.Time.LocalTime as Local
4242day :: Parser Day
4343day = do
4444 absOrNeg <- negate <$ char '-' <|> id <$ char '+' <|> pure id
45− y <- decimal <* char '-'
46− m <- twoDigits <* char '-'
47− d <- twoDigits
45+ y <- (decimal <* char '-') <|> fail "date must be of form [+,-]YYYY-MM-DD"
46+ m <- (twoDigits <* char '-') <|> fail "date must be of form [+,-]YYYY-MM-DD"
47+ d <- twoDigits <|> fail "date must be of form [+,-]YYYY-MM-DD"
4848 maybe (fail "invalid date") return (fromGregorianValid (absOrNeg y) m d)
4949
5050-- | Parse a two-digit integer (e.g. day of month, hour).