Complete
Complete is a stage that emits Status.Complete while passing the input through as output unchanged.
Every invocation yields Status.Complete with the input value intact — no value is dropped.
It signals that the current unit of work is done. At the top level of a pipeline this becomes the run's terminal
status; inside an enclosing alterator such as Loop or Repeat it ends the current cycle.
The CompleteIfSome operator uses Complete for exactly this purpose.
Complete is a polymorphic singleton. Use Complete[T] to obtain a typed Fruitful.Endo[T, Nothing].
import h8io.stages.*
import h8io.stages.std.*
val stage = Complete[String]
// stage: base.Fruitful.Endo[String, Nothing] = <function1>
stage("hello")
// res0: Yield.Some[String, String, Nothing] = Some(
// out = "hello",
// status = Complete(),
// evolution = <function1>
// )
stage("world")
// res1: Yield.Some[String, String, Nothing] = Some(
// out = "world",
// status = Complete(),
// evolution = <function1>
// )