Our selection logic does not match what other text editors do, and makes it impossible to implement a thin cursor.
The problem is that the end-point of the selection is inclusive, whereas it should be exclusive. So if you set the mark at line 0, column 0, and keep the cursor at the same location, right now in Trelby that means that the first character is selected. That can somehow be justified when using a block cursor, but if you're using a thin cursor that's to the left of the character, it makes no sense. It also is not how emacs works, which also has a block cursor.
There are two approaches to fixing this:
The second option looks like the right thing to do.
See discussion at #143 for history of how this was discovered.