Il y a des cas où c'est la même chose. Mais pour le dernier enfant d'un parent,

<< sib renverra empty() et << next passera au niveau suivant :
// the same:
New window("v1", mainLB = HList box(x = V list box( tb1 = Text Box("v1"), tb2=Text Box("2") ), tb3=text box (" 3")));
wait(0);
(current report()[TextBox(1)] << next()) << select;
New window("v2", mainLB = HList box(x = V list box( tb1 = Text Box("v2"), tb2=Text Box("2") ), tb3=text box (" 3")));
wait(0);
(current report()[TextBox(1)] << sib()) << select;
// << next walks to the next level and returns tb3
New window("v3", mainLB = HList box(x = V list box( tb1 = Text Box("v3"), tb2=Text Box("2") ), tb3=text box (" 3")));
wait(0);
(current report()[TextBox(2)] << next()) << select;
// << sib returns Empty - and select will fail
New window("v4", mainLB = HList box(x = V list box( tb1 = Text Box("v4"), tb2=Text Box("2") ), tb3=text box (" 3")));
wait(0);
(current report()[TextBox(2)] << sib()) << select;