That's a way of doing constants. Before this change, the numbers `1` and `2` were used. That's also a way of doing constants. The point is that the value of the constant doesn't matter. You always compare to the constant anyway. The reason for using an object is that it is unique. It is only equal to itself. Numbers, on the other hand, are equal to other number literals. Take a look at `if foo == MY_CONSTANT then bar()`. If `MY_CONSTANT` was implemented using arbitrary numbers, what if `foo` accidentally just happened to equal that number? `bar` would be run, and the debugging would be harder. On the other hand, if `MY_CONSTANT` was implemented using objects, `foo` cannot happen to equal. It must explicitly have been assigned `MY_CONSTANT` to equal.

Why not `'normal'`? If so, we would not need the constant at all: We would just compare against `'normal'` everywhere. I actually considered that, but chose this way because the normal mode is so special. For example, we don't do `vim.enterMode('normal')`, we do `vim.enterNormalMode()`.

But we could change things, of course.