compose, all_empty, any_empty