|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
A typed unit/counit witness relating a left and right functor. More...
A typed unit/counit witness relating a left and right functor.
Tightened (#434) to require the unit and counit to be natural transformations, not raw arrows. Per Mac Lane (Ch. IV) / Milewski (Category Theory for Programmers, Ch. on Adjunctions): an adjunction is defined by natural transformations; the earlier arrow-based form (pre-#434) was structurally under-strict. The arrow-shape constraints on Unit / Counit are retained via IsNaturalTransformation's own requirements.
The triangle identities — (εF) ∘ (Fη) = 1_F and (Gε) ∘ (ηG) = 1_G — remain universal-property territory; they're the engineer's honesty obligation at the witness site.