`tree.color` を match して、 `Red()` なら `copy(color = Black())` とすると少し簡潔になるかもしれません。