TaskClass.prototype.restart(): TaskClass<T, E>
A brand-new execution: fresh recipe run for a root Task, and for a derived Task the
lineage is walked — the source restarts and every derivation step is re-applied. So
scan.map(parse).context(ctx).restart() re-runs the git call, the parse, and the context
wrap; nothing is served from the old chain's memo.
const chain = Task(() => 'fetched').map((s) => s.toUpperCase()); await chain; // ran once, memoised await chain.restart(); // fresh source execution, every derivation re-applied await chain; // the original still serves its memo