But sometimes ref becomes a part of type. For example "void delegate(ref int)" and "void delegate(int)" are different types. Is it possible to cast from one to another safely? For example: void foo(ref int); void function(int) fp; fp = cast(typeof(fp)) foo; /// is it safe???