OCLで再帰的な構造(木構造など)を扱う際に便利な、任意の深さまで探索を行うためのアプローチはどれか。

OCL 2.0以降の `closure` は推移閉包を簡単に取れるが、複雑な再帰ロジックの場合は、OCL式内で自身の操作を呼び出す(defによる再帰定義)ことも行われる。