bool output_is_ready(check_type<U> &p) { return p.is_ready(); }
void operator()(check_type &c) const { AssertLive(); ASSERT(c.my_id(), "unset id value"); ASSERT(c.is_ready(), "not yet ready"); output_counter++; }
bool middle_is_ready(check_type<U> &p) { return p.is_ready(); }