Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::category::IsTerminalObject Concept Referenceexport

A type that plays the role of a terminal object — either the canonical global One (std::monostate, the unique terminal of the ambient category of sets) or an opt-in structural witness via the is_terminal_object_tag typedef. More...

Concept definition

template<typename T>
std::same_as<T, One> || requires { typename T::is_terminal_object_tag; }
A type that plays the role of a terminal object — either the canonical global One (std::monostate,...
Definition limit.cppm:140

Detailed Description

A type that plays the role of a terminal object — either the canonical global One (std::monostate, the unique terminal of the ambient category of sets) or an opt-in structural witness via the is_terminal_object_tag typedef.

The strict std::same_as<T, One> branch is the historical reading: One is the unique terminal in the umbrella category Set. The tag-discovery branch admits structural witness types declared downstream — e.g. :lattice::LatticeTop<T, Rel> registers itself as a terminal object of the lattice over (T, Rel) viewed as a thin category (#698 Slice 4).

Categorical content: initial / terminal exist relative to a category. The strict global reading covers Set; the tag-based extension lets sub-categories (lattices, posets, …) name their own terminal-witness types without parameterising the concept by category.