I'm not sure if there's already an easy way to do this, but it would be nice to have some of the same functionality that colour has. Something like:
blend :: (...) => e -> Color cs e -> Color cs e -> Color cs e
over :: (...) => Color (Alpha cs) e -> Color cs e -> Color cs e
overAlpha :: (...) => Color (Alpha cs) e -> Color (Alpha cs) e -> Color (Alpha cs) e
As I understand it, in colour, blends are always done in linear space.