def once.go
import ezx@1.11.0.0/src/pub/plan.bend as Planimport Base
import ezx@1.11.0.0/src/lock/lock.bend as L
704# each string of a list once, where it first appears
705def once.go(xs: List<&2, String>, +seen: List<&2, String>) -> List<&2, String>:
706 match xs:
707 case []:
708 []
709 case +h <> t:
710 once.pick(L.seen.holds(seen, h), h, once.go(t, h <> seen))