/// Used to allow the interpreter to communicate with a wide range of systems.
/// This function can also be used to hold internal state, which is useful because it is mutably passed to
/// all native functions.
pub trait BasicIO {
/// Called by the interpreter to read a line. Its most notable usage is in `INPUT`.
fn read_line(&mut self) -> String;
/// Called by the interpreter to write a line. Its most notable usage is in `PRINT`.
fn write_line(&mut self, line: String);
}