Follow-up to #268, split out of #339 so the lower-level apply/apply_type primitives (release-0.1) ship ahead of the verb layer; this item is intended for release-0.2.
Per the #268 scope refinement: monadic types do not grow *_type member families; the type-indexed monadic form belongs to the verb layer — another form/name/specialization of the existing verbs (transform, and_then, …) whose callback receives the tag plus the unpacked content, composing in pipelines as the verbs do. Open design questions: the spelling (a distinct verb name vs detection of tag-taking arms in the existing verbs), which verbs participate, and the interaction with the graded (collapsing) result computation.
Builds directly on the #268 machinery — the _apply_type_fn adapter and the tagged trait families are the intended foundation — and on the tag vocabulary: std::in_place_type_t on sum/choice (#268) plus the constructor tags #339 adds for optional and expected.
Follow-up to #268, split out of #339 so the lower-level
apply/apply_typeprimitives (release-0.1) ship ahead of the verb layer; this item is intended for release-0.2.Per the #268 scope refinement: monadic types do not grow
*_typemember families; the type-indexed monadic form belongs to the verb layer — another form/name/specialization of the existing verbs (transform,and_then, …) whose callback receives the tag plus the unpacked content, composing in pipelines as the verbs do. Open design questions: the spelling (a distinct verb name vs detection of tag-taking arms in the existing verbs), which verbs participate, and the interaction with the graded (collapsing) result computation.Builds directly on the #268 machinery — the
_apply_type_fnadapter and the tagged trait families are the intended foundation — and on the tag vocabulary:std::in_place_type_tonsum/choice(#268) plus the constructor tags #339 adds foroptionalandexpected.