Aliases: compose; chain; successor; associated type; prerequisite; fork; parallel; derivability.
Composition joins meaningful, independently owned commitments into a larger commitment. Their interaction can introduce an obligation owned by the composition. Chaining connects what one constituent establishes to what a legitimate successor can consume. A chain may branch, pause, fan out, recover or lead to a later related visit; it need not be one fluent call, transaction or immortal value.
Parameterization expresses meaningful choices and constrains their admissible relationships. A bag of unrelated flags does not establish compatibility. Associated types, trait bounds, concrete carriers, data-bearing collaborators and ordinary values have distinct uses. A root bound should expose the relationships the consumer needs, rather than make every caller restate concrete implementation details.
Reference contract: verification selects an admissible registration successor and preserves its declared registration result. The private supertrait prevents a caller from inventing a protected stage.
pub trait VerifyIdentity: private::Stage + Sized {
type Registered: RecordedRegistration;
type Verified: AdmitRegistration<Registered = Self::Registered>;
fn verify(self) -> Result<Self::Verified, IdentityFailure>;
}
Contrast: returning an unrelated T, accepting a caller-built verified: bool, or checking a stage name at every leaf would not establish that same successor relationship. The fallible result still represents a real provider outcome; the trait does not authenticate an assertion by itself.
Use what-if reasoning to follow implications of a proposed selection or change: which composition is still admissible, which promise changes, which other story remains independent, and what still requires runtime evidence. That consequence tracing is useful without equating the owner's broader word “derivability” with a derive macro, inheritance or one associated-type technique.
Your Reflection
Saved in this browser. Export a copy before changing devices.