{-# OPTIONS --type-in-type #-} open import NeilPrelude module CancellativeComm {A : Set} {B : Set} (_⊕_ : A → A → B) (⊕comm : {a b : A} → a ⊕ b ≡ b ⊕ a) (cancL : CancellativeL _⊕_) where cancR : CancellativeR _⊕_ cancR eq = cancL (trans2 ⊕comm eq ⊕comm) import Cancellative open Cancellative _⊕_ cancL cancR public