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

The Intensional Functor for 1-tuple values. More...

Public Types

using Σ_cat = Set<T>
using Τ_cat = Set<std::tuple<T>>
using Domain = Σ_cat
using Codomain = Τ_cat
template<typename U>
using Shape = std::tuple<U>

Public Member Functions

template<typename 𝗳>
requires IsArrow<std::remove_cvref_t<𝗳>>
constexpr TupleMap< T, std::remove_cvref_t< 𝗳 > > operator() (𝗳 f) const
 The action on arrows: f: T → U to std::tuple<T> → std::tuple by mapping the single element.
constexpr Τ_cat operator() (const Σ_cat &) const noexcept

Detailed Description

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

The Intensional Functor for 1-tuple values.

Concrete IsShapedFunctor model implementing Set<T> -> Set<std::tuple<T>>. Pinned as the project's Frobenius monad (IsFrobenius, :kleisli): std::tuple<T> always has a single element, so ε via std::get<0> is total (no Some-fragment concession), and δ wraps once more cleanly. Sister to maybe_functor (monad only) per the #632 carrier-role split.


The documentation for this struct was generated from the following file: