Iterable<Option> getNonGroups() sync* { for (Option i in options) { if (i is OptionGroup) { yield* i.getNonGroups(); } else { yield i; } } }