Use df_ext_iterator to capture the reachable set without allocating an extra set.