|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
Base-case sentinel for the operation parameter of IsProduct / IsCoproduct.
More...
Base-case sentinel for the operation parameter of IsProduct / IsCoproduct.
When Op is AnyOperation (the default) the mediator is unconstrained, so every product / coproduct qualifies on its projections / injections alone — std::pair, Complex, Dual, Rational and std::variant are all (co)products "over any operation". Naming an Op pins the (co)product to a specific constructor-like factory: for a product a pairing factory A×B → P; for a coproduct the injections A → C, B → C. This is how algebra keys IsMonoid<X,Op> by Op — the operation is a first-class, defaulted parameter, ignored in the base case. The factory's result type is what distinguishes otherwise-identical shapes (e.g. Meet ∧ vs Join ∨: only the matching factory builds P).