Description
[cf. #1962 where there's the beginnings of a possible design for this, so that I could properly define a left adjoint to the forgetful functor Magma -> Setoid
, witnessed on objects by Magma.setoid
, but not really properly on morphisms. ]
Algebra.Morphism.Structures
defines all the properties eg isMagmaHomomorphism
of being a MagmaHomomorphism
, but there's nowhere (?) in stdlib
where those properties are bundled with their morphisms between the underlying Setoids
.
Correspondingly, identity and composition for such things are distributed between Relation.Binary.Morphism.Construct
and Algebra.Morphism.Construct
, and which again operate only on the underlying proofs of properties.
Proposal: we add actual bundled homomorphisms for all the algebraic Structures
in the library, on a 'one structure, one module' basis, to which we also package the Identity
and Composition
structures. UPDATED: bundled homomorphisms now under Algebra.Morphism.Bundles
, with their Identity
and Composition
now handled under Algebra.Morphism.Construct
Now, this may already all be done (nicely, better, ...?) in agda-categories
, and if so, then a plea to merge in this stuff.