def gaps
import ezx@1.11.0.0/src/share/pin.bend as Pinimport Base
import ezx@1.11.0.0/src/ledger/manifest.bend as M
47# the first pin, in ledger order, a plain lock cannot copy, or "" when it can
48# copy every one
49def gaps(ts: List<&2, M.Tool>) -> String:
50 match ts:
51 case []:
52 ""
53 case h <> t:
54 +here = gap(h)
55 gaps.step(String.is_empty(here), here, _u => gaps(t))