superimpose :: Pixel a => Picture a -> Picture a -> Picture a superimpose = zipWith (zipWith superimposePixel) invert :: Pixel a => Picture a -> Picture a invert = map (map invertPixel)