Function captures have some tricky corner cases. See the README for some details.
Check how a returned value of [] is handled.
- Has an empty array been captured?
- Or has nothing been captured?
If the latter, is there any difference between [] and nil? If there is no difference, can we separate them to gain better overall semantics?