public static UInt32 RotateRight(this UInt32 i, int distance)
        {
            const int size = sizeof(UInt32) * 8;

            ThrowOnInvalidArgument(distance, size);
            return(i.RotateRight_NoChecks(distance));
        }