Enforce "cursor or start" constraint in the type system.
Merge CursorMark into StartOrCursor.Cursor