fromLeft : (b -> a) -> Either a b -> afromRight : (a -> b) -> Either a b -> bmapFstExtensional : ((x : a) -> f x = g x) -> (v : Either a c) -> mapFst f v = mapFst g vmapSndExtensional : ((x : a) -> f x = g x) -> (v : Either w a) -> mapSnd f v = mapSnd g vmapFstFusion : (v : Either a e) -> mapFst g (mapFst f v) = mapFst (g . f) vmapSndFusion : (v : Either w a) -> mapSnd g (mapSnd f v) = mapSnd (g . f) v