Transpose: T(T(a)) should yield `a`
Hello!
Transpose of transpose function should yield original string(s). i.e. Pressing Ctrl-T in succession should revert to original buffer before first Ctrl-T. And this is exactly what happens for transpose on selection. Even transpose between words (cursor is between words) exhibits this property. But not when cursor is at the start of line, end of line or in the word.
This issue can be fixed by retaining the original cursor position.