///|
pub(all) enum ParseError {
  EmptyInput
  InvalidCharacter(Int, Char)
  InvalidRepetition(Int, Char)
  InvalidSubtractivePair(Int, Char, Char)
  InvalidOrder(Int)
  NonCanonical(String)
  ParseOutOfRange(Int)
} derive(Eq, Debug)

///|
pub(all) enum FormatError {
  FormatOutOfRange(Int)
  InvalidClockHour(Int)
} derive(Eq, Debug)