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

Formal verification that a type has been registered in the Atlas. More...

Concept definition

template<typename T>
std::regular<T> && requires { typename SpeciesTraits<T>::Domain; }
Formal verification that a type has been registered in the Atlas.
Definition species.cppm:82
Definition species.cppm:59

Detailed Description

Formal verification that a type has been registered in the Atlas.

The rule of thumb for value constraints across the library: std::semiregular by default (the Jlt paper's Rule 1), std::regular only where the code needs operator==(T, T), since a carrier's == is one more operation of its signature. IsSpecies asks std::regular: a species' laws are equations, so its == belongs to it, and a function object with SpeciesTraits (std::logical_and<bool>) is an arrow, not a species (#1116).