Typed results
Use brix/result for expected failures callers can handle. Choose the synchronous Result workflow or Brix's awaitable ResultPromise workflow.
Handle synchronous outcomes
Model tagged errors, narrow or match branches, transform values, and chain synchronous work.
Compose asynchronous outcomes
Consume and adapt ResultPromise, use its fluent operations, and test both branches.