Commutative structures from unbundled commutativity #
This file provides scoped instances that promote algebraic structures satisfying
IsMulCommutative or IsAddCommutative to their bundled commutative counterparts.
A magma which IsMulCommutative is a CommMagma.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Instances For
An additive magma which IsMulCommutative is a AddCommMagma.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Instances For
A Semigroup which IsMulCommutative is a CommSemigroup.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Instances For
An AddSemigroup which IsMulCommutative is a AddCommSemigroup.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Instances For
A Monoid which IsMulCommutative is a CommMonoid.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Instances For
A AddMonoid which IsMulCommutative is a AddCommMonoid.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Instances For
A DivisionMonoid which IsMulCommutative is a DivisionCommMonoid.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Instances For
A SubtractionMonoid which IsMulCommutative is a SubtractionCommMonoid.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Instances For
A Group which IsMulCommutative is a CommGroup.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].
Instances For
An AddGroup which IsMulCommutative is a AddCommGroup.
This is primarily used to deduce the bundled version from the unbundled one for commutative
subobjects in a noncommutative ambient type. As such this is only available inside the
IsMulCommutative scope so as to avoid deleterious effects to type class synthesis for bundled
commutativity.
See note [commutative subobjects].