return search_down(from.left.as(not null), key)
else if from.right != null then
return search_down(from.right.as(not null), key)
return search_down(from.left.as(not null), key)
else if from.right != null then
return search_down(from.right.as(not null), key)