- (if self then (`Epsilon ** q) else (`Left ** q)),
- (q, [ test => phi;
- QNameSet.any => (`Left ** q);
- QNameSet.any => (`Right ** q) ]) :: trans,
- states
+ ((if self then F.stay q else F.first_child q),
+ (q, [ test => phi;
+ QNameSet.any => F.first_child q ++ F.next_sibling q;
+ ]) :: trans,
+ states)