pub trait SemanticRewriter<T, Error> { // Required method fn rewrite(&mut self, value: T) -> Result<T, Error>; }