pub unsafe extern "C" fn R_UnwindProtect(
    fun: Option<unsafe extern "C" fn(data: *mut c_void) -> SEXP>,
    data: *mut c_void,
    cleanfun: Option<unsafe extern "C" fn(data: *mut c_void, jump: Rboolean)>,
    cleandata: *mut c_void,
    cont: SEXP
) -> SEXP