Discuss falsy values. Downside: may forget that falsy can occur. Upside: if you KNOW it can't, then you get cleaner code. But that needs upstream filtering. Can be overly conservative (eg, forget that racket string->number can handle complex), or overly liberal (eg, forget that Racket can't handle commas in numbers), plus assumes that won't change.
Discuss falsy values. Downside: may forget that falsy can occur. Upside: if you KNOW it can't, then you get cleaner code. But that needs upstream filtering. Can be overly conservative (eg, forget that racket string->number can handle complex), or overly liberal (eg, forget that Racket can't handle commas in numbers), plus assumes that won't change.