The current implementation in bddl/bddl/condition_evaluation.py eagerly converts iterators to lists in multiple places during goal state generation, which prevents users from being able to stop generation early and causes unnecessary memory usage for large combinatorial spaces.