The syntax and axioms for monoids
import public Frexlet.Monoid
data Axiom : Type
Mon : Axiom -> Axiom
Commutativity : Axiom
CommutativeMonoidTheory : Presentation
CommutativeMonoid : Type
MkCommutativeMonoid : (monoid : Monoid) -> ValidatesEquation (commutativity Product) (monoid .Algebra) -> CommutativeMonoid
Smart constructor for commutative monoids
Zero : Op Signature
Plus : Op Signature
withRaw : Printer Signature a -> Printer CommutativeMonoidTheory a
withWords : Printer Signature a -> Printer CommutativeMonoidTheory a