module SupplyChain ( {- * Modules -} {- $modules -} {- * Job type -} Job, {- * Making jobs -} order, perform, {- * Running jobs -} run, eval, {- * Vendor type -} Vendor (Vendor, handle), Referral (Referral), {- * Vendor connection -} (>->), {- * Vendor-job connection -} (>-), (>+), {- * Vendor/job conversion -} once, loop, loop', Unit (Unit), ) where import SupplyChain.Job (Job, order, perform, run, eval) import SupplyChain.JobAndVendor (loop, loop', once, (>-), (>+)) import SupplyChain.Referral (Referral (Referral)) import SupplyChain.Unit (Unit (Unit)) import SupplyChain.Vendor (Vendor (Vendor, handle), (>->)) {- $modules * "SupplyChain.Alter" — Functions for modifying requests and actions * "SupplyChain.Effect" — An /effect/ is either /request/ or /perform/ * "SupplyChain.Job" — A /job/ makes requests, performs actions, and returns * "SupplyChain.JobAndVendor" — /Job/ + /vendor/ * "SupplyChain.Referral" — A /referral/ consists of a product and a new vendor * "SupplyChain.Unit" — /Unit/ is a simple interface with one request and a fixed response type * "SupplyChain.Vendor" — A /vendor/ responds to requests, makes requests, and performs actions -}