///|
pub(all) struct Pos {
  line : Int
  column : Int
} derive(Eq)

///|
impl Show for Pos with output(self, logger) -> Unit {
  logger.write_string("\{self.line}:\{self.column}")
}

///|
pub(all) struct Loc {
  start : Pos
  end : Pos
} derive(Eq)

///|
impl Show for Loc with output(self, logger) -> Unit {
  logger.write_string("\{self.start}-\{self.end}")
}