pub trait Printer {
fn interval_cmd(&self, d: &IntervalCmdData<'_>);
fn node_cmd(&self, d: &NodeCmdData<'_>);
fn error(&self, e: &str);
fn interval_error(&self, d: &IntervalData<'_>, e: &str);
fn plain(&self, d: &str);
fn report(&self, r: &Report);
fn prompt(&self, p: &str);
fn task_list(&self, tasks: impl Iterator<Item = Vec<Node>>);
fn interval_list(&self, intervals: impl Iterator<Item = Interval>);
fn theme_list(&self, list: impl Iterator<Item = ThemeData>);
}