Usually I like to present things explicitly as well but here I find the boolean 'truthiness' inference on non booleans
both more (notationally) convenient and clearer to understand .
Especially since the truthness options chosen match the most common checks
0 = false (lengths and counts)
nil = false ( nil references)
if list.count
# process list contents otherwise its empty
if string.length # same as string <> ''
# process string contents otherwise its empty
s as Thing?
if s # same as s <> nil
# process s otherwise its a nil ref
Its probably just internalising the semantics (and saving some exposition)