pub fn walk_move_type_opt<F, I, T>(typ: &Type<I, T>, f: &mut F) -> Option<T>
where F: TypeVisitor<I, T> + ?Sized, T: TypePtr<Id = I> + Clone, T::Types: Clone, T::Generics: Clone, T::Fields: Clone, T::TypeFields: Clone, T::SpannedId: Clone, I: Clone,