[PlusNatSemi] Semigroup Nat where (<+>) x y = x + y [MultNatSemi] Semigroup Nat where (<+>) x y = x * y [PlusNatMonoid] Monoid Nat using PlusNatSemi where neutral = 0 [MultNatMonoid] Monoid Nat using MultNatSemi where neutral = 1