so compiler thinks and try convert my code upper to ulong sqrt1( ulong n ) { return cast( ulong )ceil<float OR real?>( @ret(ulong)my_sqrt( cast( ulong )real( n ))); } why that? I didnt ask that. yes, I know that I can add inside sqrt1 import std.math : sqrt; but.. WHY?