Overview

The lib module is the standard library built on top of the core algebra: the shapes an implementor starts a stage from, the operators that combine stages, and the ready-made stages that need no implementing at all. Like core, it brings no dependencies of its own.

It also hosts the terminal side of the model, which core deliberately leaves out: the execute extension method and its result type Outcome. Running a pipeline is a policy, not part of its algebra.

The Packages

Where a New Stage Belongs

A stage that does its own work and answers only to its input belongs in std. A stage that wraps another and alters its behaviour is an operator — and if it re-applies that inner stage until it signals the end of a unit of work, it belongs in cycles rather than operators. A stage that only reads a value out of a container is a projection, and gets the some/none helpers of Projection for free.