Synchronized FFI access to POSIX environment variable functions

It's more than invocation, you're changing the type of something, which is a "split the ecosystem" type change as far as I'm aware.

mod std_env {
    use std::ffi::OsStr;
    pub unsafe fn set_var<K: AsRef<OsStr>, V: AsRef<OsStr>>(key: K, value: V) {}
}

fn main() {
    let f: /* unsafe */ fn(String, String) = std_env::set_var;
}

:arrow_right:


 --> src/main.rs:7:46
  |
7 |     let f: /* unsafe */ fn(String, String) = std_env::set_var;
  |                         ------------------   ^^^^^^^^^^^^^^^^ expected normal fn, found unsafe fn
  |                         |
  |                         expected due to this
  |
  = note: expected fn pointer `fn(String, String)`
                found fn item `unsafe fn(_, _) {std_env::set_var::<_, _>}`