Why the check for ids.empty? If a clause filters out all puppet modules, wouldn't we be discarding that?