Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::category::path_functor< T > Struct Template Referenceexport

The path functor for the Path <·> shape (#508 / PR #521 review). More...

Public Types

template<typename U>
using Shape = dedekind::sequences::Path<U>
 F_obj: the type-constructor action of the functor. The only Functor-shaped surface path_functor reifies.

Detailed Description

template<typename T>
struct dedekind::category::path_functor< T >

The path functor for the Path <·> shape (#508 / PR #521 review).

Carries the Shape = Path alias used by the Kleisli witness registry (unit_witness / counit_witness / IsKleisliTriple / IsCoKleisliTriple). Named path_functor for naming-convention parity with the sibling maybe_functor / vec2_functor / matrix2x2_functor functors in other partitions.

path__Why_The_Kleisli_Layer_And_Not_IsComonad

Path's (co)monadic structure is certified at the Kleisli-witness layer (:kleisli — unit_witness, counit_witness, IsKleisliTriple, IsCoKleisliTriple), not via the strict dedekind::category::IsComonad / IsMonad. This is a deliberate, textbook-sanctioned choice, not a Path-specific defect:

path__Monad_And_Comonad_Reading

Path carries both monadic and comonadic structure (per the partition's header note), but is not a Frobenius monad: on streams \(\delta \circ \mu\) reads \(s_{i+j}(i+j)\) where \(T\mu \circ \delta T\) reads \(s_{i+j}(j)\). At the Kleisli-witness level:


The documentation for this struct was generated from the following file:
  • src/main/modules/dedekind/sequences/path.cppm