def names.once
import ezx@1.11.0.0/src/lock/plan.bend as Planimport Base
import ezx@1.11.0.0/src/lock/lock.bend as L
1243# every name of a list once, each where it first stands
1244def names.once(nvs: List<&2, String>, +seen: List<&2, String>) -> List<&2, String>:
1245 match nvs:
1246 case []:
1247 []
1248 case +h <> t:
1249 names.once.put(L.seen.holds(seen, h), h, names.once(t, h <> seen))