pub trait Compilable { type Output; // Required method fn compile( self, compiler: &mut Compiler, ) -> Result<Self::Output, Located<Box<dyn Error>>>; }