A h8io.stages.Stage that wraps another stage (the ''alterand'').
Alterator is the base trait for all unary operators and decorators that modify the behavior of a single inner stage. Resource disposal is the responsibility of the h8io.stages.Evolution returned by apply or skip — concrete subclasses must ensure their evolution delegates dispose to alterand's evolution.
'''Do not mix Alterator with traits that supply the stage's own continuation''' — its skip, evolve or dispose (e.g. SAMStage, Stagnation). An alterator's evolution has to be built from alterand's: a mixin that answers this instead — and both of those seal it that way — leaves alterand neither evolved nor disposed, with nothing to signal it.
Composes this stage with that, feeding this stage's output into it. See the ''Composition'' section above for what happens when there is no output to feed.
Composes this stage with that, feeding this stage's output into it. See the ''Composition'' section above for what happens when there is no output to feed.
Returns this stage's Evolution without consuming an input.
Returns this stage's Evolution without consuming an input.
Called instead of apply whenever the stage takes part in a run but has nothing to process: the upstream yielded no output, or a binary operator excluded this branch. The evolution must be the one the stage would have returned had it run. Like apply, skip() may perform side effects — a decorator, for instance, may advance or release the inner stage it owns.