In the end the type for `color` is closed anyway, so I do not see the point.  (There may also be a small performance cost in using polymorphic variants but this is less important than “doing the right thing”. ☺)