FreeKill[m]: > <@larunite:matrix.org> I mean in the type system. It is very common to do stuff (in C) like "if this function returns true, then your out vars are valid". How do we express that in the type system? > > We already have the result type for expressing this in a returned value, I don't know how it would play nicely with outvars Yeah, for sure. *ideally* Rust would either guarantee RVO (or some way to force it), or if you do pass an `&uninit`, the compiler could allow you to later use it as & or &mut safely if it can guarantee the initialization occurred, but we're getting into fantasy/lang design land now, not what is possible today :)