///|
pub fn[T : Show] write(s : T) -> Unit {
  write_internal(s.to_string())
}

///|
pub fn[T : Show] writeln(s : T) -> Unit {
  write_internal(s.to_string() + "\n")
}

///|
pub fn[T : Show] print(s : T) -> Unit {
  writeln(s)
}

///|
pub fn flush() -> Unit {
  flush_internal()
}