///|
fn symbol_value(symbol : Char) -> Int? {
  match symbol {
    'I' => Some(1)
    'V' => Some(5)
    'X' => Some(10)
    'L' => Some(50)
    'C' => Some(100)
    'D' => Some(500)
    'M' => Some(1000)
    _ => None
  }
}

///|
fn is_repeatable_symbol(symbol : Char) -> Bool {
  match symbol {
    'I' | 'X' | 'C' | 'M' => true
    _ => false
  }
}

///|
fn is_subtractive_pair(left : Char, right : Char) -> Bool {
  match (left, right) {
    ('I', 'V')
    | ('I', 'X')
    | ('X', 'L')
    | ('X', 'C')
    | ('C', 'D')
    | ('C', 'M') => true
    _ => false
  }
}