pub(crate) fn run<F, T>(interface: &dyn SmirInterface, f: F) -> Result<T, Error>where F: FnOnce() -> T,