I fixed this for the NoopOptimizer, but realized that the other optimizers all disallow negative generation. Maybe a future feature enhancement to allow that?