struct Transaction; trait Executor {} impl Executor for &mut Transaction {} fn a(_: E) {} fn wrap(t: &mut Transaction) { a(t); a(t); }