Goal: tie implementations of (+)
, (*)
to (<>)
and (-)
, (/)
to combination of (<>)
and inverse
.
Data.Group
- intermediate module that definesinverse
.Data.Semiring
- re-uses 2Monoid
instances to getzero
,(+)
,one
,(*)
.Data.Ring
andData.Field
- addsGroup
requirements on top ofSemiring
to get-
and/
.