Effect row
The eff channel: the structural row of effects a function requires from its context across service, control, and command kinds — labels discharged by provide, not host operational facts.
let route: fn!(req: Request) -> Response, eff [ Database | Auth ];
Effect operations and callees add labels; provide discharges labels. pure fn seals the row empty. Omitted eff infers in .shp; .shc must use pure fn or one-or-more explicit eff clauses. Repeated additive contributions format as one canonical row. A singleton type expression stays naked (eff Database); unions use brackets (eff [ Database | Auth ]).
pure means eff = [] (no provide-discharged requirements). It does not claim referential transparency or deny host I/O. Free #builtin host APIs that are not service operations seal with pure and record operational effectfulness on the provider (comptime = Effectful, future backend claims) — see services and runtime.
The effect row is independent of the exception row.