Hacker News new | ask | show | jobs
by kybernetikos 1059 days ago
Almost certainly, the behaviour for all possible values that could have been passed to the function has not changed, merely some new ones have been added. If that's true, then Hickey is right, it shouldn't be considered a breaking change.

If at the same time as increasing the domain of the function, some of the return values changed for some possible values, then it is a potentially breaking change (although one not necessarily reflected in the API), and needs to be communicated. Whether it really is considered a 'breaking' change will depend on a fuzzy evaluation of whether it was legitimate for the client to make such assumptions about the return value, and will most likely depend on how the function was documented.

That case, where the function returns different values to what it used to, and which may break code that had expectations about those values, is a change that can happen any time and is not really related to the question of what to do when a function domain increases.