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

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