pub trait Compile<T: Displayed, U> { // Required method fn compile(&mut self, expr: &Expr<T>) -> Arc<Expression<U>>; }