But that's only a problem if it's a library and not done on the language level?!
So it doesn't seem to matter whether it's a library or in the language.
Either everything is an effect. Or you have to deal with two worlds of code: effects and non-effects.
Still seems better to me if you collapse colors >= 1 into a single language system.