Предположим, что все цвета, принятые редактором, уже допустимы. Задача здесь только в том, какое решение принял пользователь.
При создании нового образца палитра ещё не введена. Затем пользователь выбирает очистку, добавляет синий и снова удаляет его. И в начале, и в конце список пуст, но при сохранении эти моменты, кажется, стоит различать. В конце пользователь явно выбрал пустую палитру.
Можно хранить список цветов вместе с флагом entered или попробовать три варианта F#, например NotEntered, Empty и Colors of Color list. Удаление последнего цвета переводило бы состояние в Empty, а сброс редактирования в NotEntered.
Остаётся небольшая тонкость. Такая полезная нагрузка допускает Colors [], поэтому одни названия вариантов ещё не определяют правила создания значений. Помогут ли небольшая функция создания и явные варианты лучше понять переходы, или для такого маленького редактора список с флагом останется понятнее?