Indeed. Although there's one subtle difference if I'm not mistaken. Just "out = (in+1)" will issue a warning since (in+1) is a 17-bit result, which is then truncated to 16-bit. The "(in+1)%(1<<16)" version is a 16-bit result, so you don't get truncation warnings during synthesis. But as you say, both result in the same functionality. Besides, personally I always do something like "out = in + 1'd1" to avoid those pesky truncation warnings and is a bit more readable than the whole modulo thing.