doesn't matter here since there is no performance worry, but otherwise it would probably be worth always calculating `missing` and then checking if its empty rather than doing both `issubset` and `-`