def moves
import ezx@1.11.0.0/src/ws/moved.bend as Movedimport Base
147# every member the lock records that moves: `now` the members as they are,
148# `base` as they were before any line was rewritten
149def moves(
150 old: List<&2, Held>,
151 +now: List<&2, Held>,
152 +base: List<&2, Held>,
153 +only: String
154) -> List<&2, Shift>:
155 match old:
156 case []:
157 []
158 case Held{+path, _name, +hash} <> tl:
159 rest = moves(tl, now, base, only)
160 move.found(at(now, path), hash.of(at(base, path)), hash, only, rest)