pub(super) fn run_with_console<F, U>(f: F) -> Uwhere F: FnMut(&mut dyn Write) -> U,
the caller must assure that this is not called while not being initialized at the same time