While it is really strict and probably not grabbed for a lot, I was wondering if it would be beneficial to add a Group spec with the following bits and bobs:
Group
A value that implements the Group specification must also implement
the Monoid specification.
g.concat(g.inverse()) is equivalent to g.empty() (right inverse)
g.inverse().concat(g) is equivalent to g.empty() (left inverse)
Groups for all?
While it is really strict and probably not grabbed for a lot, I was wondering if it would be beneficial to add a
Group
spec with the following bits and bobs:Group
A value that implements the Group specification must also implement the Monoid specification.
g.concat(g.inverse())
is equivalent tog.empty()
(right inverse)g.inverse().concat(g)
is equivalent tog.empty()
(left inverse)inverse
method