+ Some kind of "unreachable" might be nice to help the move checker? for instance, if abc { release(var); fwdpanic("!!!"); } use(var) might be nicer to write than if abc { release(var); fwdpanic("!!!"); } else { use(var); } or the current alternative guard(abc) => { release(var); fwdpanic("!!!"); } => ; use (var); + Hmm, some kind of way to say 'this thing owns this reference' would be good. At the moment, I'm thinking something that parameter lists can be extended with ownership rules, so for example at_vec(vec v, u64 i, (vec > &i64) ok) would return a 'new' vector and a reference into the vector. If the 'vec' is moved, the &i64 is marked invalidated, but the &i64 is allowed to be passed around as long as 'vec' is not moved. For more references, something like hmm((owner > thing1 | thing2)) is three parameters, thing1 and thing2 are both invalidated if owner is moved (getting two indexes from a vector to swap them? not sure). Not sure how complex this system should be, could there for example be a situation where hmm((owner > thing1 > thing2)) might make sense? For now, the parser only accepts the first form, (vec > &i64).