>>106444724
I'd scrap the whole fn bullshit, instead i'd use something more consistent with the rest of the language:
fn hello(foo: f32, bar: &str) -> usize { ... }
static hello : (f32, &str) -> usize = |foo, bar| { ... }
// Or if thgey decide to add automatic type deduction for static:
static hello = |foo: f32, bar: &str| { ... }
Function are dubbed 'pure', however they capture their environment, just like closure. It just happens that the environment of a function is non-mutable so they would seems to have no side-effects, but everyone who's ever used LazyLock, LazyCell etc.. would know that this is not true
IMHO, this is more semantically correct and in-line with the rest of the syntax in rust.