No, I'm not really a fan of that... Why does this only work in a local scope? That seems highly confusing. What does this mean for `set_red()`, `set_blue()` etc?

The function names (`lighten()`, `darken()`) *scream* that they modify that color to me.

The other thing is that you changed these comments while the behaviour of these functions doesn't match the description (yet). That's a confusing thing to do.