pub fn walk_type_mut<I, T, F: ?Sized>(typ: &mut T, f: &mut F)where
    F: WalkerMut<T>,
    T: DerefMut<Target = Type<I, T>>,