In a nested tree of records, find the first one that satisfies a given
criterion P, or return unit if there
is none
fun {Find R P}
proc {FindRec R}
if {P R} thenraise found(R) endelseif {IsRecord R} then {Record.forAll R FindRec}
elseskipendendintry {FindRec R} unitcatch found(X) then X endend