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

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