In fact it's also possible to know that these don't return a reference totheir parameter.Watch out for this: Struct S {double x;} ref double foo(ref S a){return a.x;}
That case is covered by the proposal. It incurs a runtime check (worst case, best case it simply doesn't compile).
-Steve