I think that the ? at the end of predicates hides an important distinction. Predicates like number? and zero? are not exactly the same thing. The former is an open-world to number gate, and the latter operates in number-world. In number-world GIGO is the way we do things. Where I think the ask topic is genuinely right is that ? itself doesn't distinguish these two categories, so the gate requirement is invisible until it throws. That's discoverability problem for sure. My guess is a change to the actual runtime behavior is unlikely to land. It would be interesting to know how much code relies on those things throwing. Anyway, sorry I missed the whole discussion, but I took a couple of days to send a kid to college. 🙂
hey there's no worries!
i hope your kid is set up well and enjoys their experiences
when jira tickets sit for multiple years without respones, we have learned to be patient lol
while i personally would prefer a change to runtime behavior, i think updating the number-world predicate docstrings to say "throws if given a non-number" (likewise "throws if given a non-future/var") would go a long way here
Yeah, that's a solution to the discoverability problem for sure.