I guess not calling `hp_bound` as a sanitization measure works because `hp_bound` raises an exception if `hp` is out of bounds, but the inconsistent application could bite you if you change the behavior of `hp_bound` to be less evaluation-stopping in the future.