@hackage supply-chain0.0.1.0

Composable request-response pipelines

Job is a free monad, plus a little extra. It is parameterized on two type constructors: one for dynamic effects, and one for static effects. The Vendor type is similar to job, but a vendor can also respond to requests, and thus it has two dynamic interfaces: one upstream and one downstream. We can connect vendors to jobs or to other vendors, creating a pipeline (or "supply chain", if you like) along the dynamic interfaces.