Wait clear({Object? flag}) { if (flag == null) return empty; else { Map<Object?, Set<Object?>> newFlags = _deepCopy(); newFlags.remove(flag); return Wait._(newFlags); } }