Since `nextNotValid` is throwing the validation, meaning the `refine` won't return the value: - how about setting return type as `never`, so the return type is unaffected?