pub fn fold_type<F>(f: &mut F, node: Type) -> Type where
    F: Fold + ?Sized