{-# OPTIONS --type-in-type
#-}
open import NeilPrelude
module CommMonoid {A : Set}
(_⊕_ : Op A)
(assoc : Associative _⊕_)
(comm : Commutative _⊕_)
(unit : A) (unit⊕ : {a : A} -> unit ⊕ a ≡ a)
where
⊕unit' : {a : A} -> a ⊕ unit ≡ a
⊕unit' {a} = trans comm unit⊕
import Monoid
open Monoid _⊕_ assoc unit unit⊕ ⊕unit' public
import CommSemiGroup
open CommSemiGroup _⊕_ assoc comm public