this feels too magical? I would go with if the value is `-1`, then call the optimal, otherwise, expect the value to be the number of hah functions, and throw a failure if out of range.