# // @ Search < P_P_TREE_NODE 'Result, P_TREE_NODE Node, ((P_TREE_NODE) 1|0 *) IsDesired > 
+
  # // Walk < P_TREE_NODE Node >
  +
    Search (Result, Node, IsDesired) [ Node ]
  ;

  with Node
  +
    if ->IsDesired () : *Result = _

    if !*Result : Walk (->Left)
    if !*Result : Walk (->Right)
  ;
;

# -> Search < PTR Result, Node, IsDesired >
+
  select
  +
    case Result, Node, IsDesired : return .
  ;
  else
  +
    return ERR_PARAMETER
  ;
;