def need.why
import ezx@1.11.0.0/src/lock/plan.bend as Planimport Base
import ezx@1.11.0.0/src/ledger/manifest.bend as M
import ezx@1.11.0.0/src/share/pin.bend as Pin
309# why a plain lock cannot copy the ledger's tool pins, or "" when it can. A
310# ledger that does not parse is refused here too.
311def need.why(ledger: M.Read) -> String:
312 match ledger:
313 case M.Bad{why}:
314 "ez: " ++ M.show(M.Bad{why})
315 case M.Good{m}:
316 M.Manifest{_n, _e, _b, _h, _pa, _pv, _ds, ts} = m
317 Pin.gaps(ts)