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

A comonadic carrier WA supports comonadic extend, <<=, with a co-Kleisli arrow F. More...

Concept definition

template<typename WA, typename F>
(!std::derived_from<std::remove_cvref_t<WA>, std::ios_base>) &&
requires(WA const& wa, F&& f) {
{ wa <<= std::forward<F>(f) };
}
A comonadic carrier WA supports comonadic extend, <<=, with a co-Kleisli arrow F.
Definition kleisli.cppm:468

Detailed Description

A comonadic carrier WA supports comonadic extend, <<=, with a co-Kleisli arrow F.

Captures the operator-shape availability of comonadic extend: given wa : W and f : W → B, wa <<= f must compile. It excludes std::ios_base-derived types, so that it does not fire on stream carriers. The laws (counit, coassociativity) are pinned by IsComonad in :monad.