def roots
bend-lint-pack@0.1.1.0 · dead/def.bend:38
import bend-lint-pack@0.1.1.0/dead/def.bend as Def
import Base
import bend-lint-pack@0.1.1.0/common.bend as Common
38def roots(
39 seen: List<&2, Common.Seen>,
40 +laws: Set(),
41 +entries: List<&2, String>,
42 +out: List<&2, String>
43) -> List<&2, String>:
44 match seen:
45 case Nil{}:
46 out
47 case Con{Common.Seen{+owner, span}, rest}:
48 roots(
49 rest,
50 laws,
51 entries,
52 Bool.pick(List<&2, String>, is_root(laws, entries, owner), owner <> out, out)
53 )