7U7RBTIPOZJMUFMW6OKAC7BNHTW53JKYWZP2IRICHAYDOPNKXJMAC ⊎-assoc : ∀ {A B C : Set} → (A ⊎ B) ⊎ C ≃ A ⊎ (B ⊎ C)⊎-assoc = record{ to = λ{ (inj₁ (inj₁ x)) → inj₁ x; (inj₁ (inj₂ x)) → inj₂ (inj₁ x); (inj₂ x) → inj₂ (inj₂ x)}; from = λ{ (inj₁ x) → inj₁ (inj₁ x); (inj₂ (inj₁ x)) → inj₁ (inj₂ x); (inj₂ (inj₂ x)) → inj₂ x}; from∘to = λ{ (inj₁ (inj₁ x)) → refl; (inj₁ (inj₂ x)) → refl; (inj₂ x) → refl}; to∘from = λ{ (inj₁ x) → refl; (inj₂ (inj₁ x)) → refl; (inj₂ (inj₂ x)) → refl}}
⊎×-implies-×⊎' : ∀ {A B C D : Set} → (A × B) ⊎ (C × D) → (A ⊎ C) × (B ⊎ D)⊎×-implies-×⊎' = λ{ (inj₁ ⟨ a , b ⟩) → ⟨ inj₁ a , inj₁ b ⟩; (inj₂ ⟨ c , d ⟩) → ⟨ inj₂ c , inj₂ d ⟩}-- ×⊎-implies-⊎× : ∀ {A B C D : Set} → (A ⊎ C) × (B ⊎ D) → (A × B) ⊎ (C × D)-- ×⊎-implies-⊎× = λ-- { ⟨ inj₁ a , inj₁ b ⟩ → inj₁ ⟨ a , b ⟩-- ; ⟨ inj₁ a , inj₂ d ⟩ → {!!} -- cannot construct-- ; ⟨ inj₂ c , inj₁ b ⟩ → {!!} -- cannot construct-- ; ⟨ inj₂ c , inj₂ d ⟩ → inj₂ ⟨ c , d ⟩-- }