def groups.valid
bend-kit-camber@0.15.0.1 · camber.bend:534
import bend-kit-camber@0.15.0.1/camber.bend as Camber
import Base
534def groups.valid(~P: Data, groups: List<&2, Group<P>>, +all: List<&2, Group<P>>) -> Bool:
535 match groups:
536 case Nil{}:
537 True{}
538 case Group{+id, +ancestors, policy} <> +rest:
539 chain = groups.policies(~P, List.append(&2, U32, ancestors, [id]), all, Nil{})
540 groups.unique(~P, group.find(~P, rest, id)) && Maybe.is_some(&2, List<&2, P>, chain) && groups.valid(~P, rest, all)