These are chat archives for non/algebra
Group[G].emptyexample I meant the following. When aligning
cats, the identity element was renamed the empty element. This makes perfect sense when dealing with monoids such as list or concatenation, but renders group theoretical code difficult to read. For me this is not a big deal, as avoiding typeclass fragmentation is my number #1 goal. By not having the syntax in algebra, I can implement my own infix/postfix operators, as you defined.
algebrashould have a syntax on its own and not depend on
spireto provide it.
The syntax module would carry a dependency on cats-core (for the reasons described above), and it would only "make sense" if Spire reused it. So the dependency on cats core would extend to Spire.
By not having the syntax in algebra, I can implement my own infix/postfix operators, as you defined.
Re above, I don't think syntax in algebra would or could compromise your ability to enrich
Group with an
id alias for
empty if desired. The kind of syntax Im proposing would enrich data values (only) with typeclass operations