pub trait Optimizer { type Return; // Required method fn optimize(&self, cfg: &mut CFGraph) -> OptimizeResult<Self::Return>; }