|
| constexpr Path | operator+ (Path const &a, Path const &b) |
|
constexpr Path | operator- (Path const &a, Path const &b) |
|
constexpr Path | operator- (Path const &a) |
|
constexpr Path | operator* (T const &s, Path const &a) |
|
constexpr Path | operator* (Path const &a, T const &s) |
template<typename F>
requires dedekind::category::IsArrow<std::remove_cvref_t<F>> && std::same_as<dedekind::category::Dom<std::remove_cvref_t<F>>, T> && requires { typename dedekind::category::Cod< std::remove_cvref_t<F>>::Codomain; } && std::same_as<dedekind::category::Cod<std::remove_cvref_t<F>>, Path<typename dedekind::category::Cod< std::remove_cvref_t<F>>::Codomain, Cardinality, Index>> |
| constexpr auto | operator>>= (const Path &m, F &&f) |
| | Bind (>>=): m >>= f, for a Kleisli arrow f: T → Path, a path of this one's cardinality and index.
|
template<typename F>
requires dedekind::category::IsArrow<std::remove_cvref_t<F>> && std::same_as<dedekind::category::Dom<std::remove_cvref_t<F>>, Path<T, Cardinality, Index>> |
| constexpr auto | operator<<= (const Path &w, F &&f) |
| | Extend (<<=): w <<= f, for a co-Kleisli arrow f: Path<T> → U.
|
A sequence F: ℕ → T.
- Template Parameters
-
| T | The Species being enumerated. |
| Cardinality | The cardinality tag (ℵ_0 for infinite, Finite for bounded). |
| Index | The carrier of the Domain — any IsRingIntegral inhabitant, defaulting to std::size_t for back-compat with all existing call sites. The Form-shaped choices are dedekind::sets::ExtensionalCardinal<> (the algebraically-certified finite ℕ carrier) and dedekind::sets::Cardinality (the variant ℕ Form). Closes the Sollbruchstelle documented on this struct historically ("Path::Domain currently @c std::size_t —
once generalised, @c Cardinality is what makes the
@c size_t choice principled rather than accidental"). |