Summary of the lesson: prefer expression-oriented branching and explicit outcomes.
if/unless are simple boolean tools, while case, cond, and with are better for multi-branch and multi-step flows where data shape matters.
Guards narrow valid clauses and keep decision logic local to the pattern.
Use [[pattern-matching]] to power these branches, shape logic into reusable [[functions]], and map success/error paths into [[error-handling]] conventions.