I'm trying to factor out the interior mutability in my Rust code. It's a little more verbose, but surprisingly readable. foo_old(&syntax); foo_new(&syntax, &mut change_map); Signatures are way more self-documenting with this approach.