pub fn fold_type_ptr<F>(f: &mut F, node: TypePtr) -> TypePtrwhere
    F: Fold + ?Sized,