Contract validation across a chain like the following does not spot the promise in Promiser and raises an error about Expecter needing it.
organize -> Promiser, (If -> chain(Expecter))
organize \
Promiser.promising(:thing),
self.if(
:condition,
then: ExpectingThing = chain
'ChainedThings',
Expecter
),
else: SomethingElse
)