pub trait CodeGenerator { type IR; type Output; // Required method fn generate(&mut self, node: Self::IR) -> Self::Output; }
generate will take optimized ir node and output desired code format, either String or Binary code