IEnumerable <EnumChoice <E> > _Execute(EnumChoice <E> s0) { var result = Next(s0.Value); while (result) { var choice = result.Require(); yield return(new EnumChoice <E>(choice)); result = Next(choice); } }
public Lst <EnumChoice <E> > Execute(EnumChoice <E> s0) => Lst.make(_Execute(s0));