On 2018-06-04 18:58, Noam Postavsky wrote: > X is an optional macro parameter, so the "optionalness" applies at > compile time. I think I see what you mean, but I'm not entirely convinced (in part because the docstring doesn't say so, and in part because it doesn't seem worth it to break referential transparency: if we accept nil, we should also accept a variable that evaluates to nil). > I think that would approximately double the cost of cl-incf in the > simple case. And since you would expect cl-incf to be used in loops a > lot, that seems like a bad idea. I think we could still optimize the case in which we get an explicit nil. Clément.